MiniMax M3
by minimax · family minimax-m
Facts
| Release date | 2026-06-01 |
|---|---|
| Retired date | — |
| Knowledge cutoff | — |
| Context (max) | 1,000,000 |
| Max output | — |
| Modalities | text → text |
| Aliases | MiniMax-M3 |
| Open weights | no |
| Description | Controllable 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
| Provider | Wire ID | Variant | Endpoint | Protocol | Status | Price (USD / Mtok) | Reasoning |
|---|---|---|---|---|---|---|---|
| MiniMax | MiniMax-M3 | chat-completions | openai-chat | ga | 0.30 / 1.20 | toggle · default adaptive · returns reasoning_content · round-trips reasoning_content | |
| MiniMax Token Plan | MiniMax-M3 | anthropic | anthropic-messages | ga | — | toggle · default adaptive · returns reasoning_content · round-trips reasoning_content | |
| NVIDIA NIM API | minimaxai/minimax-m3 | v1-chat-completions | openai-chat | retired | — | effort · default on · mandatory · returns reasoning_content | |
| Ollama Cloud | minimax-m3 | v1-chat-completions | openai-chat | ga | — | effort · default on · returns hidden | |
| OpenCode Go | minimax-m3 | go-messages | anthropic-messages | ga | — | toggle · default adaptive · returns reasoning_content · round-trips reasoning_content | |
| OpenCode Zen | minimax-m3 | chat-completions | openai-chat | ga | 0.30 / 1.20 | toggle · default adaptive · returns reasoning_content · round-trips reasoning_content | |
| OpenRouter | minimax/minimax-m3 | chat-completions | openai-chat | ga | 0.30 / 1.20 | effort · 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_contentartifacts — 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_contentartifacts — 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_contentartifacts — 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_contentartifacts — 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_contentartifacts — pass them back unmodified on subsequent turns (dropping them triggers 400s or quality loss).