Skip to content
English

Wan 3.0 Video API

POST Base URL: https://api.hiapi.ai /v1/tasks

Image, video, and audio 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 wan3.0-video
Type Video generation (all-purpose reference)
Endpoint POST /v1/tasks
Pricing See HiAPI Pricing

Wan 3.0 all-purpose video generation API for text, first/last frames, reference images, videos, audio, files, and webpages, with 480P, 720P, or 1080P output and optional synchronized audio.

Production guidance

Production guidance
  • The submission returns a taskId immediately; use callback.url for terminal notifications in production.
  • Poll GET /v1/tasks/:id for local debugging or callback reconciliation.
  • Reference video duration plus output duration must stay within 30 seconds; first/last-frame mode cannot be combined with reference arrays.

Best suited for

Text-to-video clips

Describe the complete scene, motion, and camera in the prompt.

prompt
Multimodal reference control

Combine image, video, or audio references and address them in order in the prompt.

promptreference_image_urlsreference_video_urlsreference_audio_urls
First/last-frame transitions

Control the beginning and ending frames with two images.

first_frame_urllast_frame_url

Request parameters

model string required

Fixed value wan3.0-video.

example wan3.0-video
input object required

Model input parameters.

prompt string required

Describe the scene, motion, camera, lighting, and sound. In reference mode, use Image1, Video1, or Audio1 in the order of the supplied arrays.

first_frame_url string optional

One publicly reachable image used as the first frame. Do not combine with reference media arrays.

last_frame_url string optional

One publicly reachable image used as the last frame together with first_frame_url.

reference_image_urls string[] optional

Up to 10 publicly reachable reference image URLs for all-purpose reference generation.

reference_video_urls string[] optional

Up to 5 reference video URLs. Each clip is 1-15 seconds and the combined duration is at most 15 seconds.

reference_audio_urls string[] optional

Up to 5 WAV or MP3 reference audio URLs. Pair audio with an image or video.

reference_file_urls string[] optional

At most one publicly reachable document or presentation URL.

reference_link_urls string[] optional

At most one publicly reachable webpage URL that does not require login.

resolution enum optional

Output video resolution.

default 1080P enum: 480P720P1080P
aspect_ratio enum optional

Output aspect ratio; adaptive follows the media and prompt.

default adaptive enum: adaptive16:94:31:13:49:16
duration integer optional

Output duration in seconds, from 2 to 30. Reference video duration plus output duration must not exceed 30 seconds.

default 5
audio boolean optional

Include a synchronized audio track in the output video.

default true
seed integer optional

Fixed random seed for reproducible results, from 0 to 2147483647.

callback object optional

Optional terminal-state callback configuration.

url string required

HTTPS URL that receives terminal task notifications.

when enum optional

Callback trigger timing.

default final enum: final

Example requests

Five-second text-to-video

A low-resolution example sourced from the verified golden task.

Request body
{
  "model": "wan3.0-video",
  "input": {
    "prompt": "A small cat runs across a moonlit rooftop while neon signs flicker in the distance; cinematic camera movement and natural motion.",
    "resolution": "480P",
    "aspect_ratio": "adaptive",
    "duration": 5,
    "audio": true
  }
}
Portrait reference generation

Place public media URLs in the matching array and refer to them in the prompt.

Request body
{
  "model": "wan3.0-video",
  "input": {
    "prompt": "The subject from Image1 walks toward the camera on a rainy night street.",
    "reference_image_urls": [
      "https://example.com/reference.jpg"
    ],
    "resolution": "720P",
    "aspect_ratio": "9:16",
    "duration": 5,
    "audio": true
  }
}

Getting the result

  1. POST /v1/tasks returns a taskId immediately.
  2. When the task succeeds, download the video from output[].url.
  3. When it fails, fix the request from the error message instead of repeating the same invalid payload.

FAQ

How do I retrieve the result?

Use the returned taskId. On success, download the video from output[].url or receive a terminal callback at callback.url.

Can first-frame input be combined with reference images?

First/last-frame mode and reference_* arrays are mutually exclusive. Choose the mode that matches the media role.

Next steps