Skip to main content

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-M3 and MiniMax-M3.1-Flash-Preview accept image_url parts. The M2.x models are text only.
  • Responses API. Converted to Chat Completions internally.
  • Image generation. image-01 through /v1/image_generation.
  • Video generation. MiniMax-H3 and MiniMax-H3-Max as async tasks through /v2/video_generation.
  • Text-to-speech. speech-2.8-hd, speech-2.8-turbo and older speech models through /v1/t2a_v2, streamed or not.
  • Speech-to-text. asr-1.0 through /v1/speech_to_text, with sentence or word timestamps, speaker labels, SRT/VTT output and streaming.

Supported operations

Setup and configuration

Bifrost calls https://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.
  1. Navigate to Models > Model Providers. Look for MiniMax under Configured Providers. If it is missing, click Add New Provider and select MiniMax.
  2. Click Add Key or edit an existing key.
  3. Set a name for your key.
  4. Paste your API key directly or use an environment variable (for example, env.MINIMAX_API_KEY).
  5. Set Allowed Models to All Models (default) or the specific models this key should serve.
  6. 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 sends reasoning_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 like thinking, service_tier or reasoning_split reach the API unchanged.

Errors

MiniMax sometimes returns HTTP 200 with a non-zero base_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

Set stream_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 field stream=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.