# OpenRouter APIs — MiniMax: MiniMax M3.1 Flash (minimax/minimax-m3.1-flash)

Guide for calling every confirmed OpenRouter API that serves `minimax/minimax-m3.1-flash`.

Model page: https://openrouter.ai/minimax/minimax-m3.1-flash
Create an API key: https://openrouter.ai/settings/keys

## Pricing

Standard-variant prices for `minimax/minimax-m3.1-flash`, per provider, in the unit each provider bills (tokens, images, seconds of video, or characters of audio). Pay-as-you-go with no markup on the provider's price.

- Tenstorrent: $0.05/M tokens input, $0.20/M tokens output (plus 1 more; see the model page for the full price list)
- GMICloud: $0.1125/M tokens input, $0.45/M tokens output (plus 1 more; see the model page for the full price list)
- StreamLake: $0.135/M tokens input, $0.54/M tokens output (plus 1 more; see the model page for the full price list)
- Fireworks: $0.15/M tokens input, $0.60/M tokens output (plus 1 more; see the model page for the full price list)
- inference.net: $0.15/M tokens input, $0.60/M tokens output (plus 1 more; see the model page for the full price list)
- DigitalOcean: $0.15/M tokens input, $0.60/M tokens output (plus 1 more; see the model page for the full price list)
- NovitaAI: $0.15/M tokens input, $0.60/M tokens output (plus 1 more; see the model page for the full price list)
- Nebius Token Factory: $0.15/M tokens input, $0.60/M tokens output (plus 1 more; see the model page for the full price list)
- SambaNova: $0.15/M tokens input, $0.60/M tokens output (plus 1 more; see the model page for the full price list)
- ModelRun [by Modular]: $0.15/M tokens input, $0.60/M tokens output (plus 1 more; see the model page for the full price list)
- Parasail: $0.15/M tokens input, $0.60/M tokens output (plus 1 more; see the model page for the full price list)
- Together: $0.15/M tokens input, $0.60/M tokens output (plus 1 more; see the model page for the full price list)
- MiniMax: $0.15/M tokens input, $0.60/M tokens output (plus 1 more; billed by UTC time of day, this line shows the rate of one window; see the model page for the full price list)

Full price table, including other variants and per-request charges: https://openrouter.ai/minimax/minimax-m3.1-flash
How OpenRouter prices requests: https://openrouter.ai/pricing

## EU in-region routing

`minimax/minimax-m3.1-flash` is not currently available through EU in-region routing.

Docs: https://openrouter.ai/docs/guides/features/in-region-routing

## Authentication

Send this header with every request:

- Authorization: Bearer $OPENROUTER_API_KEY

## Text / Chat Completions API

Generate text with `minimax/minimax-m3.1-flash` through OpenRouter's Chat Completions API.

Docs: https://openrouter.ai/docs/api/api-reference/chat/create-a-chat-completion

### Endpoint

POST https://openrouter.ai/api/v1/chat/completions

Headers:
- Content-Type: application/json

### Request fields (minimax/minimax-m3.1-flash)

- model: string (required) — `"minimax/minimax-m3.1-flash"`
- messages: array (required) — ordered conversation messages with `role` and `content`
- stream: boolean (optional) — return Server-Sent Events as tokens are generated
- frequency_penalty: optional — accepted by this model; see the API reference for its value shape
- logit_bias: optional — accepted by this model; see the API reference for its value shape
- logprobs: optional — accepted by this model; see the API reference for its value shape
- max_tokens: optional — accepted by this model; see the API reference for its value shape
- min_p: optional — accepted by this model; see the API reference for its value shape
- presence_penalty: optional — accepted by this model; see the API reference for its value shape
- reasoning: optional — accepted by this model; see the API reference for its value shape
- reasoning_effort: optional — accepted by this model; see the API reference for its value shape
- repetition_penalty: optional — accepted by this model; see the API reference for its value shape
- response_format: optional — accepted by this model; see the API reference for its value shape
- seed: optional — accepted by this model; see the API reference for its value shape
- stop: optional — accepted by this model; see the API reference for its value shape
- temperature: optional — accepted by this model; see the API reference for its value shape
- tool_choice: optional — accepted by this model; see the API reference for its value shape
- tools: optional — accepted by this model; see the API reference for its value shape
- top_k: optional — accepted by this model; see the API reference for its value shape
- top_logprobs: optional — accepted by this model; see the API reference for its value shape
- top_p: optional — accepted by this model; see the API reference for its value shape

The model-specific optional fields above come from this model's advertised capabilities.
`stream` and `provider` routing preferences are API controls accepted independently of that
model capability list.

### Response

Without `stream`, the response is a Chat Completions JSON object:

```json
{
  "id": "gen-abc123",
  "choices": [{ "message": { "role": "assistant", "content": "..." } }],
  "usage": { "prompt_tokens": 12, "completion_tokens": 24, "total_tokens": 36, "cost": 0.001 }
}
```

With `stream: true`, the response is `text/event-stream`: read each `data:` JSON chunk until
`data: [DONE]`. The final usage chunk carries token counts and cost when usage is requested.

### Examples

#### Chat completion

```bash
curl -X POST https://openrouter.ai/api/v1/chat/completions \
  -H "Authorization: Bearer $OPENROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "minimax/minimax-m3.1-flash",
  "messages": [
    {
      "role": "user",
      "content": "What is the meaning of life?"
    }
  ]
}'
```

### Error differences

- 400 — malformed messages or a parameter this model does not support
- 502 — the upstream text generation failed

## Errors

Failures return `{"error": {"code": <number>, "message": <string>}}` with the HTTP status:

- 400 — malformed request or an unsupported parameter
- 401 — missing or invalid API key
- 402 — insufficient credits
- 403 — spend limit reached, key disabled, or access blocked
- 404 — unknown model or no provider can serve the request
- 429 — rate limited; retry with backoff
- 502 — the operation failed upstream; failed generations are not billed

---

Canonical version of this document: https://openrouter.ai/minimax/minimax-m3.1-flash/llms.txt
