MiniMax API
Use the MiniMax API via direct curl calls for AI chat completion, text-to-speech, and video generation.
Official docs: https://platform.minimax.io/docs
When to Use
Use this skill when you need to:
Chat completion with Chinese-optimized LLM (MiniMax-M1/M2) Text-to-speech with natural voices and emotion control Video generation from text prompts (T2V) Image-to-video conversion (I2V) Prerequisites Sign up at MiniMax Platform Go to Account Management > API Keys to create an API key Note: Global users should use api.minimaxi.chat (with extra "i") export MINIMAX_API_KEY="your-api-key"
API Hosts Region Base URL China https://api.minimax.io Global https://api.minimaxi.chat
Important: When using $VAR in a command that pipes to another command, wrap the command containing $VAR in bash -c '...'. Due to a Claude Code bug, environment variables are silently cleared when pipes are used directly.
bash -c 'curl -s "https://api.example.com" -H "Authorization: Bearer $API_KEY"'
How to Use
All examples below assume you have MINIMAX_API_KEY set.
Authentication uses Bearer token in the Authorization header.
- Basic Chat Completion
Send a chat message:
Write to /tmp/minimax_request.json:
{ "model": "MiniMax-Text-01", "messages": [ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "Hello, who are you?"} ] }
Then run:
bash -c 'curl -s "https://api.minimax.io/v1/text/chatcompletion_v2" -X POST -H "Authorization: Bearer ${MINIMAX_API_KEY}" -H "Content-Type: application/json" -d @/tmp/minimax_request.json' | jq '.choices[0].message.content'
Available models:
MiniMax-M2: Reasoning model (best quality) MiniMax-M1: Reasoning model (balanced) MiniMax-Text-01: Standard model (fastest) 2. Chat with Temperature Control
Adjust creativity:
Write to /tmp/minimax_request.json:
{ "model": "MiniMax-Text-01", "messages": [ {"role": "user", "content": "Write a short poem about AI."} ], "temperature": 0.7, "max_tokens": 200 }
Then run:
bash -c 'curl -s "https://api.minimax.io/v1/text/chatcompletion_v2" -X POST -H "Authorization: Bearer ${MINIMAX_API_KEY}" -H "Content-Type: application/json" -d @/tmp/minimax_request.json' | jq '.choices[0].message.content'
Parameters:
temperature (0-1): Higher = more creative top_p (0-1, default 0.95): Sampling diversity max_tokens: Maximum output tokens 3. Streaming Response
Get real-time output:
Write to /tmp/minimax_request.json:
{ "model": "MiniMax-M1", "messages": [ {"role": "user", "content": "Explain quantum computing."} ], "stream": true }
Then run:
curl -s "https://api.minimax.io/v1/text/chatcompletion_v2" -X POST -H "Authorization: Bearer ${MINIMAX_API_KEY}" -H "Content-Type: application/json" -d @/tmp/minimax_request.json
Streaming is recommended for reasoning models (M1/M2).
- Reasoning Model (M1/M2)
Use reasoning models for complex tasks:
Write to /tmp/minimax_request.json:
{ "model": "MiniMax-M1", "messages": [ {"role": "user", "content": "Solve step by step: A train travels 120km in 2 hours. What is its average speed in m/s?"} ], "stream": true }
Then run:
curl -s "https://api.minimax.io/v1/text/chatcompletion_v2" -X POST -H "Authorization: Bearer ${MINIMAX_API_KEY}" -H "Content-Type: application/json" -d @/tmp/minimax_request.json
Response includes reasoning_content field with thought process.
- Text-to-Speech (Basic)
Convert text to speech:
Write to /tmp/minimax_request.json:
{ "model": "speech-02-hd", "text": "Hello, this is a test of MiniMax text to speech.", "voice_id": "male-qn-qingse", "speed": 1.0, "format": "mp3" }
Then run:
curl -s "https://api.minimax.io/v1/t2a_v2" -X POST -H "Authorization: Bearer ${MINIMAX_API_KEY}" -H "Content-Type: application/json" -d @/tmp/minimax_request.json --output speech.mp3
- TTS with Emotion
Add emotion to speech (speech-02 models):
Write to /tmp/minimax_request.json:
{ "model": "speech-02-hd", "text": "I am so happy to meet you today!", "voice_id": "female-shaonv", "emotion": "happy", "speed": 1.0, "format": "mp3" }
Then run:
curl -s "https://api.minimax.io/v1/t2a_v2" -X POST -H "Authorization: Bearer ${MINIMAX_API_KEY}" -H "Content-Type: application/json" -d @/tmp/minimax_request.json --output happy_speech.mp3
Emotion options: happy, sad, angry, fearful, disgusted, surprised, neutral
- TTS with Audio Settings
Fine-tune audio output:
Write to /tmp/minimax_request.json:
{ "model": "speech-02-hd", "text": "High quality audio test.", "voice_id": "male-qn-qingse", "speed": 1.0, "vol": 1.0, "pitch": 0, "audio_sample_rate": 32000, "bitrate": 128000, "format": "mp3" }
Then run:
curl -s "https://api.minimax.io/v1/t2a_v2" -X POST -H "Authorization: Bearer ${MINIMAX_API_KEY}" -H "Content-Type: application/json" -d @/tmp/minimax_request.json --output hq_speech.mp3
TTS models:
speech-02-hd: High definition (best quality) speech-02-turbo: Fast generation speech-01-hd: Previous gen HD speech-01-turbo: Previous gen fast 8. Text-to-Video (T2V)
Generate video from text prompt:
Write to /tmp/minimax_request.json:
{ "model": "T2V-01-Director", "prompt": "A cat playing with a ball of yarn [Static shot].", "duration": 6, "resolution": "1080P" }
Then run:
bash -c 'curl -s "https://api.minimax.io/v1/video_generation" -X POST -H "Authorization: Bearer ${MINIMAX_API_KEY}" -H "Content-Type: application/json" -d @/tmp/minimax_request.json' | jq '.task_id'
Video generation is async - returns a task ID to poll for completion.
- T2V with Camera Control
Control camera movement in videos:
Write to /tmp/minimax_request.json:
{ "model": "MiniMax-Hailuo-2.3", "prompt": "A person walking through a forest [Tracking shot], then stops to look at a bird [Push in].", "duration": 6, "resolution": "1080P" }
Then run:
bash -c 'curl -s "https://api.minimax.io/v1/video_generation" -X POST -H "Authorization: Bearer ${MINIMAX_API_KEY}" -H "Content-Type: application/json" -d @/tmp/minimax_request.json' | jq '.task_id'
Camera commands (in brackets):
Movement: Truck left/right, Pan left/right, Push in/Pull out Vertical: Pedestal up/down, Tilt up/down Zoom: Zoom in/out Special: Shake, Tracking shot, Static shot
Combine with [Pan left, Pedestal up] (max 3 simultaneous).
- Image-to-Video (I2V)
Generate video from an image:
Note: For I2V, use MiniMax-Hailuo-2.3 or S2V-01 model which supports first_frame_image. The T2V-01-Director model is text-to-video only.
Write to /tmp/minimax_request.json:
{ "model": "MiniMax-Hailuo-2.3", "prompt": "The scene comes to life with gentle movement [Static shot].", "first_frame_image": "https://example.com/image.jpg", "duration": 6, "resolution": "1080P" }
Then run:
bash -c 'curl -s "https://api.minimax.io/v1/video_generation" -X POST -H "Authorization: Bearer ${MINIMAX_API_KEY}" -H "Content-Type: application/json" -d @/tmp/minimax_request.json' | jq '.task_id'
Provide first_frame_image as URL or base64-encoded image.
- Function Calling (Tools)
Use tools with chat:
Write to /tmp/minimax_request.json:
{ "model": "MiniMax-Text-01", "messages": [ {"role": "user", "content": "What is the weather in Beijing?"} ], "tools": [ { "type": "function", "function": { "name": "get_weather", "description": "Get weather for a location", "parameters": { "type": "object", "properties": { "location": {"type": "string", "description": "City name"} }, "required": ["location"] } } } ], "tool_choice": "auto" }
Then run:
bash -c 'curl -s "https://api.minimax.io/v1/text/chatcompletion_v2" -X POST -H "Authorization: Bearer ${MINIMAX_API_KEY}" -H "Content-Type: application/json" -d @/tmp/minimax_request.json' | jq '.choices[0]'
Response Format Chat Completion { "id": "string", "choices": [{ "message": { "role": "assistant", "content": "Response text", "reasoning_content": "Thought process (M1/M2 only)" }, "finish_reason": "stop" }], "usage": { "prompt_tokens": 10, "completion_tokens": 50, "total_tokens": 60 } }
Guidelines Use correct host: China uses api.minimax.io, global uses api.minimaxi.chat Streaming for reasoning: M1/M2 models work best with stream: true Camera syntax: Video commands go in [brackets] within prompts Emotion in TTS: Only works with speech-02- and speech-01- models Async video: Video generation returns task ID - poll for completion Chinese optimized: MiniMax excels at Chinese language tasks