Skip to navigation

MiMo V2.6 Pro

Beta
View as Markdown

MiMo V2.6 Pro (checkpoint MiMo-V2.6-Pro-MOPD) is the larger model in the MiMo V2.6 family (1.02T total parameters, 42B active), served on Sarvam infrastructure as an open-weight model. It has a 1,048,576-token context window and shares its API behaviour with MiMo V2.6 Flash.

MiMo V2.6 Pro is in beta. Its behaviour, limits, and availability may change before general availability. Beta models must be enabled for your API key; without access, requests return 400 invalid_request_error (“This model is currently in beta”). Contact us to request access. See Beta models.

At a glance

Model IDmimo-v2.6-pro
Parameters1.02T total, 42B active
Best forHarder reasoning and agentic tasks over long text
Context window1,048,576 tokens
Input → outputText + image + audio + video → text (video on chat only). See Media input
ReasoningOn by default; can be turned off. See Reasoning
Tool callingSupported, including tool_choice: "required" and parallel tool calls
APIsPOST /v2/chat/completions and POST /v2/responses
Pricing₹40 input · ₹0.3 cached input · ₹80 output per 1M tokens; reasoning is billed as output (Pricing)

Key capabilities

Long context

Process up to 1,048,576 tokens across the prompt, reasoning, and generated output.

Reasoning on or off

Thinks by default; turn thinking off for faster, cheaper direct answers.

Image, audio, and video input

Send base64 images, audio, and video alongside text.

Tool calling

Use OpenAI-compatible tools and tool_choice for agentic workflows.

Structured output

Constrain answers with response_format JSON schemas.

Log probabilities

Request logprobs and top_logprobs, and n > 1 choices.

Moving from OpenRouter, Fireworks AI, or Together AI? The migration guides map model IDs and request fields to Sarvam.

Quickstart

from sarvamai import SarvamAI
client = SarvamAI(api_subscription_key="YOUR_SARVAM_API_KEY")
response = client.chat.completions_v2(
model="mimo-v2.6-pro",
messages=[
{
"role": "user",
"content": "List three ways to reduce cold-start latency in a serverless API.",
}
],
max_tokens=2000,
)
print(response.choices[0].message.content)

Supported parameters

model: "mimo-v2.6-pro" on Chat Completion V2 and Responses. Full request/response schemas live on those API reference pages; this table covers what’s actually accepted for this model.

ParameterChat Completion V2Responses
Streaming (stream)
Image input (base64) image_url input_image
Audio input (base64) input_audio or audio_url input_audio only
Video input (base64) video_url 400
Tool calling (tools, tool_choice)
parallel_tool_calls: false enforced
Structured output (response_format / text.format)
Log probabilities (logprobs, top_logprobs) send top_logprobs with include: ["message.output_text.logprobs"]; logprobs: true returns 400
Multiple choices (n > 1)N/A — Responses has no n
Reasoning controlAny value but "none" just switches thinking on; doesn’t change effortSame behaviour via reasoning.effort
Turn reasoning off reasoning_effort: "none" reasoning.effort: "none"

Reasoning

MiMo V2.6 Pro thinks by default. Thinking is either on or off: any effort value other than "none" (low, high, max, and so on) only switches thinking on; it doesn’t change how much the model thinks.

Turn thinking off with any of:

SettingWhere
reasoning_effort: "none"Chat Completion V2; reasoning.effort: "none" on Responses
thinking: {"type": "disabled"}Through extra_body in the SDKs
chat_template_kwargs: {"enable_thinking": false}Through extra_body in the SDKs
response = client.chat.completions_v2(
model="mimo-v2.6-pro",
messages=[{"role": "user", "content": "What is 17 × 23?"}],
extra_body={"thinking": {"type": "disabled"}},
max_tokens=2000,
)

Read the reasoning trace from choices[].message.reasoning_content on chat. On Responses, output starts with a reasoning item; read its content[0].text (summary is empty). Reasoning tokens are billed as output tokens and count against max_tokens / max_output_tokens.

Tool calling

Pass OpenAI-compatible tools. tool_choice accepts "auto", "none", "required", or a named function ({"type": "function", "function": {"name": "..."}}). The model can return several tool calls in one turn; set parallel_tool_calls: false to get at most one.

Structured output

Pass a JSON schema in response_format:

response = client.chat.completions_v2(
model="mimo-v2.6-pro",
messages=[{"role": "user", "content": "Give a city and its country."}],
response_format={
"type": "json_schema",
"json_schema": {
"name": "city",
"strict": True,
"schema": {
"type": "object",
"properties": {
"city": {"type": "string"},
"country": {"type": "string"},
},
"required": ["city", "country"],
"additionalProperties": False,
},
},
},
max_tokens=2000,
)

Media input

MiMo V2.6 Pro accepts images, audio, and video alongside text. Send every file inline as a base64 data URI; remote http(s) URLs return 400.

InputChat Completion V2ResponsesFormats
Imageimage_url partinput_image partPNG, JPEG, WebP, GIF, BMP, TIFF
Audioinput_audio part (data, format: wav or mp3), or audio_url part with a data URI (WAV, MP3, FLAC, OGG, Opus)input_audio part only (wav or mp3)WAV, MP3, FLAC, OGG, Opus
Videovideo_url part with a data URINot supportedMP4
import base64
def data_uri(path, mime):
with open(path, "rb") as f:
return f"data:{mime};base64," + base64.b64encode(f.read()).decode()
with open("question.wav", "rb") as f:
audio_b64 = base64.b64encode(f.read()).decode()
response = client.chat.completions_v2(
model="mimo-v2.6-pro",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "Answer the question in the audio, using the chart and the clip."},
{"type": "image_url", "image_url": {"url": data_uri("chart.png", "image/png")}},
{"type": "input_audio", "input_audio": {"data": audio_b64, "format": "wav"}},
{"type": "video_url", "video_url": {"url": data_uri("clip.mp4", "video/mp4")}},
],
}
],
max_tokens=2000,
)

Thinking and audio: when the latest user message contains audio, the model answers without thinking by default. To think anyway, send chat_template_kwargs: {"enable_thinking": true} (through extra_body in the SDKs). Audio in earlier turns doesn’t change the default.

Limits:

  • Request body up to 40 MiB, including base64 media. Base64 adds about 33%, so about 30 MB of raw media fits in one request.
  • Up to 999 files of each type per request.
  • Images are resized to about 8.4 megapixels.
  • Video is sampled to 32 frames. Resolution isn’t capped: higher-resolution video, including 4K, is accepted and uses more tokens.
  • Audio up to 10 minutes per file.

Media tokens are billed as input and reported in usage.prompt_tokens_details as image_tokens, audio_tokens, and video_tokens.

Known limitations

  • Media must be inline base64; remote URLs return 400. Video works on Chat Completion V2 only.
  • Plain one-colour images are often described as “white” or “black”.
  • Reasoning and the final answer share the max_tokens / max_output_tokens budget.
  • stop strings match the answer only, not the thinking.
  • Set max_tokens explicitly. When it’s omitted, generation isn’t capped at a small default and long answers can run to tens of thousands of tokens.

Limits and errors

AreaLimit or conditionAPI responseRecommended action
Outputmax_tokens exceeds 1,048,576400 invalid_request_errorSet max_tokens within the context window.
Request sizeRequest body exceeds 40 MiB (41,943,040 bytes)413 invalid_request_error, with the limit in the messageSend smaller or fewer media files. Base64 adds about 33%, so about 30 MB of raw media fits.
Media URLAn image, audio, or video part uses an http(s) URL400 invalid_request_errorSend the file inline as a base64 data URI.
Video on ResponsesA Responses request includes video400 invalid_request_errorSend video on Chat Completion V2.
Media countMore than 999 files of one type in a requestRequest rejectedSplit the request.
ReasoningReasoning consumes the full max_tokens budget200 with finish_reason: "length"Raise max_tokens or lower the reasoning effort.
AuthenticationAPI key is missing or invalid403 invalid_api_key_errorCheck the api-subscription-key header.
ModelModel ID is unknown or unavailable404 not_found_errorCheck the spelling; model IDs are case-sensitive.
QuotaNo credits remain402 insufficient_quota_errorAdd credits in the dashboard.
Rate limitRequest or concurrency limit is exceeded429 rate_limit_exceeded_errorBack off and retry.
AvailabilityModel remains overloaded after retries503 model_overloadedRetry later.