# Wan 3.0 request parameters

Same endpoint as the other video models:

- China create: `POST https://api.xrtoken.net/v1/videos/generations`
- International create: `POST https://api.xrtoken.ai/v1/videos/generations`
- Query: `GET {same host}/v1/videos/generations/{id}`

`wan3.0-video` (standard) and `wan3.0-video-prime` (faster, same capability) are available on both the China and international sites. Wan 3.0 is an all-in-one model: text-to-video, image-to-video (first / first+last frame), and reference-to-video (image / video / audio / file / web page) share one request shape. Max 30 seconds, 30 fps.

Billing is per second: `cost = unit price × (input video seconds + output video seconds)`. No input video means output seconds only. Audio on/off is the same price. Current sell price is 30% off the official list.

China (CNY):

| Model | 480P | 720P | 1080P |
|---|---|---|---|
| `wan3.0-video` | ¥0.21 / s (list ¥0.3) | ¥0.42 / s (list ¥0.6) | ¥0.84 / s (list ¥1.2) |
| `wan3.0-video-prime` | ¥0.315 / s (list ¥0.45) | ¥0.63 / s (list ¥0.9) | ¥1.26 / s (list ¥1.8) |

International (USD, official CNY ÷ 7.15):

| Model | 480P | 720P | 1080P |
|---|---|---|---|
| `wan3.0-video` | $0.0294 / s (list $0.0420) | $0.0587 / s (list $0.0839) | $0.1175 / s (list $0.1678) |
| `wan3.0-video-prime` | $0.0441 / s (list $0.0629) | $0.0881 / s (list $0.1259) | $0.1762 / s (list $0.2517) |

## Parameters

Prefer the same `content` array as Seedance. The native DashScope `input` + `parameters` body is also accepted.

| Field | Required | Values |
|---|---|---|
| `model` | yes | `wan3.0-video` or `wan3.0-video-prime` |
| `content` or `prompt` | conditional | at least one of these or `input.media` |
| `duration` | no | integer `2`–`30`, default `5`. `-1` = adaptive |
| `resolution` | no | `480P` / `720P` / `1080P` (`480p` aliases `480P`), default `1080P` |
| `ratio` | no | `adaptive` (default), `16:9`, `4:3`, `1:1`, `3:4`, `9:16` |
| `generate_audio` | no | default `true` (maps to upstream `audio`) |
| `seed` | no | `0`–`2147483647` |
| `prompt_extend` | no | default `true` |
| `watermark` | no | default `false` |

Media items in `content` use `type` + `role`:

| type | role | cap |
|---|---|---|
| `image_url` | `first_frame` | 1 |
| `image_url` | `last_frame` | 1 |
| `image_url` | `reference_image` | 10 |
| `video_url` | `reference_video` | 5, total ≤ 15 s |
| `audio_url` | `reference_audio` | 5, total ≤ 15 s |

Rules:

- Media URLs must be public `https`, or `data:{MIME};base64,...`. This model does not use `asset://`.
- Text-to-video, first/last-frame i2v, and reference-to-video are mutually exclusive. Do not mix `first_frame` / `last_frame` with any `reference_*`.
- In reference mode the prompt may say "image 1" / "video 1" / "audio 1" for items in `content` order (images and videos are counted separately).
- With a reference video: input video duration + output duration must be ≤ 30 s.
- `4k`, `21:9`, and `service_tier` are not supported.

You may also send the native DashScope body: `input.prompt`, `input.media[].type` (`first_frame` / `last_frame` / `reference_image` / `reference_video` / `reference_audio` / `file` / `link`), and `parameters`.

## Examples

See the Chinese page for curl / JSON samples. Query the returned task `id` until `succeeded`; the video URL is `content.video_url` or top-level `video_url`.
