MiniMax H3 API
Text-to-video at 768p.
| Resolution | Text, images or video |
|---|---|
| 768p | Text, images or video18 Credits/s ($0.09/s) |
With video input, both the input and output seconds are billed.
Full pricing ↓
Pricing
Prices as of 2026-11-09
| Tier | Price |
|---|---|
768p | 18 Credits/s ($0.09/s)4–15 s |
768p with video input 768p-video | 18 Credits/s ($0.09/s)Note 14–15 s |
- The rate applies to input and output seconds.
1 Credit ≈ $0.005. At the standard pack price. Larger packs include bonus Credits, so each Credit costs less.
Delivery and billing
- Output
- Finished files are listed in the task result with an asset ID and type for each.
- Download
- Files are kept for 7 days and downloaded through short-lived signed links. You can delete them any time.
- Billing
- Credits are held when a task is accepted and charged on delivery. If generation fails, or nothing is delivered within 24 hours, the held Credits are released in full.
- Notifications
- Poll the task by ID, or use signed webhooks and deduplicate by event_id.
How is it billed?
API reference
Create the task once, then poll it by its ID. Full script with upload and download · API reference
API=https://api.vizoapi.com/v1
AUTH="Authorization: Bearer $VIZO_API_KEY"
# Create the task once and keep its ID.
ID=$(curl -fsS $API/generations -H "$AUTH" -H "Content-Type: application/json" \
-d '{
"model": "minimax-h3",
"input": {
"content": [
{
"type": "text",
"text": "A slow dolly shot through a rainy neon street"
}
],
"resolution": "768P",
"ratio": "16:9",
"duration": 6
},
"metadata": {
"client_reference": "my-unique-reference-1"
}
}' | jq -r .id)
# Poll until the task closes, then read its status and result.
until curl -fsS $API/generations/$ID -H "$AUTH" | jq -e '.closed_at != null' > /dev/null; do sleep 5; done
curl -fsS $API/generations/$ID -H "$AUTH" | jq '{status, result}'All fields
Send these fields in input. A field the table does not list is refused with HTTP 422 invalid_input.
contentholds exactly onetextitem.- Every image, video and audio item in
contentnames itsrole. - Frames (
first_frame,last_frame, at most one each) cannot be combined with reference images, videos or audio. - Input without images, videos or audio needs a
ratioother thanadaptive; input with frames always usesadaptive. resolutionis case-sensitive: send768P.
| Field | Description |
|---|---|
| Exactly one text item. Frames (first_frame, last_frame, at most 1 each) cannot be combined with references. Up to 5 images, 3 videos (2 to 15 seconds each, 15 in total) and 3 audios (15 seconds in total). At least 1 items · At most 16 items |
content[]. | Item kind. Allowed values textimage_urlvideo_urlaudio_url |
Items where type is text | |
content[]. | Prompt text, up to 7000 characters. At most 7000 characters |
Items where type is image_url | |
content[]. | Image roles: first_frame, last_frame, reference_image. Video: reference_video. Audio: reference_audio. |
content[]. | |
content[]. | An https URL or an uploaded asset id (ast_...). At most 4000 characters · Pattern |
Items where type is video_url | |
content[]. | Image roles: first_frame, last_frame, reference_image. Video: reference_video. Audio: reference_audio. |
content[]. | |
content[]. | An https URL or an uploaded asset id (ast_...). At most 4000 characters · Pattern |
Items where type is audio_url | |
content[]. | Image roles: first_frame, last_frame, reference_image. Video: reference_video. Audio: reference_audio. |
content[]. | |
content[]. | An https URL or an uploaded asset id (ast_...). At most 4000 characters · Pattern |
| Output resolution. Only 768P. Only |
| Output length in seconds, 4 to 15. Minimum 4 · Maximum 15 |
| Output aspect ratio. Text-only input needs a value other than adaptive; input with frames always uses adaptive. Allowed values adaptive21:916:94:31:13:49:16Default |
| Add a visible watermark. Defaults to false; the tier price is unchanged. Default |
Full example request and response
A complete create request, the 202 answer and the task once it has succeeded. This input selects the 768p tier at 18 Credits per second. For 6 seconds the API holds 108.000 Credits.
Request
{
"model": "minimax-h3",
"input": {
"content": [
{
"type": "text",
"text": "A paper boat drifting on a pond at dawn, slow dolly in"
}
],
"resolution": "768P",
"ratio": "16:9",
"duration": 6
},
"metadata": {
"client_reference": "my-unique-reference-1"
}
}202 Accepted
{
"id": "gen_01JD8Z5QW3XR",
"model": "minimax-h3",
"source": "api",
"created_at": "2026-11-08T09:00:00Z",
"customer_resolution_deadline": "2026-11-09T09:00:00Z",
"late_result_available": false,
"metadata": {
"client_reference": "my-unique-reference-1"
},
"status": "processing",
"execution_status": "processing",
"delivery_status": "pending",
"billing_status": "pending",
"version": 1,
"price": {
"unit": "credit",
"estimated": "108.000",
"reserved": "0.000",
"charged": "0.000",
"refunded": "0.000"
},
"allowed_actions": [],
"closed_at": null,
"error": null,
"result": null
}200 Succeeded
{
"id": "gen_01JD8Z5QW3XR",
"model": "minimax-h3",
"source": "api",
"created_at": "2026-11-08T09:00:00Z",
"customer_resolution_deadline": "2026-11-09T09:00:00Z",
"late_result_available": false,
"metadata": {
"client_reference": "my-unique-reference-1"
},
"status": "succeeded",
"execution_status": "succeeded",
"delivery_status": "ready",
"billing_status": "settled",
"version": 4,
"price": {
"unit": "credit",
"estimated": "108.000",
"reserved": "0.000",
"charged": "108.000",
"refunded": "0.000"
},
"allowed_actions": [],
"closed_at": "2026-11-08T09:01:31Z",
"error": null,
"result": {
"asset_id": "ast_01JD8Z9M2C4V",
"outputs": [
{
"index": 0,
"asset_id": "ast_01JD8Z9M2C4V",
"content_type": "video/mp4"
}
]
}
}

