Overview
Build Seedance 2.x Video integrations with A2E. Review authentication, request parameters, task creation, status, and result endpoints.
Primary Endpoint
POST
/api/v1/seedance2Video/startStart Seedance 2.x video generation
Request Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | No | - |
| mode | enum: text-to-video | image-to-video | first-last-frames | reference | No | image-to-video uses image_url (+ optional last_frame_url); first-last-frames uses first_frame_url + last_frame_url; reference accepts any combination of reference_urls (image) / video_urls / audio_urls. On Seedance 2.0 audio cannot be used alone and must accompany at least one image or video reference; on Seedance 2.5 audio-only references are supported. |
| model_version | enum: standard | mini | fast | 2.5 | No | standard / mini / fast select a Seedance 2.0 tier. "2.5" selects Seedance 2.5, which currently has a single tier and higher input limits (see duration / reference_urls / video_urls / audio_urls). |
| omni_reference_task_type | enum: reference | edit | extend | No | Seedance 2.5 reference-mode task hint. edit uses ratio=adaptive and duration=-1; extend uses ratio=adaptive; reference keeps the requested ratio and duration. edit currently accepts exactly one video_url. auto is intentionally not exposed because its output duration is unknown before billing. |
| prompt | string | Yes | - |
| image_url | string | No | First frame for image-to-video mode. |
| first_frame_url | string | No | Required for first-last-frames mode. |
| last_frame_url | string | No | Optional last frame for image-to-video; required for first-last-frames. |
| reference_urls | array<string> | No | Reference images for reference mode. Max 9 on Seedance 2.0, max 30 on Seedance 2.5. |
| video_urls | array<string> | No | Reference videos (mp4/mov). Seedance 2.0: max 3 clips, each 2-15s, total <= 15 × number_of_videos seconds. Seedance 2.5: max 10 clips with a combined cap of 30s; omni_reference_task_type=edit currently requires exactly one clip. The server always probes video_urls (public hosts only, with separate connection/download/parse limits) as the authoritative duration for billing. |
| audio_urls | array<string> | No | Reference audios (mp3/wav). Seedance 2.0: max 3 clips, each 2-15s, total <=15s, and audio cannot be used standalone (at least one image or video reference is required). Seedance 2.5: max 10 clips and audio-only references are allowed. |
| input_video_duration | number | No | Optional client estimate of the total reference-video duration in seconds. This value is never trusted for final billing: the server always probes video_urls and bills on max(measured, this value), so passing a smaller number does not lower the price. Must be within [2, 15 × number_of_videos] on Seedance 2.0 and within [2, 30] on Seedance 2.5. |
| duration | integer | No | Output length in seconds. Max 15 on Seedance 2.0; max 30 on Seedance 2.5. Seedance 2.5 edit tasks require -1. |
| aspect_ratio | enum: adaptive | 21:9 | 16:9 | 4:3 | 1:1 | 3:4 | 9:16 | No | - |
| resolution | enum: 480p | 720p | 1080p | 4k | No | Only the standard tier of Seedance 2.0 supports 4k. Seedance 2.5 supports 480p / 720p / 1080p. The fast / mini tiers of Seedance 2.0 are limited to 480p / 720p. |
| generate_audio | boolean | No | Defaults to true to match billing (audio is included); pass false explicitly to disable. |
| minor_suspected_skip | boolean | No | Skip soft minor-suspect block (code 1004); hard CSAM block (code 1003) is always enforced. |
| webhook_url | string | No | HTTPS URL to receive task.completed / task.failed notifications. Best-effort delivery, single attempt, no retries; clients should treat the detail API as the source of truth. |
| webhook_token | string | No | Optional plaintext token returned in the X-A2e-Webhook-Token header so receivers can verify the request originated from a2e. |
Request Example
curl -X POST "https://www.a2e.com.cn/api/v1/seedance2Video/start" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "My generation task",
"mode": "text-to-video",
"model_version": "standard",
"omni_reference_task_type": "reference",
"prompt": "A cinematic scene with natural motion",
"image_url": "https://example.com/reference.jpg",
"first_frame_url": "https://example.com/reference.jpg",
"last_frame_url": "https://example.com/reference.jpg",
"reference_urls": "https://example.com/reference.jpg",
"video_urls": "https://example.com/reference.jpg",
"audio_urls": "https://example.com/reference.jpg",
"input_video_duration": 1
}'Responses
200
Task started successfully
401
Unauthorized - Invalid or missing bearer token