H3 Video

H3 Text to Video

Changed on

Generate one or more H3 / H3 Max videos from a text prompt. Returns immediately with 202 Accepted and the task object.

Example

curl -X POST https://genaipro.io/api/v2/hailuo/text-to-video \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A drone flying over mountains at sunrise",
    "model": "h3",
    "number_of_videos": 1,
    "aspect_ratio": "16:9",
    "duration": 10,
    "resolution": "768p"
  }'

Each video is priced separately — see Credits in the H3 Video tag (this example: 2 credits).

Rate limit: 30 requests/minute — shared across all /v2/hailuo creation endpoints.

post/v2/hailuo/text-to-video

Request

Request body

promptstring required

Text description of the video (at most 2400 characters)

model'h3' | 'h3_max' required

Video model — h3 (H3) or h3_max (H3 Max). Case-insensitive.

number_of_videosinteger required

Number of videos to generate (1–4). Each is billed separately.

aspect_ratio'21:9' | '16:9' | '4:3' | '1:1' | '3:4' | '9:16'

Video aspect ratio. VIDEO_ASPECT_RATIO_LANDSCAPE / VIDEO_ASPECT_RATIO_PORTRAIT are also accepted (= 16:9 / 9:16).

durationinteger

Clip length in whole seconds — 5–15 (h3 at 2k: 5–12).

resolution'480p' | '768p' | '2k'

Output resolution — h3: 768p or 2k; h3_max: 480p or 768p.

callback_urlstring

Optional http/https webhook URL. When the task reaches completed or failed, GenAIPro POSTs the task object (same shape as GET /v2/hailuo/tasks/{id}) to this URL.

Example request

{
  "prompt": "A drone flying over mountains at sunrise",
  "model": "h3",
  "number_of_videos": 1,
  "duration": 10,
  "callback_url": "https://your-server.example.com/genaipro-webhook"
}

Response

Task accepted for processing. Use id to poll GET /v2/hailuo/tasks/{id}.

idstring

Task ID (use for GET /v2/hailuo/tasks/{id})

promptstring

The prompt used for generation (for Boost HD, the source task's prompt)

file_urlsstring[]

URLs of the generated files (empty while processing). Public; deleted about 90 days after creation (then 404) — download them yourself.

status'processing' | 'completed' | 'failed'

Task status

errorstring

Error message — present only when status is failed

task_typestring

text_to_video, frames_to_video, reference_to_video or upscale_video (image tasks: create_image)

aspect_ratiostring

Aspect ratio of the task — Auto for frames-to-video (follows the start image)

modelstring

Model and options of the task. Video: <model>_<resolution>_<duration>s (e.g. h3_768p_10s, h3_max_480p_5s); Boost HD: upscale_<resolution> (e.g. upscale_1440p).

number_of_outputsinteger

Number of videos (or images) requested

created_atstring date-time

Timestamp when the task was created

Example response

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "prompt": "A drone flying over mountains at sunrise",
  "file_urls": [],
  "task_type": "text_to_video",
  "aspect_ratio": "16:9",
  "model": "h3_768p_10s",
  "number_of_outputs": 1
}

Changes