Browse documentationMiniMax H3 Turbo

MiniMax H3 Turbo API

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

ModeExact model IDRequired input
Text to videominimax/h3/text-to-video/turboprompt
Image to videominimax/h3/image-to-video/turboprompt, image_url; optional end_image_url
Reference to videominimax/h3/reference-to-video/turboprompt 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
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
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
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
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
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

ParameterValues
duration4–15 seconds; default 5
resolution_tier480p, 768p
aspect_ratio16:9, 4:3, 1:1, 3:4, 9:16
seedOptional integer
OutputMP4, 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

InputCurrent limit
Images onlyUp to 9 reference images
Images mixed with audio or videoUp to 5 reference images
Reference image dimensionsLongest edge ≤2048px; maximum aspect ratio 4:1 in either orientation
Reference videoUp to 3 files; combined duration ≤15.1s; frame rate ≤24 fps
Reference audioUp to 3 files; each ≤10s; requires a visual reference
Image uploadsJPEG, PNG, WebP; published default 20 MiB maximum per file
Video uploadsMP4, WebM, MOV
Audio uploadsMP3, 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. The request estimate and pricing page show the applicable rates. 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

SituationNext step
Invalid model or inputsCopy the exact model ID above and provide the inputs for that mode
Reference rejectedCheck counts, dimensions, duration, frame rate, file readability and URL access
Insufficient creditsReview the estimate and top up before submitting a new request
Still processingKeep the request ID and check its status; avoid duplicate submissions
Request failedRead 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.