Releases: mistralai/client-python
python - v2.1.2 - 2026-03-20 15:16:14
Generated by Speakeasy CLI
Python SDK Changes:
mistral.beta.conversations.start():request.tools[]Changed (Breaking⚠️ )
mistral.beta.conversations.list():response.[].union(ModelConversation).tools[]Changed (Breaking⚠️ )mistral.beta.conversations.get():response.union(ModelConversation).tools[]Changed (Breaking⚠️ )mistral.beta.conversations.start_stream():request.tools[]Changed (Breaking⚠️ )
mistral.beta.agents.create():request.tools[]Changed (Breaking⚠️ )response.tools[]Changed (Breaking⚠️ )
mistral.beta.agents.list():response.[].tools[]Changed (Breaking⚠️ )mistral.beta.agents.get():response.tools[]Changed (Breaking⚠️ )mistral.beta.agents.update():request.tools[]Changed (Breaking⚠️ )response.tools[]Changed (Breaking⚠️ )
mistral.beta.agents.update_version():response.tools[]Changed (Breaking⚠️ )mistral.beta.agents.list_versions():response.[].tools[]Changed (Breaking⚠️ )mistral.beta.agents.get_version():response.tools[]Changed (Breaking⚠️ )mistral.chat.complete():requestChanged (Breaking⚠️ )response.choices[]Changed (Breaking⚠️ )
mistral.chat.stream():requestChanged (Breaking⚠️ )mistral.fim.complete():response.choices[]Changed (Breaking⚠️ )mistral.agents.complete():requestChanged (Breaking⚠️ )response.choices[]Changed (Breaking⚠️ )
mistral.agents.stream():requestChanged (Breaking⚠️ )
Generated with Speakeasy CLI 1.754.0
Publishing Completed
python - v2.1.1 - 2026-03-20 12:22:50
Generated by Speakeasy CLI
Python SDK Changes:
mistral.chat.complete():response.choices[]Changed (Breaking⚠️ )mistral.fim.complete():response.choices[]Changed (Breaking⚠️ )mistral.agents.complete():response.choices[]Changed (Breaking⚠️ )
Generated with Speakeasy CLI 1.754.0
Publishing Completed
python - v2.1.0 - 2026-03-20 08:53:19
Generated by Speakeasy CLI
Python SDK Changes:
mistral.beta.agents.update_version():responseChanged (Breaking⚠️ )mistral.beta.agents.get():responseChanged (Breaking⚠️ )mistral.agents.stream():requestChanged (Breaking⚠️ )mistral.agents.complete():requestChanged (Breaking⚠️ )mistral.beta.conversations.start_stream():requestChanged (Breaking⚠️ )mistral.chat.stream():requestChanged (Breaking⚠️ )mistral.chat.complete():requestChanged (Breaking⚠️ )mistral.beta.conversations.restart():requestChanged (Breaking⚠️ )mistral.beta.agents.list_versions():response.[]Changed (Breaking⚠️ )mistral.beta.conversations.start():requestChanged (Breaking⚠️ )mistral.beta.conversations.list():response.[]Changed (Breaking⚠️ )mistral.beta.conversations.get():responseChanged (Breaking⚠️ )mistral.beta.agents.update():requestChanged (Breaking⚠️ )responseChanged (Breaking⚠️ )
mistral.beta.agents.get_version():responseChanged (Breaking⚠️ )mistral.beta.agents.list():response.[]Changed (Breaking⚠️ )mistral.beta.agents.create():requestChanged (Breaking⚠️ )responseChanged (Breaking⚠️ )
mistral.beta.conversations.restart_stream():requestChanged (Breaking⚠️ )mistral.beta.conversations.append_stream():request.completion_args.reasoning_effortAdded
mistral.audio.voices.update(): Addedmistral.beta.conversations.append():request.completion_args.reasoning_effortAdded
mistral.audio.voices.list(): Addedmistral.audio.speech.complete(): Addedmistral.models.retrieve():response.union(base).capabilities.reasoningAddedmistral.models.list():response.data[].union(base).capabilities.reasoningAddedmistral.audio.voices.get_sample_audio(): Addedmistral.audio.voices.get(): Addedmistral.audio.voices.delete(): Addedmistral.audio.voices.create(): Added
Generated with Speakeasy CLI 1.754.0
Publishing Completed
python - v2.0.5 - 2026-03-18 15:31:29
Generated by Speakeasy CLI
Python SDK Changes:
mistral.beta.connectors.get_auth_url(): Addedmistral.chat.complete():request.reasoning_effortAddedmistral.chat.stream():request.reasoning_effortAddedmistral.agents.complete():request.reasoning_effortAddedmistral.agents.stream():request.reasoning_effortAdded
Generated with Speakeasy CLI 1.754.0
Publishing Completed
python - v2.0.4 - 2026-03-16 15:29:36
Generated by Speakeasy CLI
Python SDK Changes:
mistral.beta.observability.judges.judge_conversation(): Addedmistral.chat.complete():request.guardrailsAddedmistral.chat.stream():request.guardrailsAddedmistral.agents.complete():request.guardrailsAddedmistral.agents.stream():request.guardrailsAdded
Generated with Speakeasy CLI 1.729.0
Publishing Completed
python - v2.0.3 - 2026-03-16 11:06:10
Generated by Speakeasy CLI
Python SDK Changes:
mistral.beta.conversations.append_stream():request.inputs.union(Array<InputEntries>)[].union(MessageInputEntry).content.union(Array<MessageInputContentChunks>)[].union(ThinkChunk).thinking[].union(ReferenceChunk).reference_ids[]Changed (Breaking⚠️ )response.[].data.union(message.output.delta).content.union(OutputContentChunks).union(ThinkChunk).thinking[].union(ReferenceChunk).reference_ids[]Changed (Breaking⚠️ )
mistral.chat.complete():request.messages[].union(system).content.union(Array<SystemMessageContentChunks>)[].union(thinking).thinking[].union(ReferenceChunk).reference_ids[]Changed (Breaking⚠️ )response.choices[].message.content.union(Array<ContentChunk>)[].union(reference).reference_ids[]Changed (Breaking⚠️ )
mistral.beta.conversations.start():request.inputs.union(Array<InputEntries>)[].union(MessageInputEntry).content.union(Array<MessageInputContentChunks>)[].union(ThinkChunk).thinking[].union(ReferenceChunk).reference_ids[]Changed (Breaking⚠️ )response.outputs[].union(MessageOutputEntry).content.union(Array<MessageOutputContentChunks>)[].union(ThinkChunk).thinking[].union(ReferenceChunk).reference_ids[]Changed (Breaking⚠️ )
mistral.beta.conversations.append():request.inputs.union(Array<InputEntries>)[].union(MessageOutputEntry).content.union(Array<MessageOutputContentChunks>)[].union(ThinkChunk).thinking[].union(ReferenceChunk).reference_ids[]Changed (Breaking⚠️ )response.outputs[].union(MessageOutputEntry).content.union(Array<MessageOutputContentChunks>)[].union(ThinkChunk).thinking[].union(ReferenceChunk).reference_ids[]Changed (Breaking⚠️ )
mistral.beta.conversations.get_history():response.entries[].union(MessageInputEntry).content.union(Array<MessageInputContentChunks>)[].union(ThinkChunk).thinking[].union(ReferenceChunk).reference_ids[]Changed (Breaking⚠️ )mistral.beta.conversations.get_messages():response.messages[].union(MessageInputEntry).content.union(Array<MessageInputContentChunks>)[].union(ThinkChunk).thinking[].union(ReferenceChunk).reference_ids[]Changed (Breaking⚠️ )mistral.beta.conversations.restart():request.inputs.union(Array<InputEntries>)[].union(MessageInputEntry).content.union(Array<MessageInputContentChunks>)[].union(ThinkChunk).thinking[].union(ReferenceChunk).reference_ids[]Changed (Breaking⚠️ )response.outputs[].union(MessageOutputEntry).content.union(Array<MessageOutputContentChunks>)[].union(ThinkChunk).thinking[].union(ReferenceChunk).reference_ids[]Changed (Breaking⚠️ )
mistral.beta.conversations.start_stream():request.inputs.union(Array<InputEntries>)[].union(MessageInputEntry).content.union(Array<MessageInputContentChunks>)[].union(ThinkChunk).thinking[].union(ReferenceChunk).reference_ids[]Changed (Breaking⚠️ )response.[].data.union(message.output.delta).content.union(OutputContentChunks).union(ThinkChunk).thinking[].union(ReferenceChunk).reference_ids[]Changed (Breaking⚠️ )
mistral.classifiers.classify_chat():request.input.union(InstructRequest).messages[].union(user).content.union(Array<ContentChunk>)[].union(reference).reference_ids[]Changed (Breaking⚠️ )
mistral.classifiers.moderate_chat():request.inputs.union(Array<>)[].union(tool).content.union(Array<ContentChunk>)[].union(reference).reference_ids[]Changed (Breaking⚠️ )
mistral.beta.conversations.restart_stream():request.inputs.union(Array<InputEntries>)[].union(MessageInputEntry).content.union(Array<MessageInputContentChunks>)[].union(ThinkChunk).thinking[].union(ReferenceChunk).reference_ids[]Changed (Breaking⚠️ )response.[].data.union(message.output.delta).content.union(OutputContentChunks).union(ThinkChunk).thinking[].union(ReferenceChunk).reference_ids[]Changed (Breaking⚠️ )
mistral.chat.stream():request.messages[].union(tool).content.union(Array<ContentChunk>)[].union(reference).reference_ids[]Changed (Breaking⚠️ )response.[].data.choices[].delta.content.union(Array<ContentChunk>)[].union(reference).reference_ids[]Changed (Breaking⚠️ )
mistral.fim.complete():response.choices[].message.content.union(Array<ContentChunk>)[].union(thinking).thinking[].union(ReferenceChunk).reference_ids[]Changed (Breaking⚠️ )mistral.fim.stream():response.[].data.choices[].delta.content.union(Array<ContentChunk>)[].union(thinking).thinking[].union(ReferenceChunk).reference_ids[]Changed (Breaking⚠️ )mistral.agents.complete():request.messages[].union(system).content.union(Array<SystemMessageContentChunks>)[].union(thinking).thinking[].union(ReferenceChunk).reference_ids[]Changed (Breaking⚠️ )response.choices[].message.content.union(Array<ContentChunk>)[].union(reference).reference_ids[]Changed (Breaking⚠️ )
mistral.agents.stream():request.messages[].union(system).content.union(Array<SystemMessageContentChunks>)[].union(thinking).thinking[].union(ReferenceChunk).reference_ids[]Changed (Breaking⚠️ )response.[].data.choices[].delta.content.union(Array<ContentChunk>)[].union(reference).reference_ids[]Changed (Breaking⚠️ )
mistral.models.list():response.data[].union(base).capabilitiesChangedmistral.models.retrieve():response.union(base).capabilitiesChanged
Generated with Speakeasy CLI 1.754.0
Publishing Completed
python - v2.0.2 - 2026-03-13 13:56:02
Generated by Speakeasy CLI
Python SDK Changes:
mistral.beta.conversations.start():response.guardrails[]Changed (Breaking⚠️ )mistral.beta.conversations.append():response.guardrails[]Changed (Breaking⚠️ )mistral.beta.conversations.restart():response.guardrails[]Changed (Breaking⚠️ )
Generated with Speakeasy CLI 1.729.0
Publishing Completed
python - v2.0.1 - 2026-03-12 07:59:19
Generated by Speakeasy CLI
Python SDK Changes:
mistral.chat.complete():request.messages[].union(user).content.union(Array<ContentChunk>)[].union(audio_url)Removed (Breaking⚠️ )response.choices[].message.content.union(Array<ContentChunk>)[].union(audio_url)Removed (Breaking⚠️ )
mistral.classifiers.classify_chat():request.input.union(InstructRequest).messages[].union(user).content.union(Array<ContentChunk>)[].union(audio_url)Removed (Breaking⚠️ )
mistral.classifiers.moderate_chat():request.inputs.union(Array<>)[].union(user).content.union(Array<ContentChunk>)[].union(audio_url)Removed (Breaking⚠️ )
mistral.agents.stream():request.messages[].union(user).content.union(Array<ContentChunk>)[].union(audio_url)Removed (Breaking⚠️ )response.[].data.choices[].delta.content.union(Array<ContentChunk>)[].union(audio_url)Removed (Breaking⚠️ )
mistral.agents.complete():request.messages[].union(user).content.union(Array<ContentChunk>)[].union(audio_url)Removed (Breaking⚠️ )response.choices[].message.content.union(Array<ContentChunk>)[].union(audio_url)Removed (Breaking⚠️ )
mistral.fim.stream():response.[].data.choices[].delta.content.union(Array<ContentChunk>)[].union(audio_url)Removed (Breaking⚠️ )mistral.fim.complete():response.choices[].message.content.union(Array<ContentChunk>)[].union(audio_url)Removed (Breaking⚠️ )mistral.chat.stream():request.messages[].union(user).content.union(Array<ContentChunk>)[].union(audio_url)Removed (Breaking⚠️ )response.[].data.choices[].delta.content.union(Array<ContentChunk>)[].union(audio_url)Removed (Breaking⚠️ )
mistral.beta.conversations.restart_stream():request.guardrails[]Changed
mistral.beta.agents.update():requestChangedresponseChanged
mistral.beta.agents.update_version():responseChangedmistral.beta.agents.list_versions():response.[]Changedmistral.beta.agents.get_version():responseChangedmistral.beta.agents.get():responseChangedmistral.beta.agents.list():response.[]Changedmistral.beta.agents.create():requestChangedresponseChanged
mistral.beta.conversations.start():requestChangedmistral.beta.conversations.start_stream():requestChangedmistral.beta.conversations.restart():request.guardrails[]Changed
mistral.beta.conversations.get():response.union(ModelConversation)Changedmistral.beta.conversations.list():response.[].union(ModelConversation)Changed
Generated with Speakeasy CLI 1.729.0
Publishing Completed
python - v2.0.0 - 2026-03-10 17:12:01
A technical release focused on improving developer experience.
What's new
Namespace package (mistralai.*)
The SDK is now a PEP 420 namespace package. All imports move from mistralai to mistralai.client:
# v1
from mistralai import Mistral
# v2
from mistralai.client import MistralAzure and GCP SDKs are now sub-packages under the same namespace:
from mistralai.azure.client import MistralAzure
from mistralai.gcp.client import MistralGCP # renamed from MistralGoogleCloudSchema naming conventions
42 request/response types renamed to follow consistent conventions:
- Request bodies:
{Verb}{Entity}Request(e.g.CreateAgentRequest) - Responses:
{Verb}{Entity}Response(e.g.ListFilesResponse) - Entities:
{Entity}(e.g.BatchJob,Checkpoint)
See MIGRATION.md for the full rename table.
Forward compatibility
- Enums now accept unknown values, new API values won't crash old SDK versions
- Discriminated unions get an
Unknownvariant for the same reason
Automatic schema conflict resolution
Speakeasy's nameResolutionFeb2025 flag is enabled, automatically detecting and resolving ambiguous type names during generation (e.g. Tools → ConversationRequestTool).
Breaking changes
- All import paths changed (see above)
- 42 type renames (see MIGRATION.md)
FunctionTool.type:Optional[FunctionToolType]→Literal["function"]- GCP class:
MistralGoogleCloud→MistralGCP
python - v2.0.0rc1 - 2026-03-02 15:39:49
Generated by Speakeasy CLI
Python SDK Changes:
mistral.beta.libraries.documents.list():response.data[].process_statusAddedmistral.beta.libraries.documents.upload():response.process_statusAddedmistral.beta.libraries.documents.get():response.process_statusAddedmistral.beta.libraries.documents.update():response.process_statusAddedmistral.beta.libraries.documents.status():response.process_statusAdded
Generated with Speakeasy CLI 1.729.0
Publishing Completed