Doc version:v1.0.0 | Last updated:2026-07-22 This platform fully supports the official Tongyi Wanxiang (Wan) video generation API. Requests and responses are transparently proxied; parameter semantics are identical to the official API.
model and request body structure:| Protocol | Applicable models | Input method | Capabilities |
|---|---|---|---|
| New (recommended) | wan2.7-i2v and other wan2.7-series models | input.media array | First-frame-to-video, first/last-frame-to-video, audio-driven generation, video continuation |
| Legacy | wan2.6-i2v, wan2.6-i2v-flash, wan2.5-i2v-preview, wan2.2-i2v-plus, wan2.2-i2v-flash, wanx2.1-i2v-turbo, wanx2.1-i2v-plus | input.img_url field | First-frame-to-video only; wan2.6/wan2.5 support audio (audio_url) and auto dubbing, wan2.2/wanx2.1 support video effect templates |
POST https://platform.dataeyes.ai/ali/api/v1/services/aigc/video-generation/video-synthesis| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
Content-Type | string | Yes | application/json | Data exchange format |
Authorization | string | Yes | Authentication, Bearer {API_KEY} |
The X-DashScope-Async: enableheader required by the official API is added automatically by the platform; you do not need to include it.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
model | string | Yes | Model name, e.g. wan2.7-i2v | |
input.prompt | string | No | Text prompt, Chinese or English, up to 5000 characters; excess is automatically truncated | |
input.negative_prompt | string | No | Negative prompt, up to 500 characters; excess is automatically truncated | |
input.media | array | Yes | List of media assets; each element is a {type, url} object | |
input.media[].type | string | Yes | Asset type: first_frame (first-frame image), last_frame (last-frame image), driving_audio (driving audio), first_clip (leading video clip, for video continuation). Each type may appear at most once in the array | |
input.media[].url | string | Yes | Asset URL. Public HTTP(S) URLs are supported; images also support Base64 (data:{MIME_type};base64,{base64_data}), while audio/video do not support Base64 | |
parameters.resolution | string | No | 1080P | Resolution tier, 720P or 1080P; directly affects cost. Output is scaled automatically to the tier's total pixel count, keeping the aspect ratio as close to the input asset as possible |
parameters.duration | integer | No | 5 | Video duration in seconds, integer in [2, 15]; directly affects cost. For video continuation, this is the final total duration (input clip + continuation), and billing is based on the total duration |
parameters.prompt_extend | boolean | No | true | Whether to enable intelligent prompt rewriting; noticeably improves short prompts but increases processing time |
parameters.watermark | boolean | No | false | Whether to add an "AI-generated" watermark at the bottom-right corner of the video |
parameters.seed | integer | No | Random | Random seed, range [0, 2147483647]; identical seeds do not guarantee identical results |
input.media only supports the following combinations; invalid combinations return an error:| Task type | Valid combination | Description |
|---|---|---|
| First-frame-to-video | first_frame | Generate a video with the image as the first frame; the model dubs automatically (background music / sound effects) |
| First frame + audio-driven | first_frame + driving_audio | Drive the visuals with the provided audio (lip sync, motion beat matching) |
| First/last-frame-to-video | first_frame + last_frame | Generate a transition video from the first frame to the last frame |
| First/last frames + audio-driven | first_frame + last_frame + driving_audio | First/last-frame transition + audio-driven |
| Video continuation | first_clip; first_clip + last_frame | Continue after the input video clip; a last frame can optionally be specified |
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
model | string | Yes | Model name, e.g. wan2.6-i2v, wan2.6-i2v-flash, wan2.2-i2v-plus, wanx2.1-i2v-turbo | |
input.prompt | string | No | Text prompt, Chinese or English; wan2.6/wan2.5 series up to 1500 characters, wan2.2/wanx2.1 series up to 800 characters, excess is automatically truncated. Ignored when a template effect is used | |
input.negative_prompt | string | No | Negative prompt, up to 500 characters | |
input.img_url | string | Yes | First-frame image URL. Public HTTP(S) URL or Base64 (data:{MIME_type};base64,...) | |
input.audio_url | string | No | wan2.6 / wan2.5 series only. Audio URL (public URL); if provided, the video is generated with this audio, otherwise the model dubs automatically | |
input.template | string | No | wan2.2 / wanx2.1 series only. Video effect template name (e.g. flying); when used, prompt is ignored, and effect availability depends on the model | |
parameters.resolution | string | No | Model-dependent | Resolution tier; directly affects cost. Aspect ratio is kept as close to img_url as possible. See the tier table below for per-model values |
parameters.duration | integer | No | Model-dependent | Video duration in seconds; directly affects cost. See the tier table below for per-model values |
parameters.prompt_extend | boolean | No | true | Whether to enable intelligent prompt rewriting |
parameters.shot_type | string | No | single | wan2.6 series only. single (single shot) / multi (multi-shot storytelling); only takes effect when prompt_extend=true, precedence: shot_type > prompt |
parameters.audio | boolean | No | true | wan2.6-i2v-flash only. Whether to generate a video with audio; pricing differs between audio and silent output. Precedence: audio > audio_url — when audio=false, the output is silent and billed as silent even if audio_url is provided |
parameters.watermark | boolean | No | false | Whether to add an "AI-generated" watermark |
parameters.seed | integer | No | Random | Random seed, range [0, 2147483647] |
The wan2.2 and wanx2.1 series generate silent videos by default.
| Item | Requirement |
|---|---|
| Format | JPEG, JPG, PNG (transparency not supported), BMP, WEBP |
| Resolution | Both width and height within [240, 8000] pixels |
| Aspect ratio | 1:8 to 8:1 |
| File size | wan2.7 / wan2.6 / wan2.5: up to 20MB; wan2.2 / wanx2.1: up to 10MB |
| Input method | Public HTTP(S) URL, or Base64 (supported MIME types: image/jpeg, image/png, image/bmp, image/webp) |
| Item | wan2.7 (driving_audio) | wan2.6 / wan2.5 (audio_url) |
|---|---|---|
| Format | wav, mp3 | wav, mp3 |
| Duration | 2–30 seconds | 3–30 seconds |
| File size | ≤15MB | ≤15MB |
| Truncation rule | Audio longer than duration is trimmed to the first duration seconds; if shorter, the remainder is silent (e.g. 3s audio, 5s video → first 3s with audio, last 2s silent) | Same as left |
| Semantics | Provided = audio-driven (lip sync, motion beat matching); omitted = auto-generated background music / sound effects | Provided = generate the video with this audio; omitted = auto dubbing |
| Input method | Public HTTP(S) URL (Base64 not supported) | Same as left |
| Item | Requirement |
|---|---|
| Format | mp4, mov |
| Duration | 2–10 seconds |
| Resolution | Both width and height within [240, 4096] pixels, aspect ratio 1:8 to 8:1 |
| File size | ≤100MB |
| Continuation rule | The continuation limit is controlled by duration: e.g. duration=15 with a 3s input clip → 12s continuation, 15s total output, billed as 15s |
The output video's aspect ratio is determined by the input asset (first-frame image / leading video clip), scaled automatically to the resolution tier's total pixel count; video width and height must be multiples of 16, so there may be a slight deviation from the original image's aspect ratio.
| Model | resolution options | resolution default | duration values (seconds) | duration default |
|---|---|---|---|---|
wan2.7-i2v | 720P, 1080P | 1080P | Integer [2, 15] | 5 |
wan2.6-i2v | 720P, 1080P | 1080P | Integer [2, 15] | 5 |
wan2.6-i2v-flash | 720P, 1080P | 1080P | Integer [2, 15] | 5 |
wan2.5-i2v-preview | 480P, 720P, 1080P | 1080P | 5, 10 | 5 |
wan2.2-i2v-flash | 480P, 720P, 1080P | 720P | Fixed 5, not modifiable | 5 |
wan2.2-i2v-plus | 480P, 1080P | 1080P | Fixed 5, not modifiable | 5 |
wanx2.1-i2v-turbo | 480P, 720P | 720P | 3, 4, 5 | 5 |
wanx2.1-i2v-plus | 720P | 720P | Fixed 5, not modifiable | 5 |
resolutionanddurationdirectly affect cost (billed by resolution tier and duration in seconds);wan2.6-i2v-flashhas different prices for audio and silent output.
curl --request POST \
--url 'https://platform.dataeyes.ai/ali/api/v1/services/aigc/video-generation/video-synthesis' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "wan2.7-i2v",
"input": {
"prompt": "The camera slowly pushes forward as light and shadow flow across the scene",
"media": [
{
"type": "first_frame",
"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260424/mvzfud/hh-v2v-girl.jpg"
}
]
},
"parameters": {"resolution": "1080P", "duration": 5}
}'curl --request POST \
--url 'https://platform.dataeyes.ai/ali/api/v1/services/aigc/video-generation/video-synthesis' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "wan2.7-i2v",
"input": {
"prompt": "Petals drift down in the wind, from full bloom to withering",
"media": [
{
"type": "first_frame",
"url": "https://wanx.alicdn.com/material/20250318/first_frame.png"
},
{
"type": "last_frame",
"url": "https://wanx.alicdn.com/material/20250318/last_frame.png"
}
]
},
"parameters": {"resolution": "720P", "duration": 5}
}'curl --request POST \
--url 'https://platform.dataeyes.ai/ali/api/v1/services/aigc/video-generation/video-synthesis' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "wan2.7-i2v",
"input": {
"prompt": "The character sways to the rhythm of the music with lively expressions",
"media": [
{
"type": "first_frame",
"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260424/mvzfud/hh-v2v-girl.jpg"
},
{
"type": "driving_audio",
"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250825/iaqpio/input_audio.MP3"
}
]
},
"parameters": {"resolution": "1080P", "duration": 5}
}'curl --request POST \
--url 'https://platform.dataeyes.ai/ali/api/v1/services/aigc/video-generation/video-synthesis' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "wan2.6-i2v",
"input": {
"img_url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260424/mvzfud/hh-v2v-girl.jpg",
"prompt": "The character slowly turns around, gazing into the distance"
},
"parameters": {"resolution": "720P", "duration": 5}
}'{
"output": {
"task_status": "PENDING",
"task_id": "0385dc79-5ff8-4d82-bcb6-xxxxxx"
},
"request_id": "4909100c-7b5a-9f92-bfe5-xxxxxx"
}| Field | Type | Description |
|---|---|---|
output.task_id | string | Task ID used for polling; valid for 24 hours. Do not create duplicate tasks — just keep polling |
output.task_status | string | Task status; PENDING on successful creation. See Overview for the full enum |
request_id | string | Unique request identifier, useful for troubleshooting |
code / message | string | Error code and details, returned only when creation fails (e.g. InvalidApiKey, InvalidParameter) |
task_id; once the status is SUCCEEDED, get the video URL from output.video_url (valid for 24 hours):GET https://platform.dataeyes.ai/ali/api/v1/tasks/{task_id}