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",
"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",
"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": ""
}
}Create Chat Completion
Call MiniMax models via the OpenAI Chat Completions API compatible endpoint. Generates model replies, supports streaming and non-streaming.
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",
"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",
"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-FlashCore capabilities: 1M long context, multimodal, tunable thinking depth.MiniMax-M3.1-Flash:- 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. Supports MiniMax-M3.1-Flash and MiniMax-M3.
MiniMax-M3.1-Flash, MiniMax-M3 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. MiniMax-M3.1-Flash does not support this field.
standard, priority Controls thinking behavior. The adaptive default applies to every model here; only the effect of disabled differs.
MiniMax-M3.1-Flash: 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 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 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 does not 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 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 >= 1Not supported yet; any value passed has no effect. MiniMax-M3.1-Flash and MiniMax-M3 always use 1.
Not supported yet; any value passed has no effect. MiniMax-M3.1-Flash and MiniMax-M3 always use 0.95. If passed, the value must be within (0, 1].
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