MiniMax H3 API

MiniMax Hailuo H3 with native 768p and 2K output, 4–15 s, first/last frame.

MiniMax·VideoAvailable

from$0.036/ second$0.0410% off

Model IDminimax-h3

text-to-videoimage-to-video2k

Input

Text · Image

Output

Video

Provider

7 providers

Duration (s)

5 – 15

Resolution

768p · 2k

Aspect ratio

16:9 · 9:16 · 1:1 · 4:3 · 3:4 · 21:9

Last 7 days · not enough recent requests for stats yet.

MiniMax H3 pricing

Prices are per unit; requests without a provider are routed to the cheapest provider that supports your parameters.

Option768p2k
All options
$0.054 / second
6 Credits
$0.117 / second
12 Credits

Try MiniMax H3 before you integrate

Test output quality, compare provider prices and estimate cost before writing any code.

Provider
Video
Estimated cost

Input

prompt
image_url
end_image_url
duration
resolution
aspect_ratio

Result

Idle
Your generation will appear here.

Provider prices for this request

Enter a prompt to compare provider prices.

MiniMax H3 prompt examples

Ready-to-use prompts. Load one into the playground and tweak it.

Source
Scene

10 prompts

A young woman in a long pale coat walks toward a small stone chapel on a windswept cliff above the ocean. The opening frame is a cinematic long-lens medium-wide shot with tall coastal grass softly blurred in the foreground. She is illuminated by a break in the clouds while the chapel and dark ocean remain slightly subdued behind her. She stops halfway along the path when the chapel bell rings once. A man appears briefly in the doorway, then steps back into darkness. The camera slowly tracks through the foreground grass, keeping her centered in the moving composition, then gently pushes toward the chapel. Poetic romantic mystery, dramatic coastal light, strong depth separation, natural wind, restrained acting, cinematic European drama aesthetic.

Speeder chase across a cliff city (single continuous shot) From a monumental cliffside city carved into stone, the camera dives toward a tiny streak of light ripping along a narrow ledge-road. Lock-on: a speeder hugging the wall at insane speed. The camera slingshots ahead, whips back, then drops tight to the rear thrusters: heat haze, grit snapping off the ledge, warning lights flashing. A collapsing balcony rains debris; the rider snaps a last-inch swerve under a falling arch, then threads through hanging laundry lines and open windows in one fluid line. The camera darts through the same openings, staying glued to the motion. One final bend and sudden calm: the camera blasts outward into a reveal of the city opening onto a boundless waterfall-fed valley, mist turning into rainbow.

Two adult fantasy warriors in a stylized choreographed duel on a rain-slicked rooftop at night. One channels crackling blue-white energy, the other radiant orange light. They close the distance at high speed, exchanging blocks, parries, and glancing sweeps of glowing energy blades, then meet in a mid-air clash that bursts into colored sparks, light trails, and scattering rain. Sweeping camera, dramatic close-ups on hands and faces, exaggerated stylized motion, vibrant rim lighting, high contrast, ending on a heroic standoff pose. Non-violent stylized action, no blood, no injury, no gore, no weapons contact with bodies. Original character designs.

A high-energy anime fight scene between two original warriors on a rain-soaked rooftop at night. One fighter glows with electric blue energy, the other with fiery red-orange power. They dash toward each other at extreme speed, exchange precise punches and sword strikes, then collide in a massive mid-air impact that sends colorful sparks, energy trails and shattered debris across the scene. Dynamic sweeping camera movement, dramatic close-ups, exaggerated anime motion, detailed character animation, vibrant lighting, strong contrast and a powerful cinematic final pose. No dialogue or text.

MiniMax H3 API reference

Endpoints, request fields and runnable examples for this model.

Base URL

https://01router.com/api/v1
llms.txt

Quick start

Set API_KEY to your project key, then run a sample from your server. Replace example media URLs with your own public URLs.

Auto-routing chooses a provider that supports the request. Select a provider to see its input constraints and pinned request examples.

curl https://01router.com/api/v1/generations \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  --data-binary @- <<'JSON'
{
  "model": "minimax-h3",
  "input": {
    "prompt": "A cinematic shot of a red fox running through snow",
    "duration": 5,
    "resolution": "768p",
    "aspect_ratio": "16:9"
  }
}
JSON

# Replace GENERATION_ID with the id returned above; poll until status is "succeeded" or "failed"
curl https://01router.com/api/v1/generations/GENERATION_ID -H "Authorization: Bearer $API_KEY"

Endpoints

Only endpoints relevant to this model are listed. Paths below include /api/v1. Click an endpoint to read its usage.

Authentication

Send your API key as a Bearer token. Requests are billed to the key owner's credits.

Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Get an API key

Input

Send JSON with Content-Type: application/json. Model parameters belong inside input; model, provider and callback_url are top-level fields.

Request body

NameTypeRequiredDescription
modelstringYes"minimax-h3"
providerstringNoPin a provider; omit to auto-route to the cheapest. One of: fal | 01router | replicate | wavespeed | kie | apimart | vercel
inputobjectYesModel parameters, see the input fields below.
callback_urlstringNoOptional public HTTPS webhook URL. The final task result is signed and delivered here; polling remains available.

input · input fields

Required fields are marked explicitly. Other fields use the listed defaults when omitted.

NameTypeRequiredValuesDefault
prompt*stringYes——
image_url
Optional start image (image-to-video)
stringNo——
end_image_urlstringNo——
durationintegerNomin: 5 · max: 155
resolutionstringNo768p | 2k768p
aspect_ratiostringNo16:9 | 9:16 | 1:1 | 4:3 | 3:4 | 21:916:9
Callbacks →

Output

Creating a task does not mean generation has finished. Keep its id, poll until succeeded or failed, then read outputs or error. Amounts below are illustrative; actual charges depend on the request.

queued→processing→succeeded / failed

Task submitted

{
  "id": "gen_example",
  "object": "generation",
  "model": "minimax-h3",
  "type": "video",
  "provider": "fal",
  "status": "processing",
  "input": {
    "prompt": "A cinematic shot of a red fox running through snow",
    "duration": 5,
    "resolution": "768p",
    "aspect_ratio": "16:9"
  },
  "outputs": [],
  "error": null,
  "credits": 0,
  "price_usd": 0,
  "created_at": "2026-10-25T08:00:00.000Z",
  "completed_at": null
}

Task completed

{
  "id": "gen_example",
  "object": "generation",
  "model": "minimax-h3",
  "type": "video",
  "provider": "fal",
  "status": "succeeded",
  "input": {
    "prompt": "A cinematic shot of a red fox running through snow",
    "duration": 5,
    "resolution": "768p",
    "aspect_ratio": "16:9"
  },
  "outputs": [
    "https://example.com/output.mp4"
  ],
  "error": null,
  "credits": 0,
  "price_usd": 0,
  "created_at": "2026-10-25T08:00:00.000Z",
  "completed_at": "2026-10-25T08:01:00.000Z"
}

Response fields

NameTypeRequiredDescription
idstringYesGeneration ID. Use it to query or cancel this task.
objectstringYesgeneration
modelstringYesminimax-h3
typestringYesvideo
providerstringYesProvider
statusstringYesqueued → processing → succeeded / failed. Stop polling at either terminal state.
inputobjectYesModel parameters, see the input fields below.
outputsstring[]YesResult URLs. Empty while processing; read after succeeded and save the files promptly.
errorstring | nullYesFailure reason, or null when no failure is reported.
creditsnumberYesCredits charged for this request.
price_usdnumberYesRequest price in USD.
created_atstringYesCreation time in ISO 8601 format.
completed_atstring | nullYesCompletion time in ISO 8601 format; null before completion.

Get the result

Poll every few seconds until status is succeeded or failed. Output URLs are provider-hosted and may expire — download them promptly. Or pass callback_url to get the result pushed.

curl "https://01router.com/api/v1/generations/GENERATION_ID" \
  -H "Authorization: Bearer $API_KEY"

queued → processing → succeeded / failed. Stop polling at either terminal state. Result URLs. Empty while processing; read after succeeded and save the files promptly.

Cancel a task

Cancellation depends on provider support and task state. A confirmed cancellation returns status: failed and error: Canceled by user. Unsupported or completed tasks return 409 not_cancelable.

curl -X POST "https://01router.com/api/v1/generations/GENERATION_ID/cancel" \
  -H "Authorization: Bearer $API_KEY"

Quote

Same body as creating a generation. Returns every available provider sorted by price, plus the ones that cannot serve the request and why.

curl "https://01router.com/api/v1/quote" -H "Content-Type: application/json" --data-binary @- <<'JSON'
{
  "model": "minimax-h3",
  "input": {
    "prompt": "A cinematic shot of a red fox running through snow",
    "duration": 5,
    "resolution": "768p",
    "aspect_ratio": "16:9"
  }
}
JSON

Model schema

This public endpoint returns the model parameters and each provider’s supported constraints and prices.

curl "https://01router.com/api/v1/models/minimax-h3"

Errors

Check the HTTP status and error.message. Fix the request before retrying validation or authentication errors. A failed generation is reported in status and error on the task itself.

{
  "error": {
    "message": "Invalid or missing API key",
    "code": "unauthorized"
  }
}

400Invalid body or parameter value

401Missing or invalid API key

402Not enough credits

404Unknown model or generation

409The task cannot be canceled (already finished, or the provider does not support canceling)

429Too many requests — retry after the given seconds

502Every provider rejected the task (credits refunded)

Auth, routing, billing and error codes are covered in →

Use with AI

Give your coding assistant this model reference: endpoints, input constraints, output fields and request examples in plain text.

Open llms.txt

How does MiniMax H3 compare?

Specs and starting prices side by side. Test with the same prompt before you choose.

MiniMax H3MiniMax H3 MaxGrok Imagine Video 1.5Seedance 2.5
VendorMiniMaxMiniMaxxAIByteDance
Starting price$0.036 / second$0.029 / second$0.011 / second$0.086 / second
InputText · ImageText · ImageText · ImageText · Image
Provider7 providers6 providers10 providers9 providers
Duration (s)5 – 155 – 151 – 154 – 30
Resolution768p · 2k480p · 768p · 1080p480p · 720p · 1080p480p · 720p · 1080p
Aspect ratio16:9 · 9:16 · 1:1 · 4:3 · 3:4 · 21:916:9 · 9:16 · 1:1 · 4:3 · 3:4 · 21:916:9 · 4:3 · 3:2 · 1:1 · 2:3 · 3:4 · 9:1616:9 · 9:16 · 1:1 · 4:3 · 3:4 · 21:9

MiniMax H3 API FAQ

Is MiniMax H3 the same as Hailuo 03?

Yes, MiniMax H3 is also known as Hailuo 03. It focuses on native audio, multi-shot storytelling and sharp 2K output.

Which resolutions are available?

768p and 2K. Use 768p for drafts and 2K for final renders.

What durations and inputs are supported?

5 to 15 seconds from text, a first-frame image, or first and last frames (image_url and end_image_url).

How does it differ from H3 Max?

H3 offers 2K output and richer storytelling, but renders slower (often one to three minutes). H3 Max is much faster and tops out at 1080p.

How is it billed on 01router?

Per output second; 2K costs more than 768p. See the pricing table. Failed generations are refunded.

Related models

Other models you can call with the same API key.