Overview
MiniMax is an OpenAI-compatible provider with its own Bifrost implementation. Chat goes through the shared OpenAI converters. Image and video generation use MiniMax’s native endpoints, which Bifrost maps to the standard image and video APIs. Key characteristics:- OpenAI-compatible chat. Chat Completions use
/v1/chat/completions. - Reasoning. Bifrost asks MiniMax to split thinking into
reasoning_content, so it never shows up as<think>tags inside the answer. - Tool calling. Function tools use the OpenAI-compatible schema.
- Vision.
MiniMax-M3andMiniMax-M3.1-Flash-Previewacceptimage_urlparts. The M2.x models are text only. - Responses API. Converted to Chat Completions internally.
- Image generation.
image-01through/v1/image_generation. - Video generation.
MiniMax-H3andMiniMax-H3-Maxas async tasks through/v2/video_generation. - Text-to-speech.
speech-2.8-hd,speech-2.8-turboand older speech models through/v1/t2a_v2, streamed or not. - Speech-to-text.
asr-1.0through/v1/speech_to_text, with sentence or word timestamps, speaker labels, SRT/VTT output and streaming.
Supported operations
Setup and configuration
Bifrost callshttps://api.minimax.io by default. Both pay-as-you-go API keys and M Plan subscription keys work, since MiniMax sends both as a bearer token. For the mainland China platform, set network_config.base_url to https://api.minimaxi.com.
- Web UI
- config.json
- API
- Go SDK
- Navigate to Models > Model Providers. Look for MiniMax under Configured Providers. If it is missing, click Add New Provider and select MiniMax.
- Click Add Key or edit an existing key.
- Set a name for your key.
- Paste your API key directly or use an environment variable (for example,
env.MINIMAX_API_KEY). - Set Allowed Models to All Models (default) or the specific models this key should serve.
- Save the provider configuration.
1. Chat Completions
Request parameters
MiniMax supports the OpenAI chat parameters it documents:max_completion_tokens, temperature (0 to 2), top_p, tools, stream, stream_options and service_tier. For the full parameter reference, see OpenAI Chat Completions.
Current text models are MiniMax-M3, MiniMax-M3.1-Flash-Preview (M Plan only), MiniMax-M2.7, MiniMax-M2.5 and MiniMax-M2.1, plus -highspeed variants of the M2.x models. MiniMax closes M2.5 and M2.7 to new users on October 19, 2026 and retires them on November 18, 2026.
Reasoning
Bifrost sendsreasoning_split: true on every chat request, so MiniMax returns its thinking in reasoning_content and Bifrost exposes it as the message’s reasoning. If you set reasoning_split yourself through extra params, Bifrost leaves it alone.
reasoning_effort maps to MiniMax’s own values, with two adjustments:
The M2.x models ignore
thinking.type: disabled, so they keep thinking either way.
Extra parameters
Extra parameters pass through, so MiniMax-only fields likethinking, service_tier or reasoning_split reach the API unchanged.
Errors
MiniMax sometimes returns HTTP 200 with a non-zerobase_resp.status_code. Bifrost turns those into errors with a matching HTTP status. For example, 1002 becomes 429, 1004 becomes 401, 1008 (insufficient balance) becomes 402, and 1026/1027 (sensitive content) become 400.
2. Responses API
Bifrost converts Responses API requests to Chat Completions and converts the result back. Streaming Responses requests go through Chat Completions streaming the same way.3. List Models
Lists models from MiniMax’s OpenAI-compatible/v1/models.
4. Image Generation
image-01 generates up to 9 images per request.
If content safety blocks every image, the request fails with a 400 instead of returning an empty list.
5. Video Generation
MiniMax video generation is asynchronous. Create a task, poll it, then download the result.Parameter mapping
Without a
size, text to video uses 16:9 (MiniMax needs a concrete ratio there) and image to video uses adaptive. video_uri and video list aren’t supported.
6. Speech (TTS)
voice is a MiniMax voice_id, such as English_Graceful_Lady, English_Insightful_Speaker or English_Persuasive_Man, or a cloned or designed voice. See MiniMax’s system voice list for the rest. MiniMax reports an unknown voice as an HTTP 200 with error code 2054 (voice id not exist), and Bifrost returns it as a 400.
Any other extra params, such as
pronunciation_dict or voice_modify, are sent to MiniMax unchanged. Usage reports MiniMax’s usage_characters.
Streaming
Setstream_format: "sse" on /v1/audio/speech to stream. MiniMax returns hex-encoded audio chunks, which Bifrost decodes into speech.audio.delta events, followed by a speech.audio.done event carrying usage. Bifrost asks MiniMax not to repeat the whole clip in its final chunk (exclude_aggregated_audio), so each audio byte arrives once.
7. Transcriptions (STT)
With
verbose_json, sentence-level timestamps come back as segments. Word-level timestamps come back as words, with MiniMax’s speaker label (S1, S2, and so on) on each word. Usage is reported as seconds of audio.
Streaming
Send the form fieldstream=true to stream. Each MiniMax event becomes a transcript.text.delta, and the final event becomes transcript.text.done with the full text and the audio duration. MiniMax only streams the json format, so streaming with verbose_json, srt or vtt fails with a 400.
