MiniMax H3


MiniMax H3 : generate a video that keeps the subject from a reference image, driven by a text prompt. Supports 2K, 5-15s.

MiniMax H3 Video

The MiniMax H3 video generation model produces high-quality videos from multimodal content (text, images, video, audio). It offers an out-of-the-box REST inference API with 2K direct output, first/last-frame control, and multimodal reference-based video generation.

Base URL

https://api.icreat.ai

Authentication

All API requests must be authenticated with an API Key. You can obtain an API Key from the console.

export ICREAT_API_KEY="your-api-key-here"

HTTP Request Headers

import os

API_KEY = os.environ.get("ICREAT_API_KEY")
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer " + API_KEY,
}

Protect your API Key

Never expose your API Key in client-side code or public repositories. Use environment variables or a backend proxy.

Code Examples

Image and video generation uses a three-step async flow: submit a task to get task_id, poll status, then fetch results when status is SUCCEEDED. The examples below use the same task_id across all three steps.

1. Submit Task

Send a generation request to the submit endpoint. On success, the response body returns task_id — save it for polling and result retrieval.

POST/v1/task/submit/minimax/h3-video

2. Poll Status

Use the task_id from the submit step to check progress. The response body contains only the status field (SUBMITTED | SUCCEEDED | FAILED).

POST/v1/task/query-status

3. Get Result

When the task succeeds, use the same task_id to fetch the output. The response is a top-level array; each item includes type, url, and download_url.

POST/v1/task/get-result

Input Schema

Submit Task — Input

The following parameters are accepted in the submit request body.

Total: 6 Required: 3 Optional: 3

contentarray[object]required

Multimodal input array. Each element is differentiated by type (text / image_url / video_url / audio_url); use role to annotate purpose. Each request must include a non-empty text item.

resolutionstringrequired

Video resolution.

768P2K
durationintegerrequired

Generated video duration in seconds.

Min: 4 Max: 15

ratiostring

Aspect ratio of the generated video. Recommended for text-to-video mode.

Default"adaptive"
adaptive21:916:94:31:13:49:16
callback_urlstring

Callback URL for task status changes.

aigc_watermarkboolean

Whether to add an AIGC identification watermark to the output video.

Default"false"

Poll Status — Input

Total: 1 Required: 1 Optional: 0

task_idstringrequired

Task ID returned by the submit endpoint.

Get Result — Input

Total: 1 Required: 1 Optional: 0

task_idstringrequired

Task ID returned by the submit endpoint.

Output Schema

Submit Task — Output

Total: 1

task_idstring

Unique identifier for the async task. Use this ID to poll status and retrieve results.

Poll Status — Output

Total: 1

statusstring

Current task status. Fetch results when status is SUCCEEDED.

SUBMITTEDSUCCEEDEDFAILED

Get Result — Output

The response body is an array of resource objects (array[object]).

Total: 3

typestring

Resource type; Video for video models.

urlstring

Preview/access URL for the generated video.

download_urlstring

Download URL for the generated video (with attachment header).

LLM Prompt

The Markdown below is an LLM-friendly prompt you can paste into AI assistants (e.g. Cursor, ChatGPT) to help them understand this model's API, call flow, and key parameters. Use Copy for AI or copy from the code block below.

# minimax/h3-video

> The MiniMax H3 video generation model produces high-quality videos from multimodal content (text, images, video, audio).

## Overview

Use the iCreat three-step async task API: submit a generation request, poll status, then fetch the video URL on success.

## API Info

- **Base URL**:`https://api.icreat.ai`
- **Submit endpoint (POST)**:`/v1/task/submit/minimax/h3-video`
- **Poll endpoint (POST)**:`/v1/task/query-status`
- **Get result endpoint (POST)**:`/v1/task/get-result`
- **Model ID**:`minimax/h3-video`
- **Auth**:`Authorization: Bearer ${ICREAT_API_KEY}`

## Call Flow

1. **Submit**: POST submit path with body per Input Notes; response `{ "task_id": "..." }`
2. **Poll**: POST `/v1/task/query-status` with `{ "task_id": "..." }`; response contains **only** `{ "status": "SUBMITTED|SUCCEEDED|FAILED" }`
3. **Get result**: when `status` is `SUCCEEDED`, POST `/v1/task/get-result`; top-level array; read `url` or `download_url` when `type` is `Video`

### Input Notes

- Request body centers on a multimodal `content` array plus resolution/duration params
- `role` (optional): Purpose annotation, e.g. `reference_image` for image-to-video.
- `resolution` (required): Video resolution.
- `duration` (required): Generated video duration in seconds.
- `ratio` (optional): Aspect ratio of the generated video. Recommended for text-to-video mode. (default `adaptive`)
- `callback_url` (optional): Callback URL for task status changes.
- `aigc_watermark` (optional): Whether to add an AIGC identification watermark to the output video. (default `false`)

### Output Notes

- Poll: read `status` only
- Result: top-level `[{ "type": "Video", "url": "...", "download_url": "..." }]`

## Notes

- Use the same `task_id` across all three steps; do not skip polling
- `FAILED` is terminal — check request parameters or reference media