Seedance V3 (Native)
Native Seedance V3 (doubao-seedance-*) uses the Volcengine-native protocol: request/response bodies are the official Volcengine format, and the platform handles auth / channel selection / task management. It ships with the /v3/assets asset library.
Difference from Seedance_sup
- This page: native Seedance V3 (
doubao-seedance-*), native protocol/v3/video/tasks; - Seedance_sup (
seedance-2-0family): unified/v1/videos(OpenAI Video style) — see Seedance_sup. - Model names, endpoints and asset libraries differ — do not mix them up.
Endpoints
- Create task (native payload):
POST $URL/v3/video/tasks - Query task:
GET $URL/v3/video/tasks/{task_id} - Cancel task:
DELETE $URL/v3/video/tasks/{task_id}
Available Models
| Model Name | Positioning | Supported Resolutions |
|---|---|---|
doubao-seedance-2.5 | Latest flagship, best quality & consistency | 480p / 720p |
doubao-seedance-2.0 | Standard, highest quality | 480p / 720p / 1080p / 4k |
doubao-seedance-2.0-fast | Fast, balance of speed and quality | 480p / 720p |
doubao-seedance-2.0-mini | Lightweight, best value | 480p / 720p |
doubao-seedance-1.5-pro | 1.5 pro | 480p / 720p / 1080p |
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
model | string | Yes | Model name from the table above |
content | array | Yes | Multi-modal array: `{type:'text' |
resolution | string | No | 480p/720p/1080p/4k (see model table for supported ranges per model), default 720p |
ratio | string | No | 16:9/9:16/1:1/4:3/3:4/21:9, default 16:9 |
duration | integer | No | 5/10 (seconds), default 5 |
generate_audio | boolean | No | Generate audio, default true |
service_tier | string | No | default/flex/batch (default=realtime, flex/batch=degraded tier) |
callback_url | string | No | Completion callback URL |
Request Example
Text-to-video
curl $URL/v3/video/tasks \
-H "Authorization: Bearer $YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2.0",
"content": [
{ "type": "text", "text": "A cat wearing sunglasses walking on a neon street" }
],
"resolution": "720p",
"ratio": "16:9",
"duration": 5,
"generate_audio": true
}'Image-to-video
curl $URL/v3/video/tasks \
-H "Authorization: Bearer $YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2.0",
"content": [
{ "type": "text", "text": "Make the person in the frame turn and walk toward the camera" },
{ "type": "image_url", "image_url": { "url": "https://example.com/ref.png" } }
],
"resolution": "720p",
"ratio": "16:9",
"duration": 5,
"generate_audio": true
}'Response Fields
Create returns task info; query returns the latest status:
| Field | Type | Description |
|---|---|---|
id | string | Task ID (native task_id) |
model | string | Model actually used |
status | string | Task status (queued/in_progress/succeeded/failed etc., per native payload) |
content | array | Task detail, consistent with the native payload |
created_at | integer | Creation timestamp (seconds) |
Response Example
{ "id": "task_xxxxxxxx", "model": "doubao-seedance-2.0", "status": "in_progress", "created_at": 1785000000 }After completion (structure per native payload):
{ "id": "task_xxxxxxxx", "model": "doubao-seedance-2.0", "status": "succeeded", "content": { "video_url": "https://.../seedance-v3-xxxx.mp4" } }Query / Cancel
| Operation | Method & Path | Notes |
|---|---|---|
| Query task | GET $URL/v3/video/tasks/{task_id} | Returns the native payload |
| Cancel task | DELETE $URL/v3/video/tasks/{task_id} | Cancel a queued task; delete a terminal record |
# Query
curl $URL/v3/video/tasks/{task_id} \
-H "Authorization: Bearer $YOUR_API_KEY"
# Cancel
curl -X DELETE $URL/v3/video/tasks/{task_id} \
-H "Authorization: Bearer $YOUR_API_KEY"Asset Library
Native Seedance V3 ships with /v3/asset-groups and /v3/assets (groups + assets, strictly isolated per customer). Put asset URLs into content[] via image_url / video_url — see Asset Library V3.
FAQ
Q: 400 / parameter errors?
Check that content[] follows the Volcengine-native format (text / image_url / video_url types); video_url assets must be uploaded to the library and finish processing first.
Q: What about timeouts?
Tasks stuck over 20 minutes are auto-failed and won't be retried indefinitely.
