Skip to content

MaaS_MiniMax_M3.1

Model Overview

Item value
Model ID (model) MiniMax-M3.1-Flash
context window 1,000,000 tokens (total of input and output)
Maximum Output For the max_completion_tokensparameter of Chat Completions and the max_tokensparameter of Anthropic Messages: the recommended value is 131072 (128K), the upper limit is 524288 (512K), and the minimum value is 1. The max_output_tokensparameter of Responses does not have the same specified values
input modality text, images, and videos
Output Modality Text; additionally returns reasoning content and supports tool calls
Default Thinking Mode Enabled and cannot be disabled. The default thinking depth is max, and can be adjusted to low, medium, high, xhigh, max
Explicit Prompt Cache Anthropic cache_controlis not supported. The response usagemay still return cache counts; Responses provide the prompt_cache_key

Request Protocol

https

Parameter Name Type Required Description
Content-Type string Yes application/json
Authorization string Yes Bearer ${your_AK}

OpenAI Chat Completions

Request URL

POST https://genaiapi.cloudsway.net/v1/ai/{endpointPath}/chat/completions

Request Body Parameters

Parameter Name Secondary Parameters Three-level parameters CET-4 Parameters Type Required Description
model - - - string Yes Fixed as MaaS_Minimax_M3.1_flash_20261019 (original model from the vendor: MiniMax-M3.1-Flash)
messages - - - array[object] Yes Conversation history. Supports text, images, videos and tool calls. For multi-round tool calls, the complete assistant message (including tool_calls) and reasoning_content must be carried back as is.
role - - string Yes system, user, assistant, tool
name - - string No Sender name. Used for differentiation when multiple instances of the same role exist.
content - - string or array No An array of text or content blocks. The schema only lists roleas required
type - string Yes Required when the content block is an array: text, image_url, video_url
text - string No type= texttext at this time
image_url - object No type= image_url. Supported formats: JPEG, PNG, GIF, WEBP. Single image file size ≤ 10 MB, total request body size ≤ 64 MB
url string Yes Image URL or Base64 data URL
detail string No low, default, high, default value is default. Approximate per-image token usage: low usually ranges from several hundred up to around 600 tokens; default typically falls between 1k–3k, with a maximum of roughly 5k; high usually sits in the thousands, topping out at 15k+. Refer to the response usagefor the exact figure
max_long_side_pixel integer No Longest side in pixels, minimum 1
video_url - object No type= video_url. Supported formats: MP4, AVI, MOV, MKV. URL/Base64 video size ≤ 50 MB;
url string Yes Video URL or Base64 data URL
detail string No Frame extraction resolution: low, default, high, default is default
fps number No Frame extraction frequency, default value is 1, range [0.2, 5]. A higher value means higher sensitivity, more tokens and slower processing speed.
max_long_side_pixel integer No Maximum side pixel count of a single frame, minimum value: 1
tool_calls - - array[object] No Tool calls in the assistant message. Must be echoed back exactly as is in the next round
id - string Yes Tool Call ID
type - string Yes Fixed function
function - object Yes function call
name string Yes function name
arguments string Yes function input parameter, JSON string
tool_call_id - - string No Required when role= tool, take the value of tool_calls[]. idfrom the previous round. Ignored for other roles
thinking - - - object No This model enforces thinking; if omitted, it is equivalent to being enabled. disabledReturns HTTP 400 (error code 2013)
type - - string No This model only accepts adaptive, with adaptiveas the default. disabledwill return HTTP 400
reasoning_effort - - - string No Depth of thinking, only this model actually takes effect. low, medium, high, xhigh, max, default value maxis omitted. nonereturns HTTP 400. The higher the gear, the more thinking tokens and the higher the latency.
reasoning_split - - - boolean No true, the thinking content goes into reasoning_content; when set to false, the thinking content remains in contentvia think tags. This model does not support false. This field does not toggle the thinking function. No default value is provided in the source document.
stream - - - boolean No Whether to use streaming; defaults to false
stream_options - - - object No Streaming Options
include_usage - - boolean No Whether to return token usage in the stream, default false
max_completion_tokens - - - integer No Maximum generation length. This model recommends 131072 (128K), with a maximum limit of 524288 (512K) and a minimum value of 1. When generation stops due to length, finish_reasonwill be length
temperature - - - number No Sampling temperature, range [0,2], default 1
top_p - - - number No Nuclear sampling, range [0,1]. The default value for this model is 0.95
tools - - - array[object] No Tool definition, currently only supports function
type - - string Yes Fixed function
function - - object Yes function definition
name - string Yes function name
description - string No function description
parameters - object Yes function parameter JSON Schema
max_tokens - - - integer No Deprecated, please use max_completion_tokensinstead. Minimum value is 1. Thinking tokens count towards this limit; a value too small will result in finish_reason= lengthand an empty content.

Request Example

curl -X POST 'https://genaiapi.cloudsway.net/v1/ai/{endpointPath}/chat/completions' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer ${your_AK}' \
  -d '{
    "model": "MaaS_Minimax_M3.1_flash_20261019",
    "reasoning_effort": "max",
    "thinking": {"type": "adaptive"},
    "max_completion_tokens": 131072,
    "messages": [
      {"role": "user", "content": "Which is bigger, 9.11 or 9.9?"}
    ]
  }'

Response Example

{
  "id": "066b36619b147e326d17053cccdef70f",
  "object": "chat.completion",
  "created": 1780220769,
  "model": "MaaS_Minimax_M3.1_flash_20261019",
  "choices": [
    {
      "index": 0,
      "finish_reason": "stop",
      "message": {
        "role": "assistant",
        "content": "9.9 is bigger. 9.9 = 9.90, which is greater than 9.11.",
        "reasoning_content": "Comparing 9.11 and 9.90, the decimal part 90 > 11, so 9.9 is bigger."
      }
    }
  ],
  "usage": {
    "prompt_tokens": 170,
    "completion_tokens": 303,
    "total_tokens": 473,
    "prompt_tokens_details": {"cached_tokens": 157}
  },
  "input_sensitive": false,
  "output_sensitive": false,
  "base_resp": {"status_code": 0, "status_msg": ""}
}

finish_reasonValue options: stop, length, content_filter, tool_calls. Simple turns may not return reasoning_content, so check for null before reading. The Usage field in OpenAPI only declares total_tokens; official examples also return prompt_tokens, completion_tokens, and prompt_tokens_details.cached_tokens.

Example of streaming request

curl -X POST 'https://genaiapi.cloudsway.net/v1/ai/{endpointPath}/chat/completions' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer ${your_AK}' \
  -d '{
    "model": "MaaS_Minimax_M3.1_flash_20261019",
    "reasoning_effort": "max",
    "stream": true,
    "stream_options": {"include_usage": true},
    "messages": [{"role": "user", "content": "Which is bigger, 9.11 or 9.9?"}]
  }'

```plain text data: {"id":"066a2db7cb70134c45f5d6443d434c2c","object":"chat.completion.chunk","created":1780153015,"model":"MaaS_Minimax_M3.1_flash_20261019","choices":[{"index":0,"delta":{"role":"assistant","reasoning_content":"Comparing the two decimal numbers"},"finish_reason":null}]}

data: {"id":"066a2db7cb70134c45f5d6443d434c2c","object":"chat.completion.chunk","created":1780153015,"model":"MaaS_Minimax_M3.1_flash_20261019","choices":[{"index":0,"delta":{"role":"assistant","content":"9.9 is bigger."},"finish_reason":"stop"}]}

`The finish_reason of streaming chunks in the origin server enumeration is stop`, `length`, and is null when not finished.

### SDK Calling Method

```python
from openai import OpenAI

client = OpenAI(
    base_url="https://genaiapi.cloudsway.net/v1/ai/{endpointPath}",
    api_key="${your_AK}",
)

response = client.chat.completions.create(
    model="MaaS_Minimax_M3.1_flash_20261019",
    reasoning_effort="max",
    messages=[{"role": "user", "content": "Which is bigger, 9.11 or 9.9?"}],
    extra_body={"thinking": {"type": "adaptive"}},
)
print(response.choices[0].message.reasoning_content)
print(response.choices[0].message.content)

OpenAI Responses

Request URL

POST https://genaiapi.cloudsway.net/v1/ai/{endpoint}/responses

Request Body Parameters

Parameter Name Secondary Parameters Three-level parameters CET-4 Parameters Type Required Description
model - - - string Yes Fixed as MaaS_Minimax_M3.1_flash_20261019 (original model from the vendor: MiniMax-M3.1-Flash)
input - - - string or array Yes Plain text, or an array of conversation history
type - - string No Array item types: message (default), function_call, function_call_output, reasoning
role - - string No When type=message: user, assistant, system, developer, tool
content - - string or array No type= messagetext or multimodal content blocks
type - string Yes input_text, output_text, input_image, input_video
text - string No input_text/ output_texttext
image_url - string or object No input_image. Formats: JPEG, PNG, GIF, WEBP
url string Yes Required when in object format; valid values: image URL or Base64 string
detail string No low, default, high; the default is default
video_url - string or object No input_video. Formats: MP4, AVI, MOV, MKV. Large files are processed via the File API
url string Yes Required when in object format; valid values: video URL or Base64
fps number No Frame extraction frequency, default value 1, range [0.2, 5]
detail string No low, default, high; the default is default
max_long_side_pixel integer No The pixel count of the longest edge of the video frame. No minimum/maximum values are provided in the source document.
call_id - - string No function_callor function_call_outputtool call ID
name - - string No function_callfunction name
arguments - - string No function_callparameters, JSON string
output - - string or array No function_call_outputtool response
summary - - array No type= reasoningreasoning snippet
type - string No summary_text
text - string No Reasoning Text
instructions - - - string No System Instructions
max_output_tokens - - - integer No Maximum output tokens. Thought tokens count towards this limit; a value that is too small will result in status= incomplete, and there will be no messagein output. The source document does not specify the upper and lower limits for this value
temperature - - - number No Sampling temperature. The specified range is (0,1], with a default value of 1; the schema defines a minimum of 0 and a maximum of 1. This differs from the [0,2] range used for Chat Completions
top_p - - - number No Kernel sampling. The description is in the range (0,1], with a default value of 0.95; the minimum of the schema is 0 and the maximum is 1
stream - - - boolean No truemeans moving SSE when enabled, default value is false
tools - - - array[object] No Tool List
type - - string Yes Fixed function
name - - string Yes function name
description - - string No function description
parameters - - object No Parameter JSON Schema
tool_choice - - - string No Only auto, where the model decides whether to invoke tools
metadata - - - object No Request metadata, where both keys and values are strings
prompt_cache_key - - - string No Prompt cache routing identifier
text - - - object No Output Format Control
format - - object No format object
type - string No Only text, default text
reasoning - - - object No This model always performs reasoning even when reasoningis omitted
effort - - string No The model-specific clause accepts low, medium, high, xhigh, max; the default value maxmay be omitted. nonereturns HTTP 400. The schema enumeration additionally includes minimal, which the source document does not specify whether the model accepts.

Request Example

curl -X POST 'https://genaiapi.cloudsway.net/v1/ai/{endpoint}/responses' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer ${your_AK}' \
  -d '{
    "model": "MaaS_Minimax_M3.1_flash_20261019",
    "reasoning": {"effort": "max"},
    "input": "Which is bigger, 9.11 or 9.9?"
  }'

Response Example

{
  "id": "07229fa48d63ee86b664bb1c3a2257b7",
  "object": "response",
  "created_at": 1792240804,
  "model": "MaaS_Minimax_M3.1_flash_20261019",
  "status": "completed",
  "output": [
    {
      "id": "07229fa48d63ee86b664bb1c3a2257b7_rs",
      "type": "reasoning",
      "status": "completed",
      "summary": [],
      "content": [{"type": "reasoning_text", "text": "9.9 = 9.90, which is greater than 9.11."}]
    },
    {
      "id": "07229fa48d63ee86b664bb1c3a2257b7_msg",
      "type": "message",
      "status": "completed",
      "role": "assistant",
      "content": [{"type": "output_text", "text": "9.9 is bigger than 9.11.", "annotations": []}]
    }
  ],
  "output_text": "9.9 is bigger than 9.11.",
  "usage": {
    "input_tokens": 218,
    "output_tokens": 68,
    "total_tokens": 286,
    "input_tokens_details": {"cached_tokens": 189},
    "output_tokens_details": {"reasoning_tokens": 36}
  },
  "error": null,
  "incomplete_details": null
}

status values: completed, incomplete, failed. incomplete_details.reason values: max_output_tokens, content_filter. output may also contain type=function_call (including call_id, name, arguments).

Stream Request Example

curl -X POST 'https://genaiapi.cloudsway.net/v1/ai/{endpoint}/responses' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer ${your_AK}' \
  -d '{
    "model": "MaaS_Minimax_M3.1_flash_20261019",
    "reasoning": {"effort": "max"},
    "stream": true,
    "input": "Which is bigger, 9.11 or 9.9?"
  }'

The streaming event types from the origin server, in order, include: response.created, response.in_progress, response.output_item.added, response.content_part.added, response.reasoning_text.delta, response.reasoning_text.done, response.content_part.done, response.output_item.done, response.output_text.delta, response.output_text.done, response.completed.

data: {"type":"response.created","sequence_number":0,"response":{"id":"07229fa484712ce19b28c3e706b4f60c","object":"response","model":"MaaS_Minimax_M3.1_flash_20261019","status":"in_progress","output":[]}}

data: {"type":"response.reasoning_text.delta","sequence_number":5,"delta":"9.9 = 9.90"}

data: {"type":"response.output_text.delta","sequence_number":12,"delta":"9.9 is bigger."}

data: {"type":"response.completed","sequence_number":20,"response":{"id":"07229fa484712ce19b28c3e706b4f60c","object":"response","model":"MaaS_Minimax_M3.1_flash_20261019","status":"completed"}}

SDK Calling Method

from openai import OpenAI

client = OpenAI(
    base_url="https://genaiapi.cloudsway.net/v1/ai/{endpoint}",
    api_key="${your_AK}",
)

response = client.responses.create(
    model="MaaS_Minimax_M3.1_flash_20261019",
    reasoning={"effort": "max"},
    input="Which is bigger, 9.11 or 9.9?",
)
print(response.output_text)

Anthropic Messages

Request URL

POST https://genaiapi.cloudsway.net/{endpoint}/v1/messages

Request Body Parameters

Parameter Name Secondary Parameters Three-level parameters CET-4 Parameters Type Required Description
model - - - string Yes Fixed as MaaS_Minimax_M3.1_flash_20261019 (original model from the vendor: MiniMax-M3.1-Flash)
max_tokens - - - integer No Not listed as required in the OpenAPI, but all examples will pass a value. This model recommends 131072 (128K), with a maximum limit of 524288 (512K) and a minimum value of 1. The reasoning tokens count towards this upper limit; an excessively small value will result in stop_reason= max_tokenswith no text output.
messages - - - array[object] Yes Dialogue history. The model uses alternating user/ assistantformat. Subsequent turns must carry back the thinkingblock (including the signature) as is
role - - string Yes This model uses user, assistant. The schema also lists user_system, group, sample_message_user, sample_message_ai, and the source document does not specify whether this model supports them.
content - - string or array Yes Plain text, or an array of content blocks
type - string Yes text, image, video, tool_use, tool_result, thinking, mid_conv_system. thinkingis only used for postback of the previous round's assistant thinking
text - string No type= texttext
source - object No type= imageor type= videomedia source
type string Yes base64or url
media_type string No Required when using base64, e. g., image/png, video/mp4. Image: JPEG/PNG/GIF/WEBP. Video: MP4, AVI, MOV, MKV
data string No Base64 Media Bytes
url string No Public network URL. URL/Base64: video ≤ 50 MB, image ≤ 10 MB, request body ≤ 64 MB;
detail string No low, default, high, default is default. The approximate image usage is the same as the detail table for Chat Completions.
fps number No Video frame extraction, default value is 1, range is [0.2, 5]
max_long_side_pixel integer No The pixel count of the longest edge of an image or video frame, minimum value: 1
id - string No postback tool_usetool call ID
name - string No postback tool_usetool name
input - object No postback tool_usetool input parameters
tool_use_id - string No The tool_use ID corresponding to tool_result
content - string or array No tool_resultis the execution result, which can be a string or an array of text/image content blocks
thinking - string No postback thought text
signature - string No Consider the signature, which must be postedback as-is in subsequent rounds
system - - - string or array No System prompt. Array items are type= textplus text. cache_controlnot supported by this model
stream - - - boolean No Whether to use streaming; defaults to false
temperature - - - number No Range [0,2], default value is 1. The recommended value for compatibility note is 1
top_p - - - number No Range [0,1]. The default value of this model is 0.95
tools - - - array[object] No Tool Definition
name - - string Yes Tool Name
description - - string No Tool Description
input_schema - - object Yes Input JSON Schema
tool_choice - - - object No Tool selection strategy, only supports auto
type - - string Yes Fixed auto
thinking - - - object No This model is always active. If you pass type, it can only be adaptive;disabledwill return HTTP 400
type - - string No This model only accepts adaptive. disabledreturns HTTP 400
output_config - - - object No Output configuration. Use effortto adjust the thinking depth of this model
effort - - string No low, medium, high, xhigh, max; when omitted, the default is max. none returns HTTP 400
metadata - - - object No Request metadata
user_id - - string No End-user ID, used for aggregation, rate limiting and billing analysis

Request Example

curl -X POST 'https://genaiapi.cloudsway.net/{endpoint}/v1/messages' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer ${your_AK}' \
  -d '{
    "model": "MaaS_Minimax_M3.1_flash_20261019",
    "max_tokens": 4096,
    "thinking": {"type": "adaptive"},
    "output_config": {"effort": "max"},
    "messages": [
      {"role": "user", "content": "Which is bigger, 9.11 or 9.9?"}
    ]
  }'

Response Example

{
  "id": "066b367ba949a58a9d6829b4bf8cbcd4",
  "type": "message",
  "role": "assistant",
  "model": "MaaS_Minimax_M3.1_flash_20261019",
  "content": [
    {
      "type": "thinking",
      "thinking": "9.9 = 9.90, which is greater than 9.11.",
      "signature": "6d0315c818f9664ff185dabaa22cd89f2bf28a3a52122095bce23d905471ec5f"
    },
    {
      "type": "text",
      "text": "9.9 is bigger than 9.11."
    }
  ],
  "stop_reason": "end_turn",
  "usage": {
    "input_tokens": 13,
    "output_tokens": 149,
    "cache_creation_input_tokens": 0,
    "cache_read_input_tokens": 159
  }
}

stop_reasonValue options: end_turn, max_tokens, tool_use. When a tool is called, the content block is tool_use (id, name, input). The response will not contain image, video, tool_result, or mid_conv_system blocks.

Stream Request Example

curl -X POST 'https://genaiapi.cloudsway.net/{endpoint}/v1/messages' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer ${your_AK}' \
  -d '{
    "model": "MaaS_Minimax_M3.1_flash_20261019",
    "max_tokens": 4096,
    "output_config": {"effort": "max"},
    "stream": true,
    "messages": [{"role": "user", "content": "Which is bigger, 9.11 or 9.9?"}]
  }'

Event types: message_start, ping, content_block_start, content_block_delta, content_block_stop, message_delta, message_stop. The delta types include thinking_delta, text_delta, signature_delta. When an error occurs during streaming, it is event: error.

event: message_start
data: {"type":"message_start","message":{"id":"066b367ba949a58a9d6829b4bf8cbcd4","type":"message","role":"assistant","model":"MaaS_Minimax_M3.1_flash_20261019","content":[],"stop_reason":null}}

event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":"9.9 = 9.90"}}

event: content_block_delta
data: {"type":"content_block_delta","index":1,"delta":{"type":"text_delta","text":"9.9 is bigger."}}

event: message_delta
data: {"type":"message_delta","delta":{"stop_reason":"end_turn"},"usage":{"output_tokens":149}}

event: message_stop
data: {"type":"message_stop"}

SDK Calling Method

import anthropic

client = anthropic.Anthropic(
    base_url="https://genaiapi.cloudsway.net/{endpoint}/v1",
    api_key="${your_AK}",
)

message = client.messages.create(
    model="MaaS_Minimax_M3.1_flash_20261019",
    max_tokens=4096,
    output_config={"effort": "max"},
    messages=[{"role": "user", "content": "Which is bigger, 9.11 or 9.9?"}],
)

for block in message.content:
    if block.type == "thinking":
        print(block.thinking)
    elif block.type == "text":
        print(block.text)