Alibaba
Wan 3.0 Video
wan3.0-video-prime
Alibaba's new-generation video generation model in the Wan series, capable of producing roughly 30-second 1080p clips in a single pass, supporting reference materials to maintain subject consistency, and the first to support structured document-type inputs
Try wan3.0-video-prime
Input
Output
videoPricing
wan3.0-video-prime per second
| Specifications | Unit Price |
|---|---|
| 480P | $0.0875 |
| 720P | $0.180 |
| 1080P | $0.360 |
Overview
wan3.0-video-prime is the high-quality reference-to-video line in the Wan 3.0 Video family, accessible through the unified HiAPI.ai interface. It accepts reference materials such as images, audio, documents, and web pages, and combines them with prompts to generate videos with sound up to 30 seconds long and up to 1080P, with support for first/last frame control, duration, and aspect ratio selection. It is suited to developers and content teams that need to maintain subject consistency using brand or product materials and produce finished clips directly.
Key Highlights
- Reference-driven multimodal generation — a single call can combine up to 10 images, 5 audio clips, and document or web page references, cited in the prompt as Image1, Audio1, and so on in array order.
- Single-call duration from 2 to 30 seconds — the duration parameter directly determines output length, so long narratives can be generated as a complete clip in one pass without segment stitching.
- Up to 1080P with selectable tiers — three resolution tiers (480P, 720P, 1080P) and six aspect ratios let you trade off quality against cost per call.
- Synchronized audio track and first/last frame control — output includes synchronized audio by default and the audio track can be disabled; first-frame and last-frame images constrain the opening and closing shots.
Capabilities
Reference-consistent generation: lock in subjects and style with reference materials such as images and audio, keeping the same character or product visually consistent across the entire video and reducing post-production rework.
Structured material input: pass in one document or one login-free web page as a reference, and use the prompt to turn the material into explainer-style video visuals.
Controllable duration and aspect ratio: choose any duration from 2 to 30 seconds and any of six aspect ratios; adaptive automatically follows the input materials and prompt, making it easy to fit landscape, portrait, and other placements.
First/last frame shot constraints: specify first-frame and last-frame images separately to constrain where a shot starts and ends, suited to finished clips that need precise openings and closings.
Reproducibility and audio toggle: reproduce the same result with a fixed seed, and use the audio parameter to control whether a synchronized audio track is generated, which helps with batch generation and version comparison.
Use Cases
- Brand or product materials into ad clips — input product images and selling-point prompts to output short clips with sound that keep the product's appearance consistent, for e-commerce detail pages and social media placements.
- Multimodal reference character narrative segments — use character images plus audio references to generate coherent clips up to 30 seconds as material segments for storylines or short dramas.
- Materials into explainer videos — upload a document or web page link to generate explainer visuals on the corresponding topic, for internal training and product introductions.
- Shot completion with specified start and end frames — provide two keyframe images for the first and last frames to generate a transition shot of controllable length and feed it into post-production editing workflows.
Limitations and Selection Advice
Billing is based on output seconds; higher resolution and longer duration cost more, so long videos combined with high quality should be budgeted in advance. Generation quality depends heavily on the prompt, and results vary considerably when the subject, action, camera, and style descriptions are unclear. Reference materials and first/last frame modes cannot be mixed; a single call accepts only one document or one web page reference. For shorter, lighter everyday clips, choose the standard line in the same family; for batch tasks with strict requirements on fixed parameters and reproducibility, fix the seed before scaling up.
What's new
View changelog →- New model wan3.0-video-prime video generation model now available
Frequently asked questions
View all FAQs →-
What type of video model is Wan 3.0 Video?
It is prompt-led and can also use endpoint frames or image, video, and audio references according to the active contract.
-
Which output settings does Wan 3.0 Video support?
2-30 seconds, 480P, 720P, 1080P, and adaptive, 16:9, 4:3, 1:1, 3:4, 9:16.
-
Can it generate sound or use audio references?
Optional image, video, audio, file and link references; synchronized audio
-
How is Wan 3.0 Video billed?
Billing follows output duration and the live tier. Resolution, mode, or audio differences are reflected by the page price and task record.
Create a generation task
https://api.hiapi.ai/v1/tasks Headers
AuthorizationstringRequiredAccount API key. Required on every request. Example: Bearer YOUR_HIAPI_API_KEY. Get your API key
Content-TypestringOptionalThe request body is always parsed as JSON; when sent, only application/json (optionally with charset) is accepted — any other value returns 415. Example: application/json.
Idempotency-KeystringOptionalIdempotency key, up to 255 bytes. Retries with the same key from the same account create the task only once; replays return the original taskId.
On network timeouts or client retries, the same key creates the task only once — no double charges (scope: the API key's account). Use a business-unique identifier as the key (e.g. "order-42"); replays return the original taskId, and keys expire 24 hours after the first request. See the Unified Async API overview for the full scenario matrix.
Body
modelstringRequiredCurrent fixed value: wan3.0-video-prime
routestringOptionalCurrent fixed value: default
inputobjectRequired
Business parameters for wan3.0-video-prime and route default — see the parameter table below.
seedintegerOptionalmin 0max 2147483647Random seed; pass a fixed value when reproducible output is needed; if not passed, the server generates one randomly.
audiobooleanOptionalDefault: trueWhether to include a synchronized audio track in the output video, boolean, default true.
promptstringRequiredminLength 1maxLength 20000Prompt describing the scene, motion, camera, lighting, and sound; in reference mode, refer to the corresponding assets by array order as Image1, Audio1, etc.
durationintegerOptionalDefault: 5min 2max 30Duration of the output video in seconds, ranging from 2 to 30, default 5.
resolutionstringOptionalDefault: "1080P"Resolution of the output video, default 1080P.
480P720P1080Paspect_ratiostringOptionalDefault: "adaptive"Aspect ratio of the output frame, default adaptive, i.e., adapts to the input media and prompt.
adaptive16:94:31:13:49:16last_frame_urlstringOptionalA publicly accessible image URL used as the last frame of the video; must be used together with first_frame_url.
first_frame_urlstringOptionalA publicly accessible image URL used as the first frame of the video; cannot be used together with the reference asset arrays.
reference_file_urlsarrayOptionalmaxItems 1An array of URLs for reference documents or presentations, at most 1, and must be publicly accessible.
Array [ string ]
reference_link_urlsarrayOptionalmaxItems 1An array of URLs for reference web pages, at most 1, and the web page must be publicly accessible without login.
Array [ string ]
reference_audio_urlsarrayOptionalmaxItems 5An array of URLs for reference audio, at most 5 WAV or MP3 clips, each 1 to 15 seconds long, and must be used together with images or videos.
Array [ string ]
reference_image_urlsarrayOptionalmaxItems 10An array of URLs for reference images, at most 10, used for general reference generation.
Array [ string ]
callbackobjectOptional
Terminal-state notification config. When omitted, no callback is delivered — poll the task yourself. See the callback note below.
Provide callback.url when creating a task and HiAPI POSTs to your service once the task reaches a terminal state — no polling needed. The callback payload mirrors the task detail structure; signature verification, delivery retries and idempotency are documented on the Unified Async API overview page.
urlstringRequiredRequired when callback is present. A POST is sent to this URL once the task reaches a terminal state; must be a valid http(s) URL.
whenstringOptionalDefault: "final"Only final is supported today — notified on both success and fail.
finalstoragestringOptionalDefault: "temp"Artifact storage tier: temp (default, retained about 7 days) or persistent (long-term, billed by size). Insufficient balance or exceeding the storage cap silently downgrades to temp; the effective tier is shown in the task detail response.
temppersistentRequest examples
# Submit an async task; returns a taskId immediately (no waiting for generation)
curl -X POST "https://api.hiapi.ai/v1/tasks" \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan3.0-video-prime",
"input": {
"audio": true,
"prompt": "…",
"duration": 5,
"resolution": "1080P",
"aspect_ratio": "adaptive"
}
}' const res = await fetch("https://api.hiapi.ai/v1/tasks", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.HIAPI_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "wan3.0-video-prime",
input: {
"audio": true,
"prompt": "…",
"duration": 5,
"resolution": "1080P",
"aspect_ratio": "adaptive"
}
}),
});
const task = await res.json();
// { code: 200, message: "success", data: { taskId } } import os, requests
res = requests.post(
"https://api.hiapi.ai/v1/tasks",
headers={"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}"},
json={
"model": "wan3.0-video-prime",
"input": {
"audio": True,
"prompt": "…",
"duration": 5,
"resolution": "1080P",
"aspect_ratio": "adaptive"
}
},
)
print(res.json()) # { code, message, data: { taskId } } 200 OK
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR"
}
} 400 Bad Request
{
"code": 400,
"message": "invalid request",
"data": null,
"error_code": "INVALID_REQUEST"
} Get task detail
https://api.hiapi.ai/v1/tasks/:id Response fields
taskIdstringRequiredTask ID, always prefixed with tk-hiapi-.
modelstringRequiredResolved full model name. Tasks submitted with the route parameter return base@route (e.g. gpt-image-2/text-to-image@ext); otherwise identical to the name passed at creation.
routestringOptionalPresent only when the task was submitted with an explicit route parameter; echoes the submitted value.
statusstringRequiredTask status.
queued Queued, not started yet.
handling Being processed.
archiving Processing finished, artifacts being prepared.
success Terminal: completed, artifacts available (output returned).
fail Terminal: failed (error returned).
After submission, check status: success and fail are terminal, everything else is non-terminal. Poll every 1–3 seconds until terminal. On success, download artifacts from output[].url and transfer them before expireAt; pass storage: "persistent" at creation time when long-term retention is needed.
creatednumberRequiredTask creation time (Unix seconds).
completednumberRequiredUnix seconds when the task reached a terminal state; fixed to 0 while not terminal.
outputarrayOptional
Present only when status == success. Artifact list — always an array; a single task may return multiple types at once (e.g. video + first_frame).
Array [ object ]
Array items
urlstringRequiredArtifact URL, directly downloadable.
typestringRequiredCurrent possible values: video, image, audio, first_frame, last_frame, thumbnail; more may be added later.
expireAtnumberRequiredUnix seconds until which the artifact remains accessible; download or transfer before it expires.
errorobjectOptional
Present only when status == fail.
codestringRequiredBusiness error code.
messagestringRequiredError description.
Response examples
Success
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR",
"model": "happyhorse-1-0",
"status": "success",
"created": 1777282033,
"completed": 1777282099,
"output": [
{
"url": "https://cdn.hiapi.ai/tasks/.../video.mp4",
"type": "video",
"expireAt": 1777886899
}
]
}
} Processing (non-terminal)
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "archiving",
"created": 1777282033,
"completed": 0
}
} Failed
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "fail",
"created": 1777282033,
"completed": 1777282099,
"error": {
"code": "TASK_FAILED",
"message": "task failed"
}
}
} Articles
View all articles →Related Models
View all models →Same Type
-
HeyGen Avatar IV HeyGen $0.150 /second -
FLUX 3 Max Black Forest Labs $0.061 /second -
Kling AI Avatar Kuaishou -- -
Creatify Boreal Creatify $0.015 /second -
Kling 4.0 Kuaishou $0.330 /second -
PixVerse V6 PixVerse $0.036 /second -
Seedance 2.0 ByteDance $0.017 /second -
Grok Imagine 1.5 xAI $0.011 /second -
Kling 2.5 Kuaishou $0.060 /second -
Runway Gen 4.5 Runway $0.172 /second -
HeyGen Avatar V HeyGen $0.150 /second -
HappyHorse 1.1 Alibaba $0.160 /second
Same Provider
-
Qwen Image 2.0 Alibaba $0.042 /image -
HappyHorse 1.1 Alibaba $0.160 /second -
Wan 2.7 Image Alibaba $0.035 /image -
Wan 3.0 Video Alibaba $0.040 /second -
HappyHorse 1.0 Alibaba $0.168 /second -
Qwen Audio 3.0 TTS Alibaba $0.030 /1,000 characters -
Wan 2.6 Flash Alibaba $0.043 /second -
Qwen Image 3.0 Alibaba $0.036 /image -
Qwen Image 2.1 Alibaba $0.020 /image -
Z-Image Alibaba $0.008 /image -
Wan 2.7 Video Alibaba $0.100 /second