Version: v1.0.0 | Last Updated: 2026-08-13 This platform fully supports the MiniMax Video Generation V2 (MiniMax-H3) official API. Requests and responses are transparently proxied, and all parameter semantics remain consistent with the official API.
task_id, which you poll via the Query Task endpoint.POST https://platform.dataeyes.ai/hailuo/v2/video_generation| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
model | string (enum) | Yes | — | Model name. Currently: MiniMax-H3 |
content | array | Yes | — | Multimodal input array (see below). Must include one non-empty text item |
resolution | string (enum) | Yes | — | Video resolution: 768P or 2K |
duration | integer | Yes | — | Output video duration in seconds, integer. Allowed values: 4-15 |
ratio | string (enum) | Conditional | adaptive | Aspect ratio; rules vary by scenario (see below) |
callback_url | string | No | — | Webhook URL for task status changes (see below) |
aigc_watermark | boolean | No | false | Whether to add an AIGC watermark to the generated video |
content array is typed via type (text / image_url / video_url / audio_url) and its purpose is marked via role. Different combinations map to different generation scenarios:| Scenario | content combination |
|---|---|
| Text-to-video (t2va) | A single text item |
| Image-to-video, first frame | text + 1 image_url (role=first_frame; with a single image, role may be omitted and defaults to first frame) |
| Image-to-video, last frame | text + 1 image_url (role=last_frame) |
| Image-to-video, first + last frame | text + 2 image_url items (role set to first_frame and last_frame respectively) |
| Multimodal-reference-to-video (r2va) | text + any combination of reference images (role=reference_image), reference videos (role=reference_video), and reference audio (role=reference_audio) |
Image-to-video and multimodal reference are mutually exclusive: once any reference_image/reference_video/reference_audiorole appears incontent,first_frame/last_framemust not appear (and vice versa).
| Field | Type | Description |
|---|---|---|
type | string (enum) | text / image_url / video_url / audio_url |
text | string | Prompt text. Every request must include one non-empty text item. Up to 7,000 characters per text |
image_url.url | string | Image address (required when type=image_url) |
video_url.url | string | Video address (required when type=video_url; multimodal reference only) |
audio_url.url | string | Audio address (required when type=audio_url; multimodal reference only) |
role | string (enum) | Purpose of the item, conditionally required: first_frame / last_frame / reference_image / reference_video / reference_audio |
url accepts three forms:mm_file://{file_id} (references an existing platform file, e.g. the file_id of a previous output);data:<mime>;base64,<Base64> data URI (lowercase mime subtype, e.g. data:image/png;base64,...).The total request body must be ≤ 64 MB, and Base64 encoding inflates size by ~33%. Use public URLs or mm_file://for large files instead of Base64.
image_url):| Item | Limit |
|---|---|
| Formats | JPG, JPEG, PNG, WEBP, HEIC, HEIF |
| Single file size | ≤ 30 MB |
| Width / height | [256, 5760] px |
| Aspect ratio (w/h) | [0.4, 2.5] |
| Count | first frame ≤ 1, last frame ≤ 1, reference images ≤ 9 |
video_url, multimodal reference only):| Item | Limit |
|---|---|
| Container / format | MP4 (.mp4), MOV (.mov) |
| Codecs | Video: H.264/AVC, H.265/HEVC; audio: AAC, MP3 |
| Single file size | ≤ 50 MB |
| Count | ≤ 3 |
| Duration | [2, 15] s per clip; total ≤ 15 s |
| Width / height | [256, 5760] px |
| Aspect ratio (w/h) | [0.4, 2.5] |
| Frame rate | [23.976, 60] |
audio_url, multimodal reference only):| Item | Limit |
|---|---|
| Formats | WAV, MP3 |
| Single file size | ≤ 15 MB |
| Count | ≤ 3 |
| Duration | [2, 15] s per clip; total ≤ 15 s |
adaptive (the most suitable aspect ratio is chosen automatically from the inputs; the actual ratio is available in the query endpoint's ratio field). Allowed values: adaptive, 21:9, 16:9, 4:3, 1:1, 3:4, 9:16.| Scenario | Rule |
|---|---|
| Text-to-video | Required, and must not be adaptive |
| Image-to-video | Determined by the input image; always adaptive. Other values are ignored without error |
| Multimodal reference | Optional; defaults to adaptive, or specify any concrete ratio |
challenge field (echo the challenge back within 3 seconds to complete verification). After verification, every task status change is POSTed to the URL; the payload structure matches the Query Task response. Callback status values: queued / running / succeeded / failed / cancelled.{
"task_id": "424010985738629"
}| Field | Type | Description |
|---|---|---|
task_id | string | Task ID; use it with Query Task to retrieve status and results |
usage.total_seconds (input reference video seconds + output seconds) at the resolution's unit price; the first 5 input images per task are free, additional images are billed per image. An estimated fee is pre-charged at submission and settled against actual usage on completion (difference charged or refunded); failed tasks are fully refunded. See Overview · Billing & Settlement.