curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "doubao-seedance-1-0-pro-fast",
"prompt": "Sunset at the beach, golden sunlight on the sea, waves gently hitting the sand",
"duration": 5,
"aspect_ratio": "16:9",
"resolution": "720p"
}'
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "doubao-seedance-1-0-pro-quality",
"prompt": "A girl spinning under cherry blossom trees, petals falling with the wind",
"duration": 5,
"aspect_ratio": "9:16",
"resolution": "1080p"
}'
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "doubao-seedance-1-0-pro-quality",
"prompt": "Scene transitions from day to night, city lights gradually turning on",
"duration": 5,
"image_with_roles": [
{"url": "https://example.com/day.png", "role": "first_frame"},
{"url": "https://example.com/night.png", "role": "last_frame"}
]
}'
import requests
response = requests.post(
"https://toapis.com/v1/videos/generations",
headers={
"Authorization": "Bearer your-ToAPIs-key",
"Content-Type": "application/json"
},
json={
"model": "doubao-seedance-1-0-pro-fast",
"prompt": "Sunset at the beach, golden sunlight on the sea, waves gently hitting the sand",
"duration": 5,
"aspect_ratio": "16:9",
"resolution": "720p"
}
)
task = response.json()
print(f"Task ID: {task['id']}")
print(f"Status: {task['status']}")
const response = await fetch('https://toapis.com/v1/videos/generations', {
method: 'POST',
headers: {
'Authorization': 'Bearer your-ToAPIs-key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'doubao-seedance-1-0-pro-fast',
prompt: 'Sunset at the beach, golden sunlight on the sea, waves gently hitting the sand',
duration: 5,
aspect_ratio: '16:9',
resolution: '720p'
})
});
const task = await response.json();
console.log(`Task ID: ${task.id}`);
console.log(`Status: ${task.status}`);
{
"id": "task_vid_xyz789ghi012",
"object": "generation.task",
"model": "doubao-seedance-1-0-pro-fast",
"status": "queued",
"progress": 0,
"created_at": 1703884800,
"metadata": {}
}
doubao-seedance-1-0-pro
Doubao SeeDance 비디오 생성
Generate videos using ByteDance Doubao SeeDance model
POST
/
v1
/
videos
/
generations
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "doubao-seedance-1-0-pro-fast",
"prompt": "Sunset at the beach, golden sunlight on the sea, waves gently hitting the sand",
"duration": 5,
"aspect_ratio": "16:9",
"resolution": "720p"
}'
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "doubao-seedance-1-0-pro-quality",
"prompt": "A girl spinning under cherry blossom trees, petals falling with the wind",
"duration": 5,
"aspect_ratio": "9:16",
"resolution": "1080p"
}'
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "doubao-seedance-1-0-pro-quality",
"prompt": "Scene transitions from day to night, city lights gradually turning on",
"duration": 5,
"image_with_roles": [
{"url": "https://example.com/day.png", "role": "first_frame"},
{"url": "https://example.com/night.png", "role": "last_frame"}
]
}'
import requests
response = requests.post(
"https://toapis.com/v1/videos/generations",
headers={
"Authorization": "Bearer your-ToAPIs-key",
"Content-Type": "application/json"
},
json={
"model": "doubao-seedance-1-0-pro-fast",
"prompt": "Sunset at the beach, golden sunlight on the sea, waves gently hitting the sand",
"duration": 5,
"aspect_ratio": "16:9",
"resolution": "720p"
}
)
task = response.json()
print(f"Task ID: {task['id']}")
print(f"Status: {task['status']}")
const response = await fetch('https://toapis.com/v1/videos/generations', {
method: 'POST',
headers: {
'Authorization': 'Bearer your-ToAPIs-key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'doubao-seedance-1-0-pro-fast',
prompt: 'Sunset at the beach, golden sunlight on the sea, waves gently hitting the sand',
duration: 5,
aspect_ratio: '16:9',
resolution: '720p'
})
});
const task = await response.json();
console.log(`Task ID: ${task.id}`);
console.log(`Status: ${task.status}`);
{
"id": "task_vid_xyz789ghi012",
"object": "generation.task",
"model": "doubao-seedance-1-0-pro-fast",
"status": "queued",
"progress": 0,
"created_at": 1703884800,
"metadata": {}
}
중국 본토 사용자 안내: 중국 본토 사용자는
https://toapis.cn 를 API 엔드포인트(Base URL)로 사용해 주세요. 본 문서의 예시에서 https://toapis.com 을 https://toapis.cn 로 바꿔 주세요.- ByteDance Doubao video generation model
- Use model parameter to select
doubao-seedance-1-0-pro-fastordoubao-seedance-1-0-pro-qualitymodel - Supports text-to-video generation
- Supports first frame / last frame / reference image control
- Async task management, query results by task ID
Important Change: For better performance and cost control, we no longer support passing base64 image data directly in
image_urls. Please use the Upload 이미지 API first to upload images and get URLs, then call this endpoint.Authorizations
string
필수
All endpoints require Bearer Token authenticationGet your API Key from the API Key Management PageAdd to request header:
Authorization: Bearer YOUR_API_KEY
Body
string
기본값:"doubao-seedance-1-0-pro-fast"
필수
Video generation model nameAvailable models:
doubao-seedance-1-0-pro-fast- Fast version (40-90 seconds generation)doubao-seedance-1-0-pro-quality- Quality version (90-300 seconds generation)
boolean
기본값:false
선택 사항이며 기본값은
false입니다. true로 설정하면 선택된 채널의 지원 여부에 따라 소재를 준비하고 심사합니다. 비공개 소재 라이브러리가 없는 채널은 심사를 건너뛰고 기존 생성 흐름을 사용합니다.다음 필드에 미디어를 포함하는 비동기 생성 요청에 사용할 수 있습니다: image_urls, image_with_roles.텍스트만 있거나 metadata에만 소재를 지정한 요청에서는 생략하거나 false로 설정하세요. 별도의 remix 또는 extend API에는 적용되지 않습니다. true이면 asset://를 거부합니다. 모델의 기존 미디어 형식과 개수 제한은 그대로 적용됩니다. 요청 시 소재 심사를 참고하세요.string
필수
Video content descriptionDescribe scenes, actions, styles in detail for better generation resultsExample:
"Sunset at the beach, golden sunlight on the sea, waves gently hitting the sand"integer
기본값:5
Video duration (seconds)Supported range:
2 ~ 12 secondsDefault: 5string
기본값:"16:9"
Video aspect ratioOptions:
16:9- Landscape9:16- Portrait1:1- Square4:3- Traditional ratio3:4- Vertical traditional ratio21:9- Ultra-wide
16:9string
기본값:"720p"
Video resolutionOptions:
480p- Standard definition720p- High definition1080p- Full HD
720p1080p Limitation: When using reference images (role: reference in image_with_roles), 1080p resolution is not supportedResolution and Aspect Ratio Combinations
| Resolution | Supported Aspect Ratios | Notes |
|---|---|---|
| 480p | 16:9, 4:3, 1:1, 3:4, 9:16, 21:9 | All supported |
| 720p | 16:9, 4:3, 1:1, 3:4, 9:16, 21:9 | All supported |
| 1080p | 16:9, 4:3, 1:1, 3:4, 9:16, 21:9 | Reference image not supported |
string[]
First frame image URL array for image-to-video generation⚠️ URL format only (base64 no longer supported)
- Publicly accessible image URL (http:// or https://)
- You can use the Upload 이미지 API to upload local images and get URLs
["https://example.com/cat.png"]image_urls and image_with_roles cannot be used togetherarray
Image array with roles for more precise control
Example:
표시 Field 설명
표시 Field 설명
string
필수
Image URL address
string
필수
Image roleOptions:
first_frame- First frame image, as video starting frame (only one supported)last_frame- Last frame image, as video ending frame (quality version only, only one supported)reference- Reference image, for guiding video style (only one supported)
[
{"url": "https://example.com/start.png", "role": "first_frame"},
{"url": "https://example.com/end.png", "role": "last_frame"}
]
image_urlsandimage_with_rolescannot be used together- Only one image per role is supported
last_frameis only supported bydoubao-seedance-1-0-pro-qualityversion, fast version does not support first and last frame together
object
Extended parameters (optional)
표시 Field 설명
표시 Field 설명
integer
Seed integer for controlling generation randomnessRange:
-1 ~ 2^32-1Same seed value produces similar results, but not guaranteed to be identical응답
string
Unique task identifier for status queries
string
Object type, always
generation.taskstring
모델 name used
string
Task status
queued- Queued for processingin_progress- Processingcompleted- Successfully completedfailed- Failed
integer
Task progress percentage (0-100)
integer
Task creation timestamp (Unix timestamp)
object
Task metadata
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "doubao-seedance-1-0-pro-fast",
"prompt": "Sunset at the beach, golden sunlight on the sea, waves gently hitting the sand",
"duration": 5,
"aspect_ratio": "16:9",
"resolution": "720p"
}'
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "doubao-seedance-1-0-pro-quality",
"prompt": "A girl spinning under cherry blossom trees, petals falling with the wind",
"duration": 5,
"aspect_ratio": "9:16",
"resolution": "1080p"
}'
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "doubao-seedance-1-0-pro-quality",
"prompt": "Scene transitions from day to night, city lights gradually turning on",
"duration": 5,
"image_with_roles": [
{"url": "https://example.com/day.png", "role": "first_frame"},
{"url": "https://example.com/night.png", "role": "last_frame"}
]
}'
import requests
response = requests.post(
"https://toapis.com/v1/videos/generations",
headers={
"Authorization": "Bearer your-ToAPIs-key",
"Content-Type": "application/json"
},
json={
"model": "doubao-seedance-1-0-pro-fast",
"prompt": "Sunset at the beach, golden sunlight on the sea, waves gently hitting the sand",
"duration": 5,
"aspect_ratio": "16:9",
"resolution": "720p"
}
)
task = response.json()
print(f"Task ID: {task['id']}")
print(f"Status: {task['status']}")
const response = await fetch('https://toapis.com/v1/videos/generations', {
method: 'POST',
headers: {
'Authorization': 'Bearer your-ToAPIs-key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'doubao-seedance-1-0-pro-fast',
prompt: 'Sunset at the beach, golden sunlight on the sea, waves gently hitting the sand',
duration: 5,
aspect_ratio: '16:9',
resolution: '720p'
})
});
const task = await response.json();
console.log(`Task ID: ${task.id}`);
console.log(`Status: ${task.status}`);
{
"id": "task_vid_xyz789ghi012",
"object": "generation.task",
"model": "doubao-seedance-1-0-pro-fast",
"status": "queued",
"progress": 0,
"created_at": 1703884800,
"metadata": {}
}