Introduction
Wan 3.0 Pro Text to video writes a shot from a prompt and delivers it at 1080p, 2K or 4K for 2 to 30 seconds, with generated audio in the same file. prompt is the only required field and accepts up to 20,000 characters. A native Wan 3.0 render tops out at 1080p, so the 2k and 4k tiers are enlarged from that render rather than drawn at those sizes. There is no 480p or 720p tier on this endpoint; Wan 3.0 covers those sizes.
Choose a Wan 3.0 Pro mode by starting material
| What you have at the start | Mode |
|---|---|
| a written scene or script | Wan 3.0 Pro Text to video |
| an approved opening image | Wan 3.0 Pro Image to video |
| separate visual, motion, or sound references | Wan 3.0 Pro Reference to video |
Key features & highlights
Three delivery sizes from one native render
resolution takes 1080p (the default), 2k or 4k. The two larger tiers stretch what the model drew rather than drawing more, so they suit footage that will be cropped, tracked or projected, and they are only as good as the render underneath. Find the shot at 1080p first and treat 4K as a delivery step.
Prompt expansion starts switched on
On this family enable_prompt_expansion defaults to true. It fills out a thin brief, which is handy while you are still sketching, and it rewrites a detailed one. Once your prompt is a precise shot description, set the field to false so the wording you tuned is the wording that runs.
Adaptive frame unless you pin one
aspect_ratio defaults to adaptive, which lets the model choose the frame. Name 16:9, 4:3, 1:1, 3:4 or 9:16 when the delivery format is fixed: the fence example asks for 9:16 for a vertical frame, while the perfume, monochrome and tattoo examples all pin 16:9.
Request parameters
| Parameter | Required | Description |
|---|---|---|
prompt | Yes | Subject, one action, one camera move, then light and sound. At 4K a vague brief costs real money, so write the shot rather than a mood. at least 1 characters · at most 20000 characters |
resolution | No | 1080p, 2k or 4k, default 1080p. |
aspect_ratio | No | 16:9, 4:3, 1:1, 3:4, 9:16 or adaptive. Defaults to adaptive, which lets the model choose; name a ratio when the delivery format is fixed. |
duration_seconds | No | Any whole number from 2 to 30, default 5, or -1 for smart duration, where the model picks the length: the 30-second maximum is reserved up front and the charge settles on the le… |
generate_audio | No | On by default. Sound is generated with the picture and arrives inside the same file. Default: |
enable_prompt_expansion | No | On by default on this family. It fills out thin briefs and rewrites detailed ones, so turn it off once your prompt is a precise shot description. Default: |
seed | No | 0 to 2147483647. Fix it while you tune resolution or duration, otherwise every rerun changes two things at once. |
Pricing
| Specification | Price |
|---|---|
| $0.144 / second |
| $0.16 / second |
| $0.184 / second |
Use cases
Fragrance and beauty spots under hard light
The perfume example is a five-second slow-motion spot: an adult woman in a backless black gown turns from a rain-lashed window while a single hard key runs down her spine and droplets flick from her hair, with a low cello note and rain on the soundtrack. Specular fabric, one hard source and small fast particles break first when footage is enlarged, so inspect exactly those in a 2K or 4K delivery.
Fabric driven by one external force
Two examples direct clothing through a single force instead of describing how it sits. In the monochrome fashion film, three metres of silk chiffon in front of an industrial wind machine whips around the body and twists around one shoulder under a hard key against a black void. In the fence example, jet wash from a landing aircraft presses two people's clothes flat against them. Naming the force gives the fabric a cause to follow.
Prompt guide & pro tips
Explore at 1080p, then re-render the chosen seed
Find the shot at 5 seconds and 1080p with seed fixed, change one field per rerun, and only then send the same prompt and seed with resolution set to 4k. Changing resolution and wording in the same rerun makes it impossible to tell which one moved the result.
Write the shot, not a mood
Subject, one action, one camera move, then light and sound. The tattoo-parlour prompt is a good model: candles and one desk lamp as the only light, gloved hands shading a piece across the ribs, a wince, a slow breath and a grin over the shoulder, a buzzing machine, a very slow push-in. At 4K a vague brief is an expensive way to discover what you meant.
Name the sounds you want to hear
Sound is generated with the picture, so list its sources: the perfume spot asks for "low cello note and rain", the wind-machine film for "the roar of the fan and snapping cloth". Set generate_audio to false when a composer is scoring the spot. The family accepts uncensored prompts with no per-request declaration; consent, rights, age and local law for everyone depicted remain your responsibility.
API quick start
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "alibaba/wan-3.0-pro/text-to-video",
"input": {
"prompt": "A slow aerial shot drifting over a misty pine forest at sunrise",
"resolution": "1080p",
"aspect_ratio": "adaptive",
"duration_seconds": 5
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
See the API reference for authentication, the complete schema, polling, and error handling.



























