Loading model…正在加载模型详情…
Loading model…正在加载模型详情…
Turn a written scene into video with MiniMax H3, also called Hailuo 03, which MiniMax describes as built to follow detailed creative direction.
Your result appears here
MiniMax H3, also known as Hailuo 03, is a video generation model from MiniMax. MiniMax describes its strengths as following instructions for characters, action, camera movement and shot structure within a scene.
UniRoute offers the text-to-video variant. Write a prompt, choose a resolution and duration option, and review the quote before creating a video task.
MiniMax H3 continues the Hailuo model line alongside earlier versions such as Hailuo 2.3. MiniMax describes H3 as a unified system for video creation; this page lists the text-to-video options you can use on UniRoute.
What you can do with MiniMax H3 through UniRoute today.
Describe the setting, characters, actions and camera direction in a prompt, then choose a resolution and duration to generate the scene.
Other MiniMax H3 modes (image-to-video and reference-to-video with image, video or audio inputs) aren’t available on UniRoute yet.
The variants you can call, with their options and prices.
| Variant | Model ID | Modes | Inputs | Output | Price |
|---|---|---|---|---|---|
| MiniMax H3 Text to Video | minimax-h3/text-to-video | Text to video | Text prompt and a size option | Resolution: 768P, 2K; Duration: 5s, 10s | $0.25 to $0.81 per request |
Priced per request. The option you choose sets the price.
| MiniMax H3 Text to Video | |
|---|---|
| 768P · 5s | $0.25 |
| 768P · 10s | $0.50 |
| 2K · 5s | $0.41 |
| 2K · 10s | $0.81 |
Rounded to the cent; the live quote in the workspace shows the exact amount. Prices updated 2026-11-08.
Pay as you go from a single USD wallet balance. You see the quote before each request.
Call MiniMax H3 from your own code with the media API.
# Requires bash, curl and jq. Set API_KEY to your own unified UniRoute Key.set -euo pipefail: "${API_KEY:?Set API_KEY first}"BASE='https://api.uniroute.app/v1/media'MODEL='minimax-h3/text-to-video'OPTION='768P:5'PROMPT='A calm sunrise over a mountain lake'curl -fsS --max-time 60 "$BASE/catalog" -H "Authorization: Bearer $API_KEY" | jq -e '.data.models'BODY=$(jq -n --arg model "$MODEL" --arg option "$OPTION" --arg prompt "$PROMPT" '{model:$model,option:$option,prompt:$prompt}')QUOTE_BODY=$(printf '%s' "$BODY" | jq '{model,option}')QUOTE=$(curl -fsS --max-time 60 "$BASE/quote" -H "Authorization: Bearer $API_KEY" -H 'Content-Type: application/json' -d "$QUOTE_BODY")CAP=$(printf '%s' "$QUOTE" | jq -er '.data.quoted_usd')BODY=$(printf '%s' "$BODY" | jq --arg cap "$CAP" '. + {max_cost_usd:$cap}')IDEMPOTENCY="example-$(date +%s)-$$"create() { curl -fsS --max-time 60 "$BASE/tasks" -H "Authorization: Bearer $API_KEY" -H "Idempotency-Key: $IDEMPOTENCY" -H 'Content-Type: application/json' -d "$BODY"; }TASK_ID=$(create | jq -er '.data.task_id')# The same request and idempotency key must return the original task without charging again.REPLAY_ID=$(create | jq -er '.data.task_id')[ "$TASK_ID" = "$REPLAY_ID" ]for attempt in $(seq 1 120); do TASK=$(curl -fsS --max-time 60 "$BASE/tasks/$TASK_ID" -H "Authorization: Bearer $API_KEY") printf '%s' "$TASK" | jq -e '.data | {task_id,status,billing}' if printf '%s' "$TASK" | jq -e '.data.status == "success" and .data.billing.state == "charged"' >/dev/null; then index=0 while IFS= read -r url; do index=$((index+1)) curl -fL --max-time 120 "$url" -o "$TASK_ID-$index.bin" done < <(printf '%s' "$TASK" | jq -er '.data.urls[].url') break fi if printf '%s' "$TASK" | jq -e '.data.status == "failed" and .data.billing.state == "released"' >/dev/null; then exit 1; fi if [ "$attempt" = 120 ]; then echo "Polling limit reached. Keep task ID $TASK_ID and query it later; do not create a new task." >&2 exit 1 fi sleep 5donecurl -fsS --max-time 60 "$BASE/tasks?limit=20" -H "Authorization: Bearer $API_KEY" | jq -e '.data'# Check this task and the caller Key in Console usage; billing.charged_usd is the actual USD charge.| Name | In | Description |
|---|---|---|
model | Body | Model ID to run. |
option | Body | One of the options offered for the model: 768P:5, 768P:10, 2K:5, 2K:10. |
prompt | Body | Text prompt describing what to generate. |
max_cost_usd | Body | Maximum cost in USD for this task, taken from the quote. |
Idempotency-Key | Header | A unique key per task, so a repeated request returns the original task instead of charging again. |
Typical ways to put MiniMax H3 to work.
Explore a scene from a written shot description, refining the action, composition and camera movement before production.
Turn a creative brief into a moving concept for a product reveal, advertisement or social post.
Describe a character, setting and visual treatment to compare different directions for an animated short or cinematic scene.
Use the media API to generate clips from text, with a quote before each request and task status polling until the result is ready.
Common questions about MiniMax H3.
MiniMax H3 is MiniMax’s video generation model, also called Hailuo 03. On UniRoute you can use its text-to-video variant in the browser or through the media API.
The available variant takes a text prompt and a resolution and duration option. Describe your scene in the prompt; the specs and API sections list the settings you can choose.
From $0.25 / clip. Each request is priced for the whole clip at the output option you choose. See the Pricing section for every option, with prices updated 2026-11-08.
Describe the subject, setting, action and camera movement. MiniMax’s description also emphasizes shot structure and visual style, so make those directions explicit when they matter to your scene.
Request a quote for the model and option, create a media task with an Idempotency-Key and a maximum cost, then poll until the video is ready. The API section shows a complete example.
No. Generation is paid from your wallet balance. You can open the workspace and review the price without paying, create an account to see a live quote for your exact settings, and you are charged only for requests that are accepted.