inference-providers

MiniMax M3

by minimax · family minimax-m

Facts

Release date2026-06-01
Retired date
Knowledge cutoff
Context (max)1,000,000
Max output
Modalitiestext → text
AliasesMiniMax-M3
Open weightsno
DescriptionControllable adaptive thinking; disabled skips thinking.

Unknown values are shown as —.

Intelligence Index v4.1.1: 45 · base · Source: Artificial Analysis (accessed 2026-08-20)

Offerings

ProviderWire IDVariantEndpointProtocolStatusPrice (USD / Mtok)Reasoning
MiniMaxMiniMax-M3chat-completionsopenai-chatga0.30 / 1.20toggle · default adaptive · returns reasoning_content · round-trips reasoning_content
MiniMax Token PlanMiniMax-M3anthropicanthropic-messagesgatoggle · default adaptive · returns reasoning_content · round-trips reasoning_content
NVIDIA NIM APIminimaxai/minimax-m3v1-chat-completionsopenai-chatretiredeffort · default on · mandatory · returns reasoning_content
Ollama Cloudminimax-m3v1-chat-completionsopenai-chatgaeffort · default on · returns hidden
OpenCode Gominimax-m3go-messagesanthropic-messagesgatoggle · default adaptive · returns reasoning_content · round-trips reasoning_content
OpenCode Zenminimax-m3chat-completionsopenai-chatga0.30 / 1.20toggle · default adaptive · returns reasoning_content · round-trips reasoning_content
OpenRouterminimax/minimax-m3chat-completionsopenai-chatga0.30 / 1.20effort · default on · returns reasoning_content · round-trips reasoning_content

Reasoning controls

MiniMax· MiniMax-M3· chat-completions toggle

thinking.type on adaptive · off disabled

toggle · default adaptive · returns reasoning_content · round-trips reasoning_content

MiniMax Token Plan· MiniMax-M3· anthropic toggle

thinking.type on adaptive · off disabled

toggle · default adaptive · returns reasoning_content · round-trips reasoning_content

NVIDIA NIM API· minimaxai/minimax-m3· v1-chat-completions effort

reasoning_effort lowmedium●highxhighmax Values follow upstream; NIM docs — verify.

effort · default on · mandatory · returns reasoning_content

Ollama Cloud· minimax-m3· v1-chat-completions effort

reasoning_effort nonelowmediumhigh●max Default level not documented; verify.

effort · default on · returns hidden

OpenCode Go· minimax-m3· go-messages toggle

thinking.type on adaptive · off disabled

toggle · default adaptive · returns reasoning_content · round-trips reasoning_content

OpenCode Zen· minimax-m3· chat-completions toggle

thinking.type on adaptive · off disabled

toggle · default adaptive · returns reasoning_content · round-trips reasoning_content

OpenRouter· minimax/minimax-m3· chat-completions effort

reasoning.effort nonelowmedium●highxhighmax

effort · default on · returns reasoning_content · round-trips reasoning_content

Example requests

MiniMax · openai-chat · MiniMax-M3

curl 'https://api.minimax.io/v1/chat/completions' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "MiniMax-M3",
  "messages": [
    {
      "role": "user",
      "content": "Tell me about the weather."
    }
  ],
  "thinking": {
    "type": "adaptive"
  }
}'
Python (requests)
import requests

resp = requests.post(
    "https://api.minimax.io/v1/chat/completions",
    headers={
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
    },
    json={
      "model": "MiniMax-M3",
      "messages": [
        {
          "role": "user",
          "content": "Tell me about the weather."
        }
      ],
      "thinking": {
        "type": "adaptive"
      }
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://api.minimax.io/v1/chat/completions", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "MiniMax-M3",
    "messages": [
      {
        "role": "user",
        "content": "Tell me about the weather."
      }
    ],
    "thinking": {
      "type": "adaptive"
    }
  }),
})
console.log(await resp.json())
  • ⚠ Responses include reasoning_content artifacts — pass them back unmodified on subsequent turns (dropping them triggers 400s or quality loss).

MiniMax Token Plan · anthropic-messages · MiniMax-M3

curl 'https://api.minimax.io/anthropic' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "MiniMax-M3",
  "max_tokens": 1024,
  "messages": [
    {
      "role": "user",
      "content": "Tell me about the weather."
    }
  ],
  "thinking": {
    "type": "adaptive"
  }
}'
Python (requests)
import requests

resp = requests.post(
    "https://api.minimax.io/anthropic",
    headers={
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
    },
    json={
      "model": "MiniMax-M3",
      "max_tokens": 1024,
      "messages": [
        {
          "role": "user",
          "content": "Tell me about the weather."
        }
      ],
      "thinking": {
        "type": "adaptive"
      }
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://api.minimax.io/anthropic", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "MiniMax-M3",
    "max_tokens": 1024,
    "messages": [
      {
        "role": "user",
        "content": "Tell me about the weather."
      }
    ],
    "thinking": {
      "type": "adaptive"
    }
  }),
})
console.log(await resp.json())
  • ⚠ Responses include reasoning_content artifacts — pass them back unmodified on subsequent turns (dropping them triggers 400s or quality loss).

NVIDIA NIM API · openai-chat · minimaxai/minimax-m3

curl 'https://integrate.api.nvidia.com/v1/chat/completions' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "minimaxai/minimax-m3",
  "messages": [
    {
      "role": "user",
      "content": "Tell me about the weather."
    }
  ],
  "reasoning_effort": "medium"
}'
Python (requests)
import requests

resp = requests.post(
    "https://integrate.api.nvidia.com/v1/chat/completions",
    headers={
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
    },
    json={
      "model": "minimaxai/minimax-m3",
      "messages": [
        {
          "role": "user",
          "content": "Tell me about the weather."
        }
      ],
      "reasoning_effort": "medium"
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://integrate.api.nvidia.com/v1/chat/completions", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "minimaxai/minimax-m3",
    "messages": [
      {
        "role": "user",
        "content": "Tell me about the weather."
      }
    ],
    "reasoning_effort": "medium"
  }),
})
console.log(await resp.json())

Ollama Cloud · openai-chat · minimax-m3

curl 'https://ollama.com/v1/chat/completions' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "minimax-m3",
  "messages": [
    {
      "role": "user",
      "content": "Tell me about the weather."
    }
  ],
  "reasoning_effort": "high"
}'
Python (requests)
import requests

resp = requests.post(
    "https://ollama.com/v1/chat/completions",
    headers={
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
    },
    json={
      "model": "minimax-m3",
      "messages": [
        {
          "role": "user",
          "content": "Tell me about the weather."
        }
      ],
      "reasoning_effort": "high"
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://ollama.com/v1/chat/completions", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "minimax-m3",
    "messages": [
      {
        "role": "user",
        "content": "Tell me about the weather."
      }
    ],
    "reasoning_effort": "high"
  }),
})
console.log(await resp.json())

OpenCode Go · anthropic-messages · minimax-m3

curl 'https://opencode.ai/zen/go/v1/messages' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "minimax-m3",
  "max_tokens": 1024,
  "messages": [
    {
      "role": "user",
      "content": "Tell me about the weather."
    }
  ],
  "thinking": {
    "type": "adaptive"
  }
}'
Python (requests)
import requests

resp = requests.post(
    "https://opencode.ai/zen/go/v1/messages",
    headers={
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
    },
    json={
      "model": "minimax-m3",
      "max_tokens": 1024,
      "messages": [
        {
          "role": "user",
          "content": "Tell me about the weather."
        }
      ],
      "thinking": {
        "type": "adaptive"
      }
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://opencode.ai/zen/go/v1/messages", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "minimax-m3",
    "max_tokens": 1024,
    "messages": [
      {
        "role": "user",
        "content": "Tell me about the weather."
      }
    ],
    "thinking": {
      "type": "adaptive"
    }
  }),
})
console.log(await resp.json())
  • ⚠ Responses include reasoning_content artifacts — pass them back unmodified on subsequent turns (dropping them triggers 400s or quality loss).

OpenCode Zen · openai-chat · minimax-m3

curl 'https://opencode.ai/zen/v1/chat/completions' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "minimax-m3",
  "messages": [
    {
      "role": "user",
      "content": "Tell me about the weather."
    }
  ],
  "thinking": {
    "type": "adaptive"
  }
}'
Python (requests)
import requests

resp = requests.post(
    "https://opencode.ai/zen/v1/chat/completions",
    headers={
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
    },
    json={
      "model": "minimax-m3",
      "messages": [
        {
          "role": "user",
          "content": "Tell me about the weather."
        }
      ],
      "thinking": {
        "type": "adaptive"
      }
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://opencode.ai/zen/v1/chat/completions", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "minimax-m3",
    "messages": [
      {
        "role": "user",
        "content": "Tell me about the weather."
      }
    ],
    "thinking": {
      "type": "adaptive"
    }
  }),
})
console.log(await resp.json())
  • ⚠ Responses include reasoning_content artifacts — pass them back unmodified on subsequent turns (dropping them triggers 400s or quality loss).

OpenRouter · openai-chat · minimax/minimax-m3

curl 'https://openrouter.ai/api/v1/chat/completions' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "minimax/minimax-m3",
  "messages": [
    {
      "role": "user",
      "content": "Tell me about the weather."
    }
  ],
  "reasoning": {
    "effort": "medium"
  }
}'
Python (requests)
import requests

resp = requests.post(
    "https://openrouter.ai/api/v1/chat/completions",
    headers={
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
    },
    json={
      "model": "minimax/minimax-m3",
      "messages": [
        {
          "role": "user",
          "content": "Tell me about the weather."
        }
      ],
      "reasoning": {
        "effort": "medium"
      }
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://openrouter.ai/api/v1/chat/completions", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "minimax/minimax-m3",
    "messages": [
      {
        "role": "user",
        "content": "Tell me about the weather."
      }
    ],
    "reasoning": {
      "effort": "medium"
    }
  }),
})
console.log(await resp.json())
  • ⚠ Responses include reasoning_content artifacts — pass them back unmodified on subsequent turns (dropping them triggers 400s or quality loss).