Skip to Content
DocumentationModelsVideoWan 3.0 Video

Wan 3.0 Video

Use wan3.0-video to create video output. This page contains the complete request needed for this model.

Model facts

PropertyValue
Model IDwan3.0-video
EndpointPOST /api/v1/generation/create
OutputVideo
Modestext-to-video, image-to-video, video reference, audio reference
PricingView current pricing 

Minimal request

curl -X POST https://api.api-stock.com/api/v1/generation/create \ -H "Authorization: Bearer $API_STOCK_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "wan3.0-video", "input": { "prompt": "A product shot rotating on a clean studio background" } }'

The create response contains a task ID:

{ "code": 200, "data": { "taskId": "019ca881-9503-7270-a560-f00fc2b15785", "status": "not_started", "createdAt": "2026-08-22T12:00:00.000Z" } }

Parameters

Parameters belong inside the top-level input object. Unknown fields are rejected.

ParameterTypeRequiredDefaultDescription
promptstringNoText description. Required unless at least one media input is supplied. In reference mode you can address assets positionally with “图N / 视频N / 音频N” labels; indices run per media type. max 20000 chars
imageUrlsstring[]NoImage URLs without explicit roles. In the frame family the first item is the start frame and an optional second is the end frame; in the reference family every item is a reference image (up to 10).
imageWithRolesobject[]NoImages with explicit roles. Use this when you need first/last frame or reference images stated outright rather than inferred from order. Each item is { url: string, role: string }.
videoUrlsstring[]NoReference videos, up to 5 clips of 1-15s each (total <= 15s). Input video duration plus the requested output duration must stay within 30 seconds.
audioUrlsstring[]NoReference audio, up to 5 clips of 1-15s each (total <= 15s).
fileUrlstringNoReference document driving the generation (docx/xlsx/pptx/pdf/txt/md and similar, <=100MB, <=50 pages). Cannot be combined with linkUrl. A prompt is optional when this is supplied.
linkUrlstringNoPublic, login-free web page to turn into a video. Cannot be combined with fileUrl.
generationType“frame” | “reference”NoHow bare imageUrls are classified: frame (first/last frame) or reference. Omit to let it be inferred — reference when the request already carries reference-family inputs, frame otherwise.
size“adaptive” | “16:9” | “4:3” | “1:1” | “3:4” | “9:16”No"adaptive"Aspect ratio. adaptive lets the model pick one from the inputs.
resolution“480p” | “720p” | “1080p”No"720p"Output resolution. Each tier is billed at its own per-second rate, so 1080p costs four times 480p for the same duration.
durationnumberNo5Duration in seconds (2-30). Billing is per second at the resolution’s rate. With reference videos, total input video duration plus this value must be at most 30 seconds. min 2, max 30
audiobooleanNotrueInclude an audio track in the output.
watermarkbooleanNofalseAdd a watermark to the output
seednumberNoRandom seed for controlling randomness min 0, max 2147483647

Modes

Minimal generation

{ "model": "wan3.0-video", "input": { "prompt": "A product shot rotating on a clean studio background" } }

With image urls

{ "model": "wan3.0-video", "input": { "prompt": "A product shot rotating on a clean studio background", "imageUrls": [ "https://example.com/input.jpg" ] } }

With video urls

{ "model": "wan3.0-video", "input": { "prompt": "A product shot rotating on a clean studio background", "videoUrls": [ "https://example.com/input.mp4" ] } }

With audio urls

{ "model": "wan3.0-video", "input": { "prompt": "A product shot rotating on a clean studio background", "audioUrls": [ "https://example.com/input.mp3" ] } }

With file url

{ "model": "wan3.0-video", "input": { "prompt": "A product shot rotating on a clean studio background", "fileUrl": "https://example.com/input.jpg" } }
{ "model": "wan3.0-video", "input": { "prompt": "A product shot rotating on a clean studio background", "linkUrl": "https://example.com/input.jpg" } }

Constraints

  • prompt: maximum 20000 characters.
  • generationType: allowed: frame, reference.
  • size: allowed: adaptive, 16:9, 4:3, 1:1, 3:4, 9:16.
  • resolution: allowed: 480p, 720p, 1080p.
  • duration: minimum 2; maximum 30.
  • seed: minimum 0; maximum 2147483647.

Invalid types, unsupported enum values, out-of-range numbers, and missing required fields return HTTP 400 with error.code: "invalid_input". Correct the request rather than retrying it unchanged.

Result

Poll the task or provide a top-level webhook URL in the create request:

curl https://api.api-stock.com/api/v1/task/status/$TASK_ID \ -H "Authorization: Bearer $API_STOCK_KEY"

A successful media task returns one or more files:

{ "code": 200, "data": { "taskId": "019ca881-9503-7270-a560-f00fc2b15785", "status": "finished", "files": [ { "fileUrl": "https://storage.api-stock.com/result.mp4", "fileType": "video" } ], "createdTime": "2026-08-22T12:00:00.000Z" } }

See Tasks and webhooks for terminal statuses, retries and webhook delivery.