Skip to content
English

Hailuo 2.3 Image to Video API

POST /v1/tasks

All models are called through the Unified Async API POST /v1/tasks endpoint; only the input fields differ (see input parameters below).

Model summary

Model name hailuo-2.3/image-to-video
Type Video generation (image-to-video)
Endpoint POST /v1/tasks
Pricing See HiAPI Pricing

MiniMax Hailuo 2.3 image-to-video: first-frame driven with natural motion and 6s/10s per-video pricing on the standard route.

Production guidance

Production guidance
  • For production, pass callback.url at the top level of the request body so HiAPI can notify your service when the task reaches a terminal state.
  • GET /v1/tasks/:id is better for local debugging, low-volume jobs, or fallback reconciliation if a callback is missed.
  • Use callback.when=final. Both success and fail are terminal states, so your service should deduplicate by taskId.

Best suited for

Animate stills

First-frame driven — keeps style and subject while adding motion.

image_urlprompt
Natural motion

Motion physics is the Hailuo specialty, stable even for large movements.

prompt
6/10s tiers

Per-video pricing on the standard route keeps budgets predictable.

duration

Request parameters

model string required

Fixed value hailuo-2.3/image-to-video.

example hailuo-2.3/image-to-video
input object required

Business parameters. Put Hailuo 2.3 Image to Video-specific configuration here.

prompt string required

Text description of the video to generate.

image_url string required

First-frame image URL (single image); jpeg/png/webp, SVG not supported.

duration enum optional

Duration of the generated video in seconds.

default 6 enum: 610
prompt_optimizer boolean optional

Automatically optimize the prompt for better results.

default true
callback object optional

Optional callback configuration. When set, HiAPI notifies your service when the task reaches a terminal state.

url string required

Required when callback is set; HTTPS URL that receives terminal task notifications.

example https://your-domain.com/hiapi/callback
when enum optional

Callback trigger timing. Use final.

default final enum: final

Example requests

Ink dragon in motion (10s)

Tested first-frame drive at the 10s tier on the standard route.

Request body
{
  "model": "hailuo-2.3/image-to-video",
  "input": {
    "prompt": "The ink wash koi dragon slowly swims forward through the clouds, brush strokes flowing like water, camera drifts right",
    "image_url": "https://static.hiapi.ai/gallery/2026/07/210621a491e4d443.jpg",
    "duration": "10"
  }
}

Getting the result

  1. The response returns a taskId immediately without waiting for generation to finish.
  2. In production, prefer waiting for callback.url to receive the terminal notification. For local debugging, poll GET /v1/tasks/:id.
  3. When status=success, download the generated video from output[].url.
  4. When status=fail, fix the request based on the returned error instead of retrying the same invalid payload.

FAQ

Is image_url an array?

No — a single first-frame image URL string.

Cheapest option?

Use hailuo-2.3-fast/image-to-video — same structure at the lowest price.

Next steps