MiniMax H3 Turbo API
For dialogue, silence, reference roles, voices, camera planning and enhancement, read the H3 prompt guide.
Generate video with MiniMax H3 Turbo. This guide covers only these three models. MiniMax H3 has a separate guide.
Base URL: https://phosor.ai/api/v1
Authentication: X-API-Key: $PHOSOR_API_KEY
Workflow: submit → keep request_id → check status → retrieve result.
Choose an input mode
| Mode | Exact model ID | Required input |
|---|---|---|
| Text to video | minimax/h3/text-to-video/turbo | prompt |
| Image to video | minimax/h3/image-to-video/turbo | prompt, image_url; optional end_image_url |
| Reference to video | minimax/h3/reference-to-video/turbo | prompt and at least one reference image or video |
1. Submit a video
Create an API key, add credits and review pricing. Store your key on your server. The examples below create paid requests; run only the mode you want. Replace example media URLs with accessible URLs returned by image upload or image import.
Text to video
curl --fail-with-body https://phosor.ai/api/v1/inference/submit \
-H "X-API-Key: $PHOSOR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "minimax/h3/text-to-video/turbo",
"prompt": "A small original orange AI robot sits beside a young woman at a desk in warm evening light. She smiles and asks in Mandarin: 你今天过得怎么样? The robot replies in a calm boyish voice: 现在挺好的。 Keep each line with its speaker. No subtitles or logos.",
"duration": 5,
"resolution_tier": "480p",
"aspect_ratio": "16:9"
}'Image to video
curl --fail-with-body https://phosor.ai/api/v1/inference/submit \
-H "X-API-Key: $PHOSOR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "minimax/h3/image-to-video/turbo",
"image_url": "https://your-public-host.example/start.jpg",
"prompt": "The subject turns gently toward the camera. Preserve the subject and composition from the starting image. Slow camera push-in.",
"duration": 5,
"resolution_tier": "480p",
"aspect_ratio": "16:9"
}'An optional end_image_url supplies an ending frame.
Reference to video
curl --fail-with-body https://phosor.ai/api/v1/inference/submit \
-H "X-API-Key: $PHOSOR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "minimax/h3/reference-to-video/turbo",
"reference_image_urls": ["https://your-public-host.example/person.jpg", "https://your-public-host.example/place.jpg"],
"prompt": "The person in <Picture 1> walks through the location in <Picture 2>. Keep the person identity and clothing consistent. A slow tracking shot follows from the side.",
"duration": 5,
"resolution_tier": "480p",
"aspect_ratio": "16:9"
}'Use reference_video_urls and reference_audio_urls for video and audio references. Address them in the prompt as <Video 1> and <Audio 1>. Number each media type separately, starting at 1 and matching array order. Audio alone is not a valid reference-to-video request.
An accepted response returns request_id. A network timeout does not prove the request was rejected: check request history before creating a duplicate paid request.
2. Check status and retrieve the video
Set REQUEST_ID to the value returned by submission; use the same owning account's API key.
curl --fail-with-body "https://phosor.ai/api/v1/inference/status/$REQUEST_ID" \
-H "X-API-Key: $PHOSOR_API_KEY"When status is completed, retrieve the result:
curl --fail-with-body "https://phosor.ai/api/v1/inference/result/$REQUEST_ID" \
-H "X-API-Key: $PHOSOR_API_KEY"The video URL is in data.video.url. Follow the full status contract and result contract for errors and response fields. Keep checking the original request; do not resubmit just because it is still processing.
Output settings
| Parameter | Values |
|---|---|
duration | 4–15 seconds; default 5 |
resolution_tier | 480p, 768p |
aspect_ratio | 16:9, 4:3, 1:1, 3:4, 9:16 |
seed | Optional integer |
| Output | MP4, fixed 24 fps, native audio generation |
Set duration, resolution_tier and aspect_ratio explicitly. Do not copy Wan sampling, quality or frame-rate settings into an H3 request. H3 does not support negative_prompt.
Reference limits and file formats
| Input | Current limit |
|---|---|
| Images only | Up to 9 reference images |
| Images mixed with audio or video | Up to 5 reference images |
| Reference image dimensions | Longest edge ≤2048px; maximum aspect ratio 4:1 in either orientation |
| Reference video | Up to 3 files; combined duration ≤15.1s; frame rate ≤24 fps |
| Reference audio | Up to 3 files; each ≤10s; requires a visual reference |
| Image uploads | JPEG, PNG, WebP; published default 20 MiB maximum per file |
| Video uploads | MP4, WebM, MOV |
| Audio uploads | MP3, WAV, OGG, M4A, AAC, FLAC |
These are per-type limits, not a promise that every maximum can be combined. File codecs must be readable. Current limits are published by GET /api/v1/pricing/config; use minimax_h3_ref2va_turbo_limits. See full video limits and upload requirements.
Billing and expected time
Output is billed per video second at the selected tier. Reference-to-video also has reference input charges. See the price reference, request estimate and pricing page. Reference videos are billed by their actual combined duration, without capping it at output duration; the first five images and reference audio are free. Task details retain the quantities used at submission. Do not use per-frame Wan rates to estimate H3 charges.
For measured examples with GPU time separated from end-to-end time, see H3 performance and capabilities. Queueing, model loading, inputs and transfer affect completion time.
Troubleshooting
| Situation | Next step |
|---|---|
| Invalid model or inputs | Copy the exact model ID above and provide the inputs for that mode |
| Reference rejected | Check counts, dimensions, duration, frame rate, file readability and URL access |
| Insufficient credits | Review the estimate and top up before submitting a new request |
| Still processing | Keep the request ID and check its status; avoid duplicate submissions |
| Request failed | Read the returned error and inspect history before retrying |
For the shared HTTP error format and authentication details, see common API contract. The all-model submit reference is for cross-model integration.