Skip to main content

minimax/m3.1-flash/chat

MiniMax M3.1 Flash API combines a 1,000,000-token input window with image and video understanding for coding agents; reasoning_effort changes thinking depth without switching models. For M3.1 Flash tool loops, preserve the complete assistant response, including reasoning content and tool calls, then return execution results with the matching tool_call_id; your application remains responsible for validation and execution.

Input $0.15Output $0.60per 1 million tokensCached input $0.015

Workbench

Send a request

Quickstart

Examples use the selected endpoint’s public parameter definitions. Replace the API key and example media, then send the request from your server.

SDKs & integrations
POSThttps://api.spicyapi.ai/v1/chat/completions

API authentication

Keep the API key in the server environment variable SPICY_API_KEY. Use Bearer authentication and Content-Type: application/json for JSON requests.

Authorization: Bearer $SPICY_API_KEY
curl --fail-with-body -sN https://api.spicyapi.ai/v1/chat/completions \
  -H "Authorization: Bearer $SPICY_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "model": "minimax/m3.1-flash/chat",
  "messages": [
    {
      "role": "user",
      "content": "Summarise the following release notes into three bullet points."
    }
  ],
  "stream": true
}' \
  | jq --unbuffered -Rrj 'select(startswith("data: ")) | .[6:] | select(. != "[DONE]") | fromjson | if .error then "\n[error] \(.error.message)\n" else (.choices[0].delta.content? // empty) end'

Generated from this model’s input schema — the same one the API validates every request against.

Keep one Idempotency-Key for each logical request. After a network interruption, do not automatically resend with a new key; retain request_id to investigate the accepted request. Idempotency does not replay an earlier chat stream.

Input parameters

Place the model parameters directly in the JSON request body alongside model. This endpoint does not use an input wrapper.

messagesarray<object>Required

Build the M3.1 Flash agent history in order, including media and complete prior assistant/tool exchanges; send video inline within 14 MB, with no audio parts on this endpoint.

Default
Not specified
Constraints
minItems:1
maxItems:256
response_formatobjectOptional

Request text or structured JSON for the M3.1 Flash result; validate the returned object before using it as a diagnostic record or executable input.

Default
Not specified
tool_choicestring | objectOptional

Guide the M3.1 Flash tool step with auto, none, required or a named function; none here disables tool selection, not the model’s reasoning.

Default
Not specified
parallel_tool_callsbooleanOptional

Allow M3.1 Flash to propose independent tool calls together; retain each call’s ID when sending back the separate execution results.

Default
true
toolsarray<object>Optional

Offer up to 128 OpenAI-format function definitions to M3.1 Flash; use explicit argument schemas because your code, rather than the model, executes these functions.

Default
Not specified
Constraints
maxItems:128
stopstring | arrayOptional

End an M3.1 Flash answer at a matching stop sequence, excluded from the returned text; use one string or at most four, each up to 32 characters.

Default
Not specified
Constraints
minLength:1
minItems:1
maxItems:4
reasoning_effortstringOptional

For M3.1 Flash, select low, medium, high, xhigh or default max; reasoning cannot be disabled and greater effort can consume more output tokens and time.

Default
"max"
Allowed values
"low""medium""high""xhigh""max"
max_tokensintegerOptional

Cap the combined thinking and visible answer for M3.1 Flash; default 4,096, maximum 524,288, and a reasoning-heavy turn can exhaust a small cap before returning prose.

Default
4096
Constraints
minimum:1
maximum:524288

Read the result

With stream set to false, the request returns the completed chat response directly. Read choices[].message; no task polling is needed. Set stream to true when your client supports Server-Sent Events.

Completed response example
{
  "id": "chatcmpl_example",
  "object": "chat.completion",
  "created": 1788652800,
  "model": "minimax/m3.1-flash/chat",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Here is a concise summary of the release notes."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 32,
    "completion_tokens": 14,
    "total_tokens": 46
  }
}

The response example is illustrative. usage reports token counts; token counts and charges depend on your actual request.

SDKs & integrations

Use SpicyAPI in your app, terminal, AI assistant or visual workflow. Choose a setup guide below.

Use it in SillyTavern and roleplay apps

In SillyTavern, RisuAI, Agnai or any app with an OpenAI-compatible setting, paste the base URL below and your API key, then pick minimax/m3.1-flash/chat as the model. Browser calls are allowed, and sliders this model does not take are ignored instead of rejected.

Base URL: https://api.spicyapi.ai/v1
Model: minimax/m3.1-flash/chat

Use it in ComfyUI

Install the SpicyAPI nodes from ComfyUI Manager or with the command below, then pick minimax/m3.1-flash/chat in the SpicyAPI Chat node to use this model inside a ComfyUI graph.

cd ComfyUI/custom_nodes
git clone https://github.com/spicyapi-ai/comfyui-spicyapi