All Products
Search
Document Center

Alibaba Cloud Model Studio:wan2.2-s2v API reference

Last Updated:Mar 15, 2026

wan2.2-s2v generates videos of a person speaking, singing, or performing, with natural lip movements, expressions, and actions, from a single image and an audio file.

  • Audio-driven: An input audio file drives the character in a static image, synchronizing its lip movements, facial expressions, and body actions with the audio.

  • Rich scenarios: Supports three lip-sync scenarios: speaking, singing, and performing.

  • Diverse characters: Supports real people, including portraits, half-body, and full-body images, along with cartoon characters.

  • Output video resolution: Provides 480P and 720P resolution options.

Important

This document applies only to the China (Beijing) region. To use the model, you must use an API key from the China (Beijing) region.

Model and pricing

Model

Unit price

Rate limiting (shared by Alibaba Cloud accounts and RAM users)

Task submission RPS limit

Concurrent tasks

wan2.2-s2v

480P: $0.071677/second

720P: $0.129018/second

5

1

HTTP API

Prerequisites

Step 1: Create a task and get the task ID

POST https://dashscope.aliyuncs.com/api/v1/services/aigc/image2video/video-synthesis
Note
  • Because this model call takes a long time, the task is created through an asynchronous invocation.

  • After the task is created, the system immediately returns a task_id. In the next step, use this task_id to query the task result within 24 hours.

Request parameters

Field

Type

Passing method

Required

Description

Example

Content-Type

String

Header

Yes

The request type. Set the value to application/json.

application/json

Authorization

String

Header

Yes

The API key. The format is Bearer sk-xxx.

Bearer sk-1a**2b

X-DashScope-Async

String

Header

Yes

A static field set to `enable`, which indicates that an asynchronous invocation is used.

enable

model

String

Body

Yes

The model to call.

wan2.2-s2v

input.image_url

String

Body

Yes

The URL of the uploaded image.

  • Image format: JPG, JPEG, PNG, BMP, and WEBP are supported.

  • Image resolution: The width and height of the image must be between 400 and 7,000 pixels.

  • Only HTTP/HTTPS links accessible over the Internet are supported.

http://aaa/bbb.jpg

input.audio_url

String

Body

Yes

The URL of the uploaded audio file.

  • Audio format: WAV and MP3 are supported.

  • Audio limits: The file size must be less than 15 MB, and the duration must be less than 20 seconds.

  • Audio content: The audio must contain clear and loud human speech. Remove interference such as ambient noise and background music.

  • Only HTTP/HTTPS links accessible over the Internet are supported.

http://aaa/bbb.mp3

parameters.resolution

String

Body

No

The video resolution level.

Valid values are 480P and 720P. The default value is 480P.

The model tries to keep the aspect ratio of the output video the same as the input image. It adjusts the total pixels of the video to be close to the selected level while keeping the aspect ratio unchanged.

Example

480P: This resolution is typically 640 × 480 (about 310,000 pixels) with a 4:3 aspect ratio.

720P: This resolution is typically 1280 × 720 (about 920,000 pixels) with a 16:9 aspect ratio.

Example: If the input image has a 4:5 aspect ratio and you select the 480P level, the output video will maintain the 4:5 aspect ratio. The resolution will be adjusted to be close to 310,000 pixels. For example, the output video resolution might be 480 × 600, for a total of 288,000 pixels. This data is for reference only. The actual output may vary.

480P

Response parameters

Field

Type

Description

Example

output.task_id

String

The unique ID of the asynchronous task.

a8532587-fa8c-4ef8-82be-0c46b17950d1

output.task_status

String

The status of the job after the asynchronous task is submitted.

PENDING

request_id

String

The unique ID of the request.

7574ee8f-38a3-4b1e-9280-11c33ab46e51

Sample request

curl 'https://dashscope.aliyuncs.com/api/v1/services/aigc/image2video/video-synthesis/' \
 --header 'X-DashScope-Async: enable' \
 --header "Authorization: Bearer $DASHSCOPE_API_KEY" \
 --header 'Content-Type: application/json' \
 --data '{
     "model": "wan2.2-s2v",
     "input": {
            "image_url": "https://img.alicdn.com/imgextra/i3/O1CN011FObkp1T7Ttowoq4F_!!6000000002335-0-tps-1440-1797.jpg",
            "audio_url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250825/iaqpio/input_audio.MP3"
        },
        "parameters": {
            "resolution": "480P"
        }
    }'

Sample response

{
    "output": {
        "task_id": "a8532587-fa8c-4ef8-82be-xxxxxx", 
    	"task_status": "PENDING"
    },
    "request_id": "7574ee8f-38a3-4b1e-9280-xxxxxx"
}

Step 2: Query the result by task ID

Send a GET request using the task_id from the previous step to query the task status and result. Replace {task_id} in the URL with the actual task ID.

GET https://dashscope.aliyuncs.com/api/v1/tasks/{task_id}
Note
  • Video generation tasks can take 5 to 10 minutes to complete. You can use a polling mechanism and set a reasonable query interval, such as 15 seconds, to retrieve the result.

  • The video_url returned for a successful task is valid for 24 hours. You should download and save the video promptly.

Request parameters

Field

Type

Passing method

Required

Description

Example

Authorization

String

Header

Yes

API key in the format Bearer sk-xxx.

Bearer sk-xxx

task_id

String

Url Path

Yes

Task ID to query.

a8532587-fa8c-4ef8-82be-0c46b17950d1

Response parameters

Field

Type

Description

Example

output.task_id

String

Task ID.

a8532587-fa8c-4ef8-82be-0c46b17950d1

output.task_status

String

Task status. Possible values:

  • PENDING

  • RUNNING

  • SUCCEEDED

  • FAILED

  • UNKNOWN

  • CANCELED

SUCCEEDED

output.submit_time

String

Task submission time.

2025-09-01 09:37:27.468

output.scheduled_time

String

Task start time.

2025-09-01 09:37:34.885

output.end_time

String

Task completion time.

2025-09-01 09:40:20.734

output.results.video_url

String

Generated video URL (valid for 24 hours — please download promptly).

https://xxx/1.mp4?Expires=xxx

usage.duration

Float

Video duration in seconds (used for per-second billing).

10.23

usage.video_count

Integer

Number of videos generated.

1

usage.SR

Integer

Video resolution tier.

480

usage.size

String

Video resolution.

"size": "640*480"

usage.fps

Integer

Video frame rate.

"fps": 16

output.code

String

Error code (returned only on failure).

InvalidParameter

output.message

String

Error details (returned only on failure).

The request is missing required parameters or in a wrong format

request_id

String

Unique request ID.

7574ee8f-38a3-4b1e-9280-11c33ab46e51

Sample request

Replace 86ecf553-d340-4e21-xxxxxxxxx with your task ID.

curl -X GET https://dashscope.aliyuncs.com/api/v1/tasks/86ecf553-d340-4e21-xxxxxxxxx \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"
Note

Task results are retained for 24 hours and then automatically purged.

Sample responses

Successful response

Save task results within 24 hours before automatic purging.

{
    "output": {
        "task_id": "bcae8761-f242-4775-a11e-xxxxxx",
        "task_status": "SUCCEEDED",
        "submit_time": "2025-09-01 09:37:27.468",
        "scheduled_time": "2025-09-01 09:37:34.885",
        "end_time": "2025-09-01 09:40:20.734",
        "results": {
            "video_url": "http://dashscope-result-hz.oss-cn-hangzhou.aliyuncs.com/1d/xxx.mp4?Expires=xxxxxx"
        }
    },
    "usage": {
        "duration": 18.13,
        "size": "512*640",
        "fps": 16,
        "video_count": 1,
        "SR": 480
    },
    "request_id": "28cfedb1-cd60-9e0c-b920-xxxxxx"
}

Failed response

{
    "request_id": "8d49f522-f6a4-9eed-b322-xxxxxx",
    "output": {
        "task_id": "101ad32f-7653-4ae9-8f22-xxxxxx",
        "task_status": "FAILED",
        "submit_time": "2025-09-01 11:43:41.174",
        "scheduled_time": "2025-09-01 11:43:48.937",
        "end_time": "2025-09-01 11:43:49.802",
        "code": "InvalidURL",
        "message": "Required URL is missing or invalid, please check the request URL."
    }
}

Billing and rate limiting

  • For free quota and unit price, see Model invocation pricing.

  • For rate limits, see Wan series.

  • Billing details:

    • Billing covers output only (per video second successfully generated).

    • Failures do not incur charges or consume the free quota.

Error codes

If a model call fails and an error message is returned, see Error messages.