mimo-v2.5-pro — price, context and performance
mimo-v2.5-pro is a Xiaomi model with a 1M context window supporting Reasoning, Tools, Open Weights. Input $0.44, output $0.87 per 1M tokens.
Overview
| Vendor | Xiaomi |
|---|---|
| Context | 1M |
| Capabilities | Reasoning, Tools, Open Weights |
| API formats | openai, openai-response, openai-response-compact, anthropic, gemini, openai-alpha-search |
| Billing formula | p * 0.435 + cr * 0.0036 + c * 0.87 |
Stronger MiMo Pro tier for multimodal reasoning and coding-agent executionPricing
| Plan | Multiplier | Input | Output | Cached input | Note |
|---|---|---|---|---|---|
| Base price | 1× | $0.44 | $0.87 | $0.0036 | |
| Max | 4× | $1.74 | $3.48 | $0.01 | Premium — max reasoning & stability. |
Only groups enabled for this model are listed.
Performance
| API endpoint | https://api.airai.cc/v1 |
|---|---|
| OpenAI-compatible | OpenAI-compatible |
FAQ
How much does mimo-v2.5-pro cost?
Input $0.44, output $0.87 per 1M tokens.
What is the context window of mimo-v2.5-pro?
mimo-v2.5-pro has a 1M context window: the combined token limit for input and output in a single request.
How do I call mimo-v2.5-pro from code?
Point base_url to https://api.airai.cc/v1 and set model to mimo-v2.5-pro. The API is fully OpenAI compatible.
Why does mimo-v2.5-pro return error 429?
429 is a rate limit response. Lower your concurrency, retry with backoff, or switch to a plan with a larger quota.
Model comparison
| Model | Vendor | Input | Output | Context |
|---|---|---|---|---|
| mimo-v2.5-pro | Xiaomi | $0.44 | $0.87 | 1M |
| mimo-v2.5 | Xiaomi | $0.14 | $0.28 | 1M |
| mimo-v2.6-flash | $0.14 | $0.28 | not specified | |
| mimo-v2.6-pro | $0.44 | $0.87 | not specified |
Troubleshooting
429 is a rate limit response. Lower your concurrency, retry with backoff, or switch to a plan with a larger quota.
Common causes
- Too many concurrent requests
- Quota of the current plan exhausted
- Retrying immediately without backoff
How to fix
- Limit concurrency and retry with exponential backoff
- Switch to a plan with a larger quota
- Cache repeated requests
How to connect
curl https://api.airai.cc/v1/chat/completions \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "mimo-v2.5-pro",
"messages": [{"role": "user", "content": "Hello"}]
}'from openai import OpenAI
client = OpenAI(
api_key="<YOUR_API_KEY>",
base_url="https://api.airai.cc/v1"
)
response = client.chat.completions.create(
model="mimo-v2.5-pro",
messages=[{"role": "user", "content": "Hello"}]
)
print(response.choices[0].message.content)import OpenAI from "openai";
const client = new OpenAI({
apiKey: "<YOUR_API_KEY>",
baseURL: "https://api.airai.cc/v1"
});
const response = await client.chat.completions.create({
model: "mimo-v2.5-pro",
messages: [{ role: "user", content: "Hello" }]
});
console.log(response.choices[0].message.content);const OpenAI = require("openai");
const client = new OpenAI({
apiKey: "<YOUR_API_KEY>",
baseURL: "https://api.airai.cc/v1"
});
client.chat.completions.create({
model: "mimo-v2.5-pro",
messages: [{ role: "user", content: "Hello" }]
}).then((r) => console.log(r.choices[0].message.content));Replace <YOUR_API_KEY> with the API Key from your token settings.
Compatible endpoints
openaiopenai-responseopenai-response-compactanthropicgeminiopenai-alpha-search
Gemini SDK · TypeScript
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("<YOUR_API_KEY>");
const model = genAI.getGenerativeModel({ model: "mimo-v2.5-pro" });
const result = await model.generateContent(
"Explain quantum entanglement in one paragraph."
);
console.log(result.response.text());Authentication
All requests must include the Authorization: Bearer <TOKEN> header. Anthropic-format endpoints also accept the x-api-key header. Generate your API Key on the Tokens page, where you can scope access by model, group, IP, and rate limits.
Supported parameters
| Parameter | Type | Default | Range | Description |
|---|---|---|---|---|
temperature | float | 1 | 0–2 | Sampling temperature; lower is more stable |
top_p | float | 1 | 0–1 | Nucleus sampling cumulative probability |
max_tokens | integer | — | — | Maximum tokens in the response |
frequency_penalty | float | 0 | −2–2 | Penalizes repeated high-frequency tokens |
presence_penalty | float | 0 | −2–2 | Encourages introducing new topics |
stop | string[] | null | ≤ 4 | Up to 4 strings that stop generation |
seed | integer | null | — | Seed for more reproducible sampling |
n | integer | 1 | — | Number of candidate completions |
stream | boolean | false | — | Stream tokens via SSE |
response_format | object | — | — | Force JSON output or schema-conformant results |
tools | array | — | — | Function/tool declarations the model can call |
tool_choice | string | object | auto | — | Tool selection strategy or specific tool name |
logprobs | boolean | false | — | Return log probabilities for each token |
top_logprobs | integer | null | 0–20 | Number of top probabilities returned per token |
logit_bias | map | — | — | Logit bias mapping per token |
user | string | — | — | End-user identifier for risk auditing |
Rate limits
| Tier | RPM | TPM | RPD |
|---|---|---|---|
| Eco | 990 | 398K | 20K |
| Test | 980 | 393K | 20K |
Data updated: 2026-10-10 08:15