curl --request POST \
--url https://api.minimax.io/v1/chat/completions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: <content-type>' \
--data '
{
"model": "MiniMax-M3.1-Flash-Preview",
"thinking": {
"type": "adaptive"
},
"messages": [
{
"role": "user",
"content": "Which is bigger, 9.11 or 9.9?"
}
],
"max_completion_tokens": 500,
"reasoning_effort": "max"
}
'{
"id": "066b366b8e8beeafd3b8b49f89e00648",
"choices": [
{
"finish_reason": "stop",
"index": 0,
"message": {
"content": "**9.9 is bigger than 9.11.**\n\nIt can be tempting to think 9.11 > 9.9 because \"11\" looks larger than \"9,\" but decimals don't work that way. Here's why:\n\n- **9.11** = 9 + **0.11** (eleven hundredths)\n- **9.9** = 9 + **0.90** (ninety hundredths)\n\nSince 0.90 > 0.11, **9.9 is greater**. ✅\n\n**Tip:** When comparing decimals, compare them to the same number of decimal places. Write 9.9 as 9.90 — now it's easy to see that 9.90 > 9.11.",
"reasoning_content": "The user is asking which is bigger, 9.11 or 9.9. This is a comparison of two decimal numbers.\n\n9.11 vs 9.9\n\nLet me think carefully:\n- 9.11 = 9 + 0.11\n- 9.9 = 9 + 0.90\n\n0.90 > 0.11, so 9.9 > 9.11.\n\nAlternatively, I can compare them as if they were both decimals to the same place:\n- 9.11\n- 9.90\n\nComparing the tenths place: 1 vs 9. Since 9 > 1, 9.9 is bigger.\n\nSo 9.9 is bigger than 9.11.",
"role": "assistant",
"name": "MiniMax AI",
"audio_content": ""
}
}
],
"created": 1780220779,
"model": "MiniMax-M3.1-Flash-Preview",
"object": "chat.completion",
"usage": {
"total_tokens": 484,
"total_characters": 0,
"prompt_tokens": 172,
"completion_tokens": 312,
"prompt_tokens_details": {
"cached_tokens": 159
}
},
"input_sensitive": false,
"output_sensitive": false,
"input_sensitive_type": 0,
"output_sensitive_type": 0,
"output_sensitive_int": 0,
"base_resp": {
"status_code": 0,
"status_msg": ""
}
}Chat Completions API
Use the OpenAI API compatible Chat Completions format to call MiniMax models.
curl --request POST \
--url https://api.minimax.io/v1/chat/completions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: <content-type>' \
--data '
{
"model": "MiniMax-M3.1-Flash-Preview",
"thinking": {
"type": "adaptive"
},
"messages": [
{
"role": "user",
"content": "Which is bigger, 9.11 or 9.9?"
}
],
"max_completion_tokens": 500,
"reasoning_effort": "max"
}
'{
"id": "066b366b8e8beeafd3b8b49f89e00648",
"choices": [
{
"finish_reason": "stop",
"index": 0,
"message": {
"content": "**9.9 is bigger than 9.11.**\n\nIt can be tempting to think 9.11 > 9.9 because \"11\" looks larger than \"9,\" but decimals don't work that way. Here's why:\n\n- **9.11** = 9 + **0.11** (eleven hundredths)\n- **9.9** = 9 + **0.90** (ninety hundredths)\n\nSince 0.90 > 0.11, **9.9 is greater**. ✅\n\n**Tip:** When comparing decimals, compare them to the same number of decimal places. Write 9.9 as 9.90 — now it's easy to see that 9.90 > 9.11.",
"reasoning_content": "The user is asking which is bigger, 9.11 or 9.9. This is a comparison of two decimal numbers.\n\n9.11 vs 9.9\n\nLet me think carefully:\n- 9.11 = 9 + 0.11\n- 9.9 = 9 + 0.90\n\n0.90 > 0.11, so 9.9 > 9.11.\n\nAlternatively, I can compare them as if they were both decimals to the same place:\n- 9.11\n- 9.90\n\nComparing the tenths place: 1 vs 9. Since 9 > 1, 9.9 is bigger.\n\nSo 9.9 is bigger than 9.11.",
"role": "assistant",
"name": "MiniMax AI",
"audio_content": ""
}
}
],
"created": 1780220779,
"model": "MiniMax-M3.1-Flash-Preview",
"object": "chat.completion",
"usage": {
"total_tokens": 484,
"total_characters": 0,
"prompt_tokens": 172,
"completion_tokens": 312,
"prompt_tokens_details": {
"cached_tokens": 159
}
},
"input_sensitive": false,
"output_sensitive": false,
"input_sensitive_type": 0,
"output_sensitive_type": 0,
"output_sensitive_int": 0,
"base_resp": {
"status_code": 0,
"status_msg": ""
}
}MiniMax-M3.1-Flash-PreviewCore capabilities: 1M long context, multimodal, tunable thinking depth.Available only through M Plan and MiniMax Code for now.MiniMax-M3.1-Flash-Preview:- Image and video understanding — see the example code on the right
- Tune thinking depth via
reasoning_effort, which acceptslow,medium,high,xhigh, andmax; the default ismax - Thinking is on by default with no configuration needed; thinking content is returned separately on the
reasoning_contentfield
Authorizations
HTTP: Bearer Auth
- Security Scheme Type: http
- HTTP Authorization Scheme: Bearer API_key, used for account verification, can be viewed in Account Management > API Keys
Headers
Media type of the request body, should be set to application/json to ensure JSON format
application/json Body
Model ID
MiniMax-M3.1-Flash-Preview, MiniMax-M3, MiniMax-M2.7, MiniMax-M2.7-highspeed, MiniMax-M2.5, MiniMax-M2.5-highspeed, MiniMax-M2.1, MiniMax-M2.1-highspeed, MiniMax-M2 A list of messages containing the conversation history. Supports text, image, video, and tool call content.
Show child attributes
Show child attributes
Service tier for request admission. Supported values are standard and priority. If omitted, the request uses the standard tier. The priority price is 1.5 times the standard price and ensures priority admission so the request is processed ahead of other requests, leading to faster responses and fewer failures.
standard, priority Controls thinking behavior. The adaptive default applies to every model here; only the effect of disabled differs.
MiniMax-M3.1-Flash-Preview: always thinks.disabledreturns HTTP 400. Usereasoning_effortto tune thinking depth.MiniMax-M3: adaptive thinking is on by default;disabledskips thinking and answers directly.- M2.x models: thinking cannot be disabled;
disabledis accepted but ignored.
Show child attributes
Show child attributes
Tunes thinking depth. Only MiniMax-M3.1-Flash-Preview supports real thinking-depth tuning; other models ignore this field. When omitted, its default thinking depth is max. none is not accepted and returns HTTP 400 because MiniMax-M3.1-Flash-Preview always thinks.
low, medium, high, xhigh, max Output-format switch. When true, thinking content is separated into the reasoning_content field; when false, thinking is kept inside content wrapped in <think> tags. MiniMax-M3.1-Flash-Preview does not currently support setting this parameter to false. This parameter does not enable or disable thinking.
Whether to use streaming output, defaults to false. When set to true, the response will be returned in chunks.
Streaming response options.
Show child attributes
Show child attributes
Specifies the upper limit for generated content length, in tokens. For MiniMax-M3.1-Flash-Preview and MiniMax-M3 the recommended value is 131072 (128K) and the maximum is 524288 (512K); for other models the recommended value is 65536 (64K) and the maximum is 204800 (200K). If generation stops due to length, try increasing this value.
x >= 1Temperature coefficient, affects output randomness. Range [0, 2], default 1. Higher values produce more random output; lower values produce more deterministic output.
0 <= x <= 2Nucleus sampling parameter. Range [0, 1]. Default is 0.95 for MiniMax-M3.1-Flash-Preview and MiniMax-M3, and 0.9 for M2.x models.
0 <= x <= 1Tool definition list. Function tools are supported.
Show child attributes
Show child attributes
Legacy generation length limit parameter. Deprecated; use max_completion_tokens instead.
x >= 1Response
Unique ID of this response
List of response choices
Show child attributes
Show child attributes
Unix timestamp (seconds) when the response was created
Model ID used for this request
Object type. chat.completion for non-streaming, chat.completion.chunk for streaming
chat.completion, chat.completion.chunk Token usage statistics for this request
Show child attributes
Show child attributes
Whether the input content triggered sensitive word detection. If the input content is severely inappropriate, the API will return a content violation error message with empty reply content
Type of sensitive word triggered by input, returned when input_sensitive is true. Values: 1 Severe violation; 2 Pornography; 3 Advertising; 4 Prohibited; 5 Abuse; 6 Violence/Terrorism; 7 Other
Whether the output content triggered sensitive word detection. If the output content is severely inappropriate, the API will return a content violation error message with empty reply content
Type of sensitive word triggered by output
Error status code and details
Show child attributes
Show child attributes