Skip to main content
POST

Authorizations

Authorization
string
header
required

##All endpoints require Bearer Token authentication##

Get API Key:

Visit the API Key Management Page to obtain your API Key

Add to request header:

Body

application/json
model
enum<string>
required

Video generation model name

Available options:
wan3.0-text-to-video,
wan3.0-image-to-video,
wan3.0-reference-video
Example:

"wan3.0-text-to-video"

prompt
string

Text prompt for video generation. Chinese and English are supported, each Chinese character / letter counts as 1 character, maximum length 20000 characters; anything beyond that is truncated automatically (no error)

Whether it is required: required for wan3.0-text-to-video; for wan3.0-reference-video at least one of prompt and reference material; for wan3.0-image-to-video it is recommended, to describe how the picture changes

Material reference rules (reference-to-video):

  • Use "Image 1", "Video 1" and "Audio 1" to refer to the material in the corresponding array (1-based)
  • Images, videos and audio are counted independently, so "Image 1" and "Video 1" can both exist
Example:

"The character in Video 1 holds Image 3 and plays a soft country folk tune on the chair in Image 4, saying: “What lovely sunshine today.”"

image_start
string<uri>

First-frame image URL, used strictly as the first frame of the generated video. Only available for wan3.0-image-to-video

Image limits:

  • Formats: JPEG, JPG, PNG (transparency not supported), BMP, WEBP
  • Resolution: width and height in [240, 8000] pixels
  • Aspect ratio: 1:8 ~ 8:1
  • File size: up to 20MB
Example:

"https://example.com/first_frame.jpg"

image_end
string<uri>

Last-frame image URL, used strictly as the last frame of the generated video. Only available for wan3.0-image-to-video

Constraint: must be used together with image_start, passing the last frame alone is not supported.

Image limits:

  • Formats: JPEG, JPG, PNG (transparency not supported), BMP, WEBP
  • Resolution: width and height in [240, 8000] pixels
  • Aspect ratio: 1:8 ~ 8:1
  • File size: up to 20MB
Example:

"https://example.com/last_frame.jpg"

image_urls
string<uri>[]

Array of reference image URLs, up to 10 images, only available for wan3.0-reference-video. They can supply subjects (people / animals / objects) or scene backgrounds; when a subject is included, each image should contain a single character

The array order matches "Image 1, Image 2, ..." in the prompt

Note: for the first and last frames of image-to-video use image_start / image_end, not this field

Image limits:

  • Formats: JPEG, JPG, PNG (transparency not supported), BMP, WEBP
  • Resolution: width and height in [240, 8000] pixels
  • Aspect ratio: 1:8 ~ 8:1
  • File size: up to 20MB
Maximum array length: 10
Example:
video_urls
string<uri>[]

Array of reference video URLs, up to 5 clips, only available for wan3.0-reference-video. The array order matches "Video 1, Video 2, ..." in the prompt

Duration limits:

  • 1 ~ 15 seconds per clip
  • 15 seconds in total at most
  • Total reference video duration + output video duration must not exceed 30 seconds

🔴 Reference videos count toward billing: billed duration = input video duration + output video duration. Reference images, reference audio, files and web pages are not billed

Video limits:

  • Formats: mp4, mov
  • Resolution: width and height in [240, 4096] pixels
  • Aspect ratio: 1:8 ~ 8:1
  • Size per file: up to 100MB
Maximum array length: 5
Example:
audio_urls
string<uri>[]

Array of reference audio URLs, up to 5 clips, only available for wan3.0-reference-video. The array order matches "Audio 1, Audio 2, ..." in the prompt

⚠️ Different semantics from Wan2.7: in Wan2.7, audio_urls carried a voice bound to a specific reference image / reference video; in Wan3.0 reference audio is standalone material referred to directly from the prompt as "Audio 1", and the model_params.voice_bindings voice-binding protocol is not supported. Rewrite accordingly when migrating from Wan2.7.

Duration limits:

  • 1 ~ 15 seconds per clip, 15 seconds in total at most
  • Reference audio is not billed

Audio limits:

  • Formats: wav, mp3
  • File size: up to 15MB
Maximum array length: 5
Example:
duration
integer
default:5

Duration of the generated video in seconds, defaults to 5

Accepted values:

  • Any integer between 2 and 30
  • -1: smart duration, the model decides the output length from the prompt and the input material

How smart duration is billed: the output length cannot be known at submission time, so credits are pre-authorized at the 30-second cap; once the task succeeds it is settled against the actual output duration and the excess hold is released automatically. If your balance cannot cover the capped hold, pass an explicit number of seconds instead.

Extra constraint when reference videos are supplied:

  • Total reference video duration + output video duration must not exceed 30 seconds
  • Example: with 10 seconds of reference video in total, duration can be at most 20
Example:

5

quality
enum<string>
default:720p

Video resolution, defaults to 720p

Options:

  • 480p: lower definition, lowest price (billing baseline)
  • 720p: standard definition, this is the default, 2x the price of 480p
  • 1080p: high definition, 4x the price of 480p
Available options:
480p,
720p,
1080p
Example:

"720p"

aspect_ratio
enum<string>
default:adaptive

Video aspect ratio, defaults to adaptive

Options:

  • adaptive: adaptive, the model recommends a suitable aspect ratio based on the input material's ratio and the intent of the prompt, this is the default
  • 16:9 (landscape), 9:16 (portrait), 1:1 (square), 4:3, 3:4
Available options:
adaptive,
16:9,
9:16,
1:1,
4:3,
3:4
Example:

"16:9"

generate_audio
boolean
default:true

Whether the output video contains an audio track, defaults to true

Options:

  • true: the output video contains sound (voices, sound effects, background music), this is the default
  • false: silent video output

Sound on and sound off cost the same, there is no extra charge.

Example:

true

seed
integer

Random seed, used to reproduce generation results, random by default

Notes:

  • Range: 0 ~ 2147483647
  • Fixing the seed reduces variation when iterating on prompts and improves reproducibility
Required range: 0 <= x <= 2147483647
Example:

42

model_params
object

Model extension parameters, only available for wan3.0-reference-video. file_url and link_url are mutually exclusive, pick one of the two

callback_url
string<uri>

HTTPS callback URL for task completion

Callback timing:

  • Triggered when the task is completed, failed, or cancelled
  • Sent after billing confirmation is complete

Security restrictions:

  • Only HTTPS protocol is supported
  • Callbacks to private IP addresses are prohibited (127.0.0.1, 10.x.x.x, 172.16-31.x.x, 192.168.x.x, etc.)
  • URL length must not exceed 2048 characters

Callback mechanism:

  • Timeout: 10 seconds
  • Up to 3 retries after failure (at 1/2/4 seconds after failure respectively)
  • Callback response body format is consistent with the task query endpoint response format
  • A 2xx status code is considered successful; other status codes trigger retries
Example:

"https://your-domain.com/webhooks/video-task-completed"

Response

Video generation task created successfully

created
integer

Task creation timestamp

Example:

1761313744

id
string

Task ID

Example:

"task-unified-1774857405-abc123"

model
string

Actual model name used

Example:

"wan3.0-text-to-video"

object
enum<string>

Specific task type

Available options:
video.generation.task
progress
integer

Task progress percentage (0-100)

Required range: 0 <= x <= 100
Example:

0

status
enum<string>

Task status

Available options:
pending,
processing,
completed,
failed
Example:

"pending"

task_info
object

Video task details

type
enum<string>

Task output type

Available options:
text,
image,
audio,
video
Example:

"video"

usage
object

Usage and billing information