atacan/MistralAPI
Swift client for the Mistral AI API, generated from the official OpenAPI specification
Requirements
- Swift 6.1+
- macOS 14+ / iOS 17+ / tvOS 17+
Installation
Add the dependency to your Package.swift:
dependencies: [
.package(url: "https://github.com/atacan/MistralAPI", from: "0.1.0"),
]Then add the target dependency. There are three library products to choose from:
| Library | Transport | Use case | |---|---|---| | MistralAPI | AsyncHTTPClient | Server-side Swift | | MistralAPIUrlSessionClient | URLSession | Apple platforms | | MistralAPITypes | None | Types only (shared models) |
.target(
name: "MyApp",
dependencies: [
.product(name: "MistralAPI", package: "MistralAPI"),
]
),Usage
import MistralAPI
import MistralAPITypes
let client = try createClient(apiKey: "your-api-key")
// Audio transcription
let audioData: Data = // ... load your audio file
let response = try await client.audio_api_v1_transcriptions_post(
body: .multipartForm([
.model(.init(payload: .init(body: HTTPBody(MistralModelID.Transcription.voxtralMiniLatest)))),
.file(.init(payload: .init(body: HTTPBody(audioData)), filename: "audio.mp3")),
])
)How It Works
The client code is generated from Mistral's OpenAPI specification (openapi.yaml), with fixes applied via an OpenAPI Overlay (overlay.json). The generated Swift types and client code live in GeneratedSources/ directories.
License
MIT
Package Metadata
Repository: atacan/MistralAPI
Stars: 0
Forks: 0
Open issues: 0
Default branch: main
Primary language: swift
License: MIT
README: Readme.md