Skip to main content

Create H3/H3-Max Video

POST /v2/video_generation

Authenticate with a platform Bearer model API key. Put parameters directly in the JSON body. See the integration guide for authentication, media rules, and billing.

Request parameters​

ParameterTypeRequiredDescription
modelstringYesCase-sensitive MiniMax-H3 or MiniMax-H3-Max
contentarray<object>YesAt least one non-empty text item, optionally with frames or reference media
resolutionstringRequired for H3H3: 768P / 2K; Max: 480P / 768P, defaults to 768P when omitted, null, or empty
durationintegerYesH3: 4–15 seconds; Max: 5–15 seconds
ratiostringRequired for text-only21:9 / 16:9 / 4:3 / 1:1 / 3:4 / 9:16 / adaptive; text-only cannot use adaptive
callback_urlstringNoCustomer terminal notification URL; implement callback verification first; omit when polling only

See media input rules for content types, media URL objects, roles, and combinations. Native extension fields are retained for submission, but upstream acceptance depends on the model; retained fields are not a guarantee of supported capabilities.

H3 text-only example​

{
"model": "MiniMax-H3",
"resolution": "768P",
"duration": 4,
"ratio": "16:9",
"content": [
{"type": "text", "text": "A kitten stretches in the sunshine as the camera slowly moves closer"}
]
}

H3-Max first-frame example​

Replace the image URL with an actual upstream-accessible asset. Omitting resolution submits at 768P.

{
"model": "MiniMax-H3-Max",
"duration": 5,
"ratio": "16:9",
"content": [
{"type": "text", "text": "Preserve the person's appearance as they slowly turn toward the camera"},
{"type": "image_url", "role": "first_frame", "image_url": {"url": "https://example.com/first-frame.png"}}
]
}

H3 multimodal reference example​

Do not mix reference media with first_frame / last_frame. Replace all example asset URLs.

{
"model": "MiniMax-H3",
"resolution": "2K",
"duration": 6,
"ratio": "16:9",
"content": [
{"type": "text", "text": "Use the image subject, video motion, and audio atmosphere as references for a short film"},
{"type": "image_url", "role": "reference_image", "image_url": {"url": "https://example.com/reference.png"}},
{"type": "video_url", "role": "reference_video", "video_url": {"url": "https://example.com/reference.mp4"}},
{"type": "audio_url", "role": "reference_audio", "audio_url": {"url": "https://example.com/reference.mp3"}}
]
}

Response (HTTP 200)​

{"task_id":"task_platform_example"}

task_id is a platform task ID. Save it and query the task until succeeded, then read task.content.url. Do not use this ID to query upstream MiniMax directly. See error handling for error responses.