MiMo API

MiMo API

Two Xiaomi models on the standard Text API passthrough, both aimed at agentic work over long horizons. Every model here answers on all four request formats the Text API supports.

ModelChoose it for
mimo-v2.5-proThe flagship, built for complex software engineering and long tool-calling runs
mimo-v2.5The lighter tier, at a fraction of the Pro rate

OpenAI Chat Completions

POST https://api.beatapi.io/v1/chat/completions

1import OpenAI from "openai";
2
3const client = new OpenAI({
4 apiKey: process.env.BEATAPI_API_KEY,
5 baseURL: "https://api.beatapi.io/v1"
6});
7
8const completion = await client.chat.completions.create({
9 model: "mimo-v2.5-pro",
10 max_tokens: 2000,
11 messages: [
12 { role: "user", content: "Plan the migration of a monolith's auth module into a separate service, listing the cutover risks." }
13 ]
14});
15
16console.log(completion.choices[0].message.content);
$curl --request POST \
> --url https://api.beatapi.io/v1/chat/completions \
> --header 'Authorization: Bearer <BEATAPI_API_KEY>' \
> --header 'Content-Type: application/json' \
> --data '{
> "model": "mimo-v2.5-pro",
> "messages": [
> {
> "role": "user",
> "content": "Plan the migration of a monolith's auth module into a separate service, listing the cutover risks."
> }
> ]
>}'

Both carry a context window above 1M tokens.

Other SDK formats

The same models answer on /v1/responses, /v1/messages and the Gemini-compatible endpoint. The request and response shapes are identical for every text model, so they are documented once on the Text API page rather than repeated here.

Authentication and availability

One BeatAPI key reaches every model on this page — there is no per-vendor key, no per-vendor base URL, and no separate signup. Send Authorization: Bearer <BEATAPI_API_KEY> against https://api.beatapi.io.