Skip to content

Wan3.0 Video Generation ​

Wan3.0 (wan3.0-video) is Alibaba Tongyi Wanxiang's Wan3.0 video generation model. It supports text-to-video, image-to-video (first frame / reference image), video reference and video editing, up to 30 seconds at 30fps. It uses the unified POST /v1/videos endpoint and returns an OpenAI Video style response (id / status / metadata.url), sharing the same task polling mechanism as other video models.

Billing

Wan3.0 is billed by actual generated duration (seconds), tied to the resolution tier (480P / 720P / 1080P have different unit prices). Exact unit prices and billing expressions are shown on the corresponding model card in the console "Model Plaza" (prices are intentionally omitted from this documentation).

Endpoints ​

  • Create task: POST $URL/v1/videos
  • Query task: GET $URL/v1/videos/{task_id}

Compatible alias

An OpenAI Sora-style alias is also supported: POST $URL/v1/video/generations, GET $URL/v1/video/generations/{task_id} — equivalent to the above.

Supported Models ​

Model namePositioningResolutions
wan3.0-videoStandard edition, all-in-one reference generation480P / 720P / 1080P
wan3.0-video-primeHigh-speed edition, significantly faster end-to-end, capability aligned with standard480P / 720P / 1080P

Within the same model name, the resolution tier is selected via the size request parameter (see "Parameters" below).

Parameters ​

ParameterTypeRequiredDescription
modelstringyeswan3.0-video / wan3.0-video-prime
promptstringyesVideo description; recommend specifying subject, action, scene, and camera movement
sizestringnoResolution tier: 480p / 720p / 1080p, defaults to 1080P
secondsstringnoOutput duration in seconds, e.g. "5", "10"; range 2–30 without video input, "-1" for smart duration
imagestringnoReference image URL (single, used as the first frame for image-to-video)
imagesarraynoReference image URL array (multi-image reference)
input_referencestringnoReference / to-be-edited video URL, for video reference generation or video editing
metadata.resolutionstringnoAdvanced override: directly specify upstream resolution 480P / 720P / 1080P
metadata.durationnumbernoOverride output duration (seconds)
metadata.seedintegernoRandom seed for reproducibility

Reference material

Publicly accessible image/video URLs are supported (the upstream server fetches them; intranet or local addresses will fail). Wan3.0 does not provide a standalone asset library — pass reference material via URL.

Request Examples ​

Text-to-video ​

bash
# 1. Create video task (720P, 5 seconds)
curl $URL/v1/videos \
  -H "Authorization: Bearer $YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "wan3.0-video",
    "prompt": "A cat wearing sunglasses walking down a neon street, cyberpunk style, camera slowly pushing in",
    "seconds": "5",
    "size": "720p"
  }'

# 2. Query task status (replace {task_id} with the id returned above)
curl $URL/v1/videos/{task_id} \
  -H "Authorization: Bearer $YOUR_API_KEY"
python
import time
import requests

url = "$URL/v1/videos"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json",
}
payload = {
    "model": "wan3.0-video",
    "prompt": "A cat wearing sunglasses walking down a neon street, cyberpunk style",
    "seconds": "5",
    "size": "720p",
}

task = requests.post(url, json=payload, headers=headers).json()
task_id = task["id"]

while True:
    result = requests.get(f"{url}/{task_id}", headers=headers).json()
    if result["status"] in ("completed", "failed"):
        break
    time.sleep(8)

print(result)

Image-to-video (first frame) ​

bash
curl $URL/v1/videos \
  -H "Authorization: Bearer $YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "wan3.0-video",
    "prompt": "Make the person in the frame turn and walk toward the camera",
    "image": "https://example.com/ref.png",
    "seconds": "5",
    "size": "1080p"
  }'

Video reference / video editing ​

bash
curl $URL/v1/videos \
  -H "Authorization: Bearer $YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "wan3.0-video",
    "prompt": "Convert the entire scene into a claymation style",
    "input_reference": "https://example.com/clip.mp4",
    "seconds": "5",
    "size": "720p"
  }'

High-speed edition (prime) ​

Just change model to wan3.0-video-prime; all other parameters are identical:

bash
curl $URL/v1/videos \
  -H "Authorization: Bearer $YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "wan3.0-video-prime",
    "prompt": "Waves crashing against rocks, slow motion, cinematic",
    "seconds": "5",
    "size": "1080p"
  }'

Response Fields ​

The create and query endpoints return the same structure (OpenAI Video style):

FieldTypeDescription
idstringTask ID
statusstringTask status (see below)
metadata.urlstringVideo URL after generation (returned only when completed)
progressintegerGeneration progress, 0~100
completed_atintegerCompletion timestamp (seconds, returned only when completed)
error.messagestringFailure reason (returned only when failed)

Task Status ​

StatusMeaningSuggested action
queuedQueuedKeep polling
in_progressGeneratingKeep polling
completedSuccessGet video URL from metadata.url; download and store promptly
failedFailedCheck error.message

Poll every 5~10 seconds

Download and store the video as soon as it completes: the URL is time-limited and becomes inaccessible after expiry.

Response Example ​

json
{
  "id": "task_xxxxxxxx",
  "status": "in_progress",
  "progress": 30
}

After completion:

json
{
  "id": "task_xxxxxxxx",
  "status": "completed",
  "progress": 100,
  "metadata": {
    "url": "https://cdn.example.com/.../result.mp4"
  },
  "completed_at": 1786431715
}

FAQ ​

Q: How to write better prompts?

Include four elements: subject (who/what), action (doing what), scene (where), camera (how shot, e.g. push-in / orbit / overhead). Avoid overly abstract descriptions.

Q: How long does a task take?

Depends on duration and resolution. 720P 5s typically finishes within 1~3 minutes; 1080P takes longer. Poll the query endpoint for the final status; tasks not finished within 20 minutes auto-fail.

Q: Do generated video links expire?

Yes. The video URL is time-limited — download and store it to your own storage promptly after completion.

Q: Is there an asset library?

Wan3.0 does not currently provide a standalone asset library. Use publicly accessible image/video URLs as reference frames or reference videos (see image / images / input_reference above).

© 2026 Euno AI. All rights reserved.