curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "doubao-seedance-1-5-pro",
"prompt": "Sunset at the beach, golden sunlight on the sea, waves gently hitting the sand",
"duration": 5,
"aspect_ratio": "16:9",
"metadata": {
"resolution": "720p",
"audio": true
}
}'
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "doubao-seedance-1-5-pro",
"prompt": "A cat chasing a snake through the grass while the camera tracks the motion",
"image_with_roles": [
{"url": "https://example.com/first.png", "role": "first_frame"}
],
"metadata": {
"resolution": "720p",
"audio": true
}
}'
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "doubao-seedance-1-5-pro",
"prompt": "A girl spins beneath cherry blossoms and slowly comes to a stop at the end",
"image_with_roles": [
{"url": "https://example.com/first.png", "role": "first_frame"},
{"url": "https://example.com/last.png", "role": "last_frame"}
],
"duration": 5,
"aspect_ratio": "9:16",
"metadata": {
"resolution": "720p",
"audio": true
}
}'
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-5-pro",
"prompt": "Sunset at the beach, golden sunlight on the sea, waves gently hitting the sand",
"duration": 5,
"aspect_ratio": "16:9",
"metadata": {
"resolution": "720p",
"audio": True
}
}
)
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-5-pro',
prompt: 'Sunset at the beach, golden sunlight on the sea, waves gently hitting the sand',
duration: 5,
aspect_ratio: '16:9',
metadata: {
resolution: '720p',
audio: true
}
})
});
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-5-pro",
"status": "queued",
"progress": 0,
"created_at": 1703884800,
"metadata": {}
}
doubao-seedance-1-5-pro
Doubao SeeDance 1.5 Pro 動画生成
Generate videos using ByteDance Doubao SeeDance 1.5 Pro 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-5-pro",
"prompt": "Sunset at the beach, golden sunlight on the sea, waves gently hitting the sand",
"duration": 5,
"aspect_ratio": "16:9",
"metadata": {
"resolution": "720p",
"audio": true
}
}'
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "doubao-seedance-1-5-pro",
"prompt": "A cat chasing a snake through the grass while the camera tracks the motion",
"image_with_roles": [
{"url": "https://example.com/first.png", "role": "first_frame"}
],
"metadata": {
"resolution": "720p",
"audio": true
}
}'
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "doubao-seedance-1-5-pro",
"prompt": "A girl spins beneath cherry blossoms and slowly comes to a stop at the end",
"image_with_roles": [
{"url": "https://example.com/first.png", "role": "first_frame"},
{"url": "https://example.com/last.png", "role": "last_frame"}
],
"duration": 5,
"aspect_ratio": "9:16",
"metadata": {
"resolution": "720p",
"audio": true
}
}'
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-5-pro",
"prompt": "Sunset at the beach, golden sunlight on the sea, waves gently hitting the sand",
"duration": 5,
"aspect_ratio": "16:9",
"metadata": {
"resolution": "720p",
"audio": True
}
}
)
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-5-pro',
prompt: 'Sunset at the beach, golden sunlight on the sea, waves gently hitting the sand',
duration: 5,
aspect_ratio: '16:9',
metadata: {
resolution: '720p',
audio: true
}
})
});
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-5-pro",
"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 1.5 Pro version
- Supports text-to-video generation
- Supports first frame / last frame control
- Does not support reference image mode
- Supports audio generation (1.5 Pro exclusive feature)
- Async task management, query results by task ID
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-5-pro"
必須
Video generation model nameAvailable models:
doubao-seedance-1-5-pro- 1.5 Pro version, supports audio generation and first/last frame control
boolean
デフォルト:false
省略可能、既定値は
false。true にすると、選択されたチャネルの対応状況に応じて素材を準備して審査します。プライベート素材ライブラリ非対応のチャネルでは審査を省略し、従来の生成処理を行います。次のフィールドにメディアを含む非同期生成リクエストで使用できます:image_urls、image_with_roles。テキストのみ、またはmetadataのみに素材を指定する場合は省略するか false にしてください。独立した remix または extend API には適用されません。true の場合は asset:// を拒否します。モデルのメディア形式と数量制限は変わりません。詳細はオンデマンド素材審査を参照してください。string
必須
Video content descriptionDescribe scenes, actions, and style 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:
4 ~ 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:9Resolution 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 (default) |
| 1080p | 16:9, 4:3, 1:1, 3:4, 9:16, 21:9 | All supported |
string[]
Compatibility image URL array for first/last-frame image-to-video generationCompatibility rules:
- 1 image: treated as
first_frame - 2 images: treated as
first_frameandlast_frame - More than 2 images: only the first two are used
image_with_roles to explicitly specify first and last framesExample: ["https://example.com/first.png", "https://example.com/last.png"]image_urls and image_with_roles cannot be used togetherarray
Image array with roles for explicit first/last-frame control
Example:
表示 Field 説明
表示 Field 説明
[
{"url": "https://example.com/first.png", "role": "first_frame"},
{"url": "https://example.com/last.png", "role": "last_frame"}
]
image_urlsandimage_with_rolescannot be used together- Only one first frame and one last frame are supported
- 1.5 Pro does not support the
reference_imagerole. Use Seedance 2.0 if you need reference image control
object
Extended parameters
表示 Field 説明
表示 Field 説明
string
デフォルト:"720p"
Video resolutionOptions:
480p- Standard definition720p- High definition (default)1080p- Full HD
integer
Seed integer for controlling generation randomnessRange:
-1 ~ 2^32-1The same seed can produce similar results, but exact output is not guaranteedboolean
デフォルト:false
Whether to generate audioWhen set to
true, the video will include AI-generated accompanying audio1.5 Pro exclusive featureboolean
デフォルト:false
Whether to keep the camera fixedWhen set to
true, the camera position remains fixed throughout the videoDifferences from 1.0
| Feature | 1.0 fast/quality | 1.5 Pro |
|---|---|---|
| Default resolution | 1080p | 720p |
| Supported resolutions | 480p/720p/1080p | 480p/720p/1080p |
| Duration range | 2-12s | 4-12s |
| Audio generation | Not supported | Supported |
| Image control mode | reference single reference image | first_frame / last_frame frame mode |
レスポンス
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-5-pro",
"prompt": "Sunset at the beach, golden sunlight on the sea, waves gently hitting the sand",
"duration": 5,
"aspect_ratio": "16:9",
"metadata": {
"resolution": "720p",
"audio": true
}
}'
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "doubao-seedance-1-5-pro",
"prompt": "A cat chasing a snake through the grass while the camera tracks the motion",
"image_with_roles": [
{"url": "https://example.com/first.png", "role": "first_frame"}
],
"metadata": {
"resolution": "720p",
"audio": true
}
}'
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "doubao-seedance-1-5-pro",
"prompt": "A girl spins beneath cherry blossoms and slowly comes to a stop at the end",
"image_with_roles": [
{"url": "https://example.com/first.png", "role": "first_frame"},
{"url": "https://example.com/last.png", "role": "last_frame"}
],
"duration": 5,
"aspect_ratio": "9:16",
"metadata": {
"resolution": "720p",
"audio": true
}
}'
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-5-pro",
"prompt": "Sunset at the beach, golden sunlight on the sea, waves gently hitting the sand",
"duration": 5,
"aspect_ratio": "16:9",
"metadata": {
"resolution": "720p",
"audio": True
}
}
)
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-5-pro',
prompt: 'Sunset at the beach, golden sunlight on the sea, waves gently hitting the sand',
duration: 5,
aspect_ratio: '16:9',
metadata: {
resolution: '720p',
audio: true
}
})
});
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-5-pro",
"status": "queued",
"progress": 0,
"created_at": 1703884800,
"metadata": {}
}