Skip to main content

PixVerse - Video Motion Control API Reference

The PixVerse - Video Motion Control model takes a character image and a motion reference video as input, transfers the motion from the video to the target character, and generates a new video where the character reproduces the same movements. Applicable to motion mimicking, choreography replication, character animation generation, and more.

This document applies only to the China (Beijing) region. Use an API key from this region.

Activate the service

  1. Go to the Alibaba Cloud Model Studio console, search for PixVerse, find the PixVerse model card, and click Activate Now.
  2. In the pop-up window, confirm the activation and authorization.

Applicable scope

To ensure a successful API call, make sure that the model, Endpoint URL, and API Key all belong to the same region. Cross-region calls will fail.
The video motion control examples in this topic apply to the China (Beijing) region.

HTTP call

Since video motion control tasks take a relatively long time (typically 1-5 minutes), the API uses asynchronous calls. The entire process consists of two core steps: "Create task -> Poll for result", as follows:

Step 1: Create a task to obtain the task ID

Beijing region: POST https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis Replace {WorkspaceId} with your actual workspace ID.
  • After the task is created, use the returned task_id to query the result. The task_id is valid for 24 hours. Do not create duplicate tasks. Instead, use polling to retrieve the result.
  • For guidance for beginners, see Call APIs with Postman or cURL.

Request parameters

Request headers
Content-Type string (Required)The content type of the request. Must be application/json.Authorization string (Required)Authenticates the request with a Model Studio API key. Example: Bearer sk-xxxx.X-DashScope-Async string (Required)Enables asynchronous processing. HTTP requests support only asynchronous calls. Must be enable.
If this request header is missing, the error "current user api does not support synchronous calls" is returned.
Request body
model string (Required)The model name. Fixed value: pixverse/pixverse-motioncontrol.input object (Required)The basic input information, including the character image and motion video.

Properties

media array (Required)The media resource list. Must contain 1 character image of type image_url and 1 motion video of type video_url.

Element properties

type string (Required)The media type. Valid values:
  • image_url: Character image.
  • video_url: Motion video.
url string (Required)The URL of the media resource.
  • image_url: The URL of the character image. A single-person subject with clear visuals is recommended.
    • File size: Maximum 20 MB.
    • Resolution: Longest edge up to 10000px.
    • Supported formats: PNG, JPEG, WebP.
  • video_url: The URL of the motion video. A single-person subject with clear movements is recommended.
    • File size: Maximum 100 MB.
    • Duration: Up to 30 seconds.
    • Supported formats: MP4, MOV.
parameters object (Required)Video generation parameters, such as output video resolution and watermark settings.

Properties

resolution string (Required)The output video resolution. Valid values: 360P, 540P, 720P. The actual output resolution is adaptively adjusted based on the aspect ratio of the input media.watermark boolean (Optional)Whether to add a watermark. The watermark is located at the bottom-right corner of the video with the fixed text "AI-generated".
  • false: Default value. No watermark is added.
  • true: A watermark is added.
  • Video Motion Control
  • Python SDK
Submit a character image and a motion video to generate a video where the character imitates the motion.
# Replace {WorkspaceId} with your actual workspace ID.
curl --location 'https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis' \
    -H 'X-DashScope-Async: enable' \
    -H "Authorization: Bearer $DASHSCOPE_API_KEY" \
    -H 'Content-Type: application/json' \
    -d '{
    "model": "pixverse/pixverse-motioncontrol",
    "input": {
        "media": [
            {
                "type": "image_url",
                "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250919/adsyrp/move_input_image.jpeg"
            },
            {
                "type": "video_url",
                "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250919/kaakcn/move_input_video.mp4"
            }
        ]
    },
    "parameters": {
        "resolution": "720P",
        "watermark": true
    }
}'

Step 2: Query result by task ID

Beijing region: GET https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/tasks/{task_id}
  • Polling recommendation: Video generation typically takes several minutes. Use a polling mechanism with a reasonable query interval (e.g., 15 seconds) to retrieve results.
  • Task status flow: PENDING (queued) → RUNNING (processing) → SUCCEEDED (success) / FAILED (failure).
  • task_id validity: 24 hours. After expiration, results cannot be queried, and the API will return task status as UNKNOWN.
  • RPS limit: The query API has a default RPS of 20. For higher-frequency queries or event notifications, consider Configure asynchronous task callbacks.
  • More operations: For batch queries, task cancellation, and other operations, see Manage asynchronous tasks.

Request parameters

Request headers
Authorization string (Required)Authenticates the request with a Model Studio API key. Example: Bearer sk-xxxx.
URL path parameters
task_id string (Required)The ID of the task.
  • Query task result
Replace {task_id} with the task_id value returned by the previous API call. The task_id is valid for queries for 24 hours, Replace {WorkspaceId} with your actual workspace ID.
curl -X GET https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/tasks/{task_id} \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"

Response parameters

outputobjectThe task output information.

Properties

task_id stringThe task ID. Valid for queries for 24 hours.task_status stringThe status of the task.

Enumeration values

  • PENDING
  • RUNNING
  • SUCCEEDED
  • FAILED
  • CANCELED
  • UNKNOWN: The task does not exist or its status is unknown.
State transitions during polling:
  • PENDING → RUNNING → SUCCEEDED or FAILED.
  • The initial query status is usually PENDING or RUNNING.
  • When the status changes to SUCCEEDED, the response contains the generated video URL.
  • If the status is FAILED, check the error message and retry the task.
submit_time stringThe time when the task was submitted. format is YYYY-MM-DD HH:mm:ss.SSS.scheduled_time stringThe time when the task was executed. format is YYYY-MM-DD HH:mm:ss.SSS.end_time stringThe time when the task was completed. format is YYYY-MM-DD HH:mm:ss.SSS.video_urlstringThe video URL. Only returned when task_status is SUCCEEDED.The video format is MP4 (H.264 encoding). The video link currently has no expiration time, but it is not recommended for long-term storage. Please download promptly.orig_prompt stringThe original input prompt, corresponding to the request parameter prompt.code stringError code. Returned only for failed requests. See Error codes.message stringDetailed error message. Returned only for failed requests. See Error codes.
usage objectOutput statistics. Only counts successful results.

Properties

duration integerBilling duration in seconds. The output video duration matches the input motion reference video duration, and billing is rounded up.size stringThe resolution of the output video.fps integerThe frame rate of the output video.SR stringThe resolution tier of the output video.video_count integerThe number of videos. Fixed value: 1.
  • Task succeeded
  • Task failed
  • Task query expired
{
    "request_id": "43aa3b9f-71c7-98e0-9529-xxxxxx",
    "output": {
        "task_id": "e699df60-145c-464f-ab6a-xxxxxx",
        "task_status": "SUCCEEDED",
        "submit_time": "2026-07-14 18:15:04.045",
        "scheduled_time": "2026-07-14 18:15:04.093",
        "end_time": "2026-07-14 18:16:17.412",
        "video_url": "https://media.pixverseai.cn/xxxx.mp4"
    },
    "usage": {
        "duration": 6,
        "size": "1280*704",
        "fps": 24,
        "video_count": 1,
        "SR": "720"
    }
}

Error codes

If the model call fails and returns an error message, see Error codes for resolution.
Text Generation
Image Generation
World models
3D Model Generation
Audio
  • Audio generation
Realtime API
Text Embedding
Decision Model
TokenPlan
Model Production