Seedance 2.0 Video Generation
Seedance 2.0 supports text-to-video, image-to-video, first-last-frame generation, multi-reference generation, and compatible edit or extension modes. New integrations should use the new create task page, not the deprecated old task interface.
Supported Models
| Model | Notes |
|---|---|
seedance2.0-480p | Standard tier. |
seedance2.0-720p | Standard tier. |
seedance2.0-1080p | Standard tier. |
seedance2.0-4k | 4K tier when enabled. |
seedance2.0-fast-480p | Fast tier. |
seedance2.0-fast-720p | Fast tier. |
seedance2.0-mini-480p | Mini tier. |
seedance2.0-mini-720p | Mini tier. |
Endpoint
POST /v1/video/generations
GET /v1/videos/{task_id}
Some compatibility clients may see /v1/videos/generations, but the selected source page uses /v1/video/generations for task creation.
Authentication
Authorization: Bearer sk-***
Content-Type: application/json
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
model | string | Yes | Seedance 2.0 model ID. |
prompt | string | Yes | Prompt. Prompt-only requests are text-to-video. |
duration | integer/string | Conditional | Source range: any value from 5 to 15. |
aspect_ratio | string | No | 9:16, 1:1, or 16:9. |
image | string | Conditional | Single source image for image-to-video. |
last_image | string | Conditional | Last frame image; use with image. |
images | string[] | Conditional | Reference image URLs for all-purpose reference mode. Maximum 9. |
videos | string[] | Conditional | Reference video URLs. Maximum 3; each 2 to 15 seconds; total duration no more than 15 seconds. |
audios | string[] | No | Reference audio URLs. |
extra_body.generate_audio | boolean | No | Whether to generate video with audio. |
extra_body.seed | integer | No | Random seed. |
extra_body.watermark | boolean/string | No | Watermark switch. |
extra_body.camera_fixed | boolean/string | No | Fixed camera switch. |
extra_body.return_last_frame | boolean/string | No | Whether to return the last frame. |
extra_body.operation | string | Compatibility only | reference_to_video, edit_video, extend_video, or first_last_frame; ignored by content-array style clients. |
Request Example
curl -X POST "{BASE_URL}/v1/video/generations" \
-H "Authorization: Bearer sk-***" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance2.0-720p",
"prompt": "A clean commercial product video with slow camera movement, soft reflections, and realistic lighting.",
"duration": 8,
"aspect_ratio": "16:9",
"extra_body": {
"generate_audio": false,
"seed": 42,
"watermark": false
}
}'
Multi-Reference Example
curl -X POST "{BASE_URL}/v1/video/generations" \
-H "Authorization: Bearer sk-***" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance2.0-fast-720p",
"prompt": "Create a fast fashion lookbook clip while preserving the product identity.",
"images": [
"https://example.com/model.png",
"https://example.com/outfit.png"
],
"duration": 6,
"aspect_ratio": "9:16",
"extra_body": {
"generate_audio": true,
"camera_fixed": false
}
}'
Query Task Status
curl "{BASE_URL}/v1/videos/task_xxx" \
-H "Authorization: Bearer sk-***"
{
"id": "task_xxx",
"task_id": "task_xxx",
"object": "video.generation.job",
"model": "seedance2.0-720p",
"status": "completed",
"progress": 100,
"video_url": "https://example.com/output.mp4"
}
Billing Notes
Seedance billing depends on the selected model tier, output resolution, duration, and whether reference media or audio generation is used. Final billing should follow the platform settlement record.
Common Errors
- Using the deprecated create task interface for a new integration.
- Sending more than
9reference images. - Sending more than
3reference videos or reference videos whose total duration exceeds15seconds. - Using a
durationoutside5to15. - Passing incompatible operation hints together with the new input format.