Seedance 2.0
Use doubao-seedance-2.0 to create video output. This page contains the complete request needed for this model.
Model facts
| Property | Value |
|---|---|
| Model ID | doubao-seedance-2.0 |
| Endpoint | POST /api/v1/generation/create |
| Output | Video |
| Modes | text-to-video, image-to-video, video reference, audio reference |
| Pricing | View current pricing |
Minimal request
curl -X POST https://api.api-stock.com/api/v1/generation/create \
-H "Authorization: Bearer $API_STOCK_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2.0",
"input": {
"prompt": "A cinematic scene with soft natural light"
}
}'The create response contains a task ID:
{
"code": 200,
"data": {
"taskId": "019ca881-9503-7270-a560-f00fc2b15785",
"status": "not_started",
"createdAt": "2026-08-22T12:00:00.000Z"
}
}Parameters
Parameters belong inside the top-level input object. Unknown fields are rejected.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
prompt | string | No | — | Video content description. Required unless image or video reference media is provided (maximum 4000 characters). max 4000 chars |
duration | number | No | 5 | Video duration in seconds (4-15) min 4, max 15 |
size | “adaptive” | “16:9” | “9:16” | “1:1” | “4:3” | “3:4” | “21:9” | No | "16:9" | Video aspect ratio. adaptive follows the input image or video. |
resolution | “480p” | “720p” | “1080p” | “4k” | No | "720p" | Output resolution and per-second billing tier |
seed | number | No | — | Random seed for controlling randomness |
generateAudio | boolean | No | true | Whether to generate audio |
nsfwCheck | boolean | No | false | Run Apimart prompt/image moderation before generation |
returnLastFrame | boolean | No | false | Whether to return the last frame image |
imageUrls | string[] | No | — | Public image URLs for image-to-video (maximum 9) |
imageWithRoles | object[] | No | — | Images with explicit first_frame / last_frame roles. Cannot be combined with other reference-media fields. Each item is { url: string, role: string }. |
videoUrls | string[] | No | — | Public reference-video URLs (maximum 3; total duration must be more than 1.8s and less than 15.2s). Their duration is probed before charging. |
audioUrls | string[] | No | — | Public reference-audio URLs (maximum 3; 15 seconds total). Requires imageUrls or videoUrls. |
tools | object[] | No | — | Optional enhancements such as web search grounding. Each item is { type: “web_search” }. |
Modes
Minimal generation
{
"model": "doubao-seedance-2.0",
"input": {
"prompt": "A cinematic scene with soft natural light"
}
}With image urls
{
"model": "doubao-seedance-2.0",
"input": {
"prompt": "A cinematic scene with soft natural light",
"imageUrls": [
"https://example.com/input.jpg"
]
}
}With video urls
{
"model": "doubao-seedance-2.0",
"input": {
"prompt": "A cinematic scene with soft natural light",
"videoUrls": [
"https://example.com/input.mp4"
]
}
}With audio urls
{
"model": "doubao-seedance-2.0",
"input": {
"prompt": "A cinematic scene with soft natural light",
"imageUrls": [
"https://example.com/input.jpg"
],
"audioUrls": [
"https://example.com/input.mp3"
]
}
}Constraints
prompt: maximum 4000 characters.duration: minimum 4; maximum 15.size: allowed:adaptive,16:9,9:16,1:1,4:3,3:4,21:9.resolution: allowed:480p,720p,1080p,4k.
Invalid types, unsupported enum values, out-of-range numbers, and missing required fields return HTTP 400 with error.code: "invalid_input". Correct the request rather than retrying it unchanged.
Result
Poll the task or provide a top-level webhook URL in the create request:
curl https://api.api-stock.com/api/v1/task/status/$TASK_ID \
-H "Authorization: Bearer $API_STOCK_KEY"A successful media task returns one or more files:
{
"code": 200,
"data": {
"taskId": "019ca881-9503-7270-a560-f00fc2b15785",
"status": "finished",
"files": [
{
"fileUrl": "https://storage.api-stock.com/result.mp4",
"fileType": "video"
}
],
"createdTime": "2026-08-22T12:00:00.000Z"
}
}See Tasks and webhooks for terminal statuses, retries and webhook delivery.