SeeDance Video API Documentation
SeeDance Video API Documentation
ByteDance Doubao SeeDance provides high-quality video generation models. This document describes the complete API interface specification for using SeeDance 2.0 and SeeDance 2.5 models for video generation. All video generation calls use the same /v1/video/generations endpoint, with different parameters depending on the use case.
Supported Models
Currently supported models include:
| Model | Description |
|---|---|
| doubao-seedance-2-0-fast-260128 | SeeDance 2.0 fast video generation model |
| doubao-seedance-2-0-260128 | SeeDance 2.0 video generation model |
| doubao-seedance-2-5-260628 | SeeDance 2.5 video generation model |
| dreamina-seedance-2-0-fast-260128 | SeeDance 2.0 fast video generation model (overseas version) |
| dreamina-seedance-2-0-260128 | SeeDance 2.0 video generation model (overseas version) |
| dreamina-seedance-2-5-260628 | SeeDance 2.5 video generation model (overseas version) |
The request format is identical for every model above. The allowed values for some parameters differ between the 2.0 and 2.5 families — see Model Differences.
Overview
The SeeDance video generation feature provides an asynchronous task processing mechanism:
- Submit Task: Send an image and text prompt to create a video generation task
- Query Status: Query generation progress and status through task ID
- Get Results: Retrieve the generated video file after task completion
Task Status Flow
queued → in_progress → completed
↓
failed- queued: Task has been submitted and is waiting to be processed
- in_progress: Task is being processed
- completed: Task completed successfully, video has been generated
- failed: Task failed
API List
| Method | Path | Description |
|---|---|---|
| POST | /v1/video/generations | Submit video generation task |
| GET | /v1/video/generations/{task_id} | Query task status |
Model Differences
SeeDance 2.5 accepts the same request shape as 2.0, but raises every reference-input ceiling, adds audio-only input and mov output, and constrains the aspect ratio in some modes. Requests that exceed the limits of the selected model are rejected with a 400 invalid_request error before they reach the upstream provider.
| Parameter / capability | SeeDance 2.0 series | SeeDance 2.5 |
|---|---|---|
duration | Default 5. Integers 4–15, or -1 for automatic duration | Default -1. Integers 4–30, or -1 for automatic duration. Video editing tasks accept -1 only |
size (resolution) | Default 720p. 480p, 720p; doubao-seedance-2-0-260128 and dreamina-seedance-2-0-260128 also accept 1080p and 4k | Default 720p. 480p, 720p |
metadata.ratio | Default adaptive. 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive | Same values for text-to-video and reference-to-video. First/last-frame, video editing and video extension accept adaptive only |
| Reference images | Up to 9 | Up to 30 |
| Reference videos | Up to 3; see constraints | Up to 10; see constraints |
| Reference audio | Up to 3; requires at least one reference image or video | Up to 10; may be used on its own (see Audio-Only Reference) |
| Image input formats | jpeg, png, webp, bmp, tiff, gif | Also heic and heif |
metadata.output_format | Not supported (always mp4) | mp4 (default) or mov |
| Video editing / extension | Not supported | Supported (see Video Editing and Extension) |
Additional metadata fields
These optional fields are forwarded to the model as-is and apply to all SeeDance models unless noted otherwise.
| Field | Type | Description |
|---|---|---|
| metadata.resolution | string | Alternative to the top-level size field; overrides it when both are present |
| metadata.duration | integer | Alternative to the top-level duration field; overrides it when both are present |
| metadata.generate_audio | boolean | Default true. When true the model generates voice, sound effects and background music matching the footage; false produces a silent video |
| metadata.return_last_frame | boolean | Default false. When true the last frame of the generated video is also returned, as a PNG with the same pixel dimensions and no watermark |
| metadata.watermark | boolean | Default false. When true an AI Generated watermark is shown in the lower-right corner |
| metadata.output_format | string | SeeDance 2.5 only. mp4 (default) or mov. mov uses high-colour-precision professional encoding (H.264 / YUV 4:4:4 / PCM audio) that some players cannot open; it is recommended for video editing and extension workflows |
| metadata.priority | integer | Default 0. Range 0–9; a higher value moves the task ahead of lower-priority queued tasks |
| metadata.execution_expires_after | integer | Default 172800 (48 hours). Range 3600–259200 seconds. A task still queued or running after this time is terminated |
| metadata.safety_identifier | string | Stable, opaque per-end-user identifier, at most 64 characters. Use a hash of the user ID rather than personal data |
| metadata.tools | array of object | Opts into upstream tooling, e.g. [{"type": "web_search"}]. SeeDance 2.0 and 2.5 only |
| metadata.callback_url | string | If set, attempts to send callbacks to the specified URL. See Callback documentation for more details |
Metadata keys other than the ones documented here (and imageMode, referenceVideos, referenceAudio, which are consumed while building the request) are ignored.
Usage Examples
Examples 1–5 apply to both the 2.0 and 2.5 families; substitute any supported model name and observe the limits in Model Differences. Examples 6–7 cover capabilities that only exist on SeeDance 2.5.
1. Basic Text Prompt
Text-to-video uses prompt and model. Optional top-level fields include duration and size. Other options can go in metadata as needed.
Request body:
{
"prompt": "A large hand-shaped marble statue with vines growing on it, on a platform in the middle of a shallow pool of water.",
"model": "doubao-seedance-2-0-fast-260128",
"duration": 8,
"size": "720p",
"metadata": {
"ratio": "16:9",
"callback_url": ""
}
}| Field | Type | Required | Description |
|---|---|---|---|
| prompt | string | Yes | Text prompt for the video |
| model | string | Yes | Model name (e.g. doubao-seedance-2-0-fast-260128) |
| duration | integer | No | Default 5 (2.0) or -1 (2.5). Allowed: integers from 4 to 15 (2.0) or 4 to 30 (2.5), inclusive, or -1 for automatic duration selection |
| size | string | No | Default 720p. Allowed: 480p, 720p; the non-fast 2.0 models also accept 1080p and 4k |
| metadata | object | No | Extra metadata |
| metadata.ratio | string | No | Default adaptive. Allowed: 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive |
| metadata.callback_url | string | No | If set, attempts to send callbacks to the specified URL. See Callback documentation for more details |
2. First/Last Frame Images
Provide one or two image URLs in images: the first entry is the first frame; when two URLs are given, the second is the last frame. Optional top-level duration and size match Basic Text Prompt.
Request body:
{
"prompt": "The girl in the frame says cheese to the camera; 360-degree orbit camera move.",
"model": "doubao-seedance-2-0-fast-260128",
"images": [
"https://ark-project.tos-cn-beijing.volces.com/doc_image/seepro_first_frame.jpeg",
"https://ark-project.tos-cn-beijing.volces.com/doc_image/seepro_last_frame.jpeg"
],
"duration": 8,
"size": "720p",
"metadata": {
"ratio": "16:9",
"callback_url": ""
}
}| Field | Type | Required | Description |
|---|---|---|---|
| prompt | string | Yes | Text prompt for the video |
| model | string | Yes | Model name (e.g. doubao-seedance-2-0-fast-260128) |
| images | array of string | Yes | One or two image URLs: first frame, and optionally last frame |
| duration | integer | No | Default 5 (2.0) or -1 (2.5). Allowed: integers from 4 to 15 (2.0) or 4 to 30 (2.5), inclusive, or -1 for automatic duration selection |
| size | string | No | Default 720p. Allowed: 480p, 720p; the non-fast 2.0 models also accept 1080p and 4k |
| metadata | object | No | Extra metadata |
| metadata.ratio | string | No | Default adaptive. Allowed: 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive. SeeDance 2.5 accepts adaptive only in this mode — the output always keeps the aspect ratio of the first frame |
| metadata.callback_url | string | No | If set, attempts to send callbacks to the specified URL. See Callback documentation for more details |
3. Reference Images
This flow also uses the top-level images array. Set metadata.imageMode to reference so each URL is treated as a reference image (not first/last frame). In this mode you can pass up to nine images on 2.0 models and up to thirty on 2.5 models. Optional top-level duration and size work the same as in Basic Text Prompt. In the prompt, reference images with tags such as [image 1], [image 2], … in the same order as images.
Request body:
{
"prompt": "[image 1] A boy wearing glasses and a blue T-shirt and [image 2] a corgi puppy, sitting on the lawn in [image 3], 3D cartoon style.",
"model": "doubao-seedance-2-0-fast-260128",
"images": [
"https://ark-project.tos-cn-beijing.volces.com/doc_image/seelite_ref_1.png",
"https://ark-project.tos-cn-beijing.volces.com/doc_image/seelite_ref_2.png",
"https://ark-project.tos-cn-beijing.volces.com/doc_image/seelite_ref_3.png"
],
"duration": 8,
"size": "720p",
"metadata": {
"imageMode": "reference",
"ratio": "16:9",
"callback_url": ""
}
}| Field | Type | Required | Description |
|---|---|---|---|
| prompt | string | Yes | Text prompt; use [image 1] … [image N] to refer to images in order |
| model | string | Yes | Model name (e.g. doubao-seedance-2-0-fast-260128) |
| images | array of string | Yes | Reference image URLs (up to 9 on 2.0, 30 on 2.5) |
| duration | integer | No | Default 5 (2.0) or -1 (2.5). Allowed: integers from 4 to 15 (2.0) or 4 to 30 (2.5), inclusive, or -1 for automatic duration selection |
| size | string | No | Default 720p. Allowed: 480p, 720p; the non-fast 2.0 models also accept 1080p and 4k |
| metadata | object | No | Must include imageMode: reference for reference-image mode |
| metadata.imageMode | string | Yes (this mode) | Set to reference |
| metadata.ratio | string | No | Default adaptive. Allowed: 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive |
| metadata.callback_url | string | No | If set, attempts to send callbacks to the specified URL. See Callback documentation for more details |
Constraints on each reference image:
- Count: up to 9 images on 2.0 models, up to 30 on 2.5 models.
- Format:
jpeg,png,webp,bmp,tiff,gif; 2.5 models also acceptheicandheif. - Aspect ratio (width ÷ height): between 0.4 and 2.5 (inclusive).
- Width and height (pixels): each between 300 and 6000 (inclusive).
- File size: each image must not exceed 30 MB, and the whole request body must not exceed 64 MB. Prefer URLs over base64 for large files.
4. Reference Videos
Pass reference clip URLs in metadata.referenceVideos (up to three on 2.0 models, up to ten on 2.5 models). The prompt can refer to them in order (e.g. [video 1], [video 2], [video 3]).
Request body:
{
"prompt": "In [video 1], the arched window opens and we enter the gallery interior; cut to [video 2], then the camera moves into the painting; cut to [video 3].",
"model": "doubao-seedance-2-0-fast-260128",
"size": "720p",
"duration": 8,
"metadata": {
"ratio": "16:9",
"referenceVideos": [
"https://ark-project.tos-cn-beijing.volces.com/doc_video/r2v_extend_video1.mp4",
"https://ark-project.tos-cn-beijing.volces.com/doc_video/r2v_extend_video2.mp4",
"https://ark-project.tos-cn-beijing.volces.com/doc_video/r2v_extend_video3.mp4"
],
"callback_url": ""
}
}| Field | Type | Required | Description |
|---|---|---|---|
| prompt | string | Yes | Text prompt describing how to use the reference videos (e.g. [video 1], [video 2], [video 3] in order) |
| model | string | Yes | Model name (e.g. doubao-seedance-2-0-fast-260128) |
| duration | integer | No | Default 5 (2.0) or -1 (2.5). Allowed: integers from 4 to 15 (2.0) or 4 to 30 (2.5), inclusive, or -1 for automatic duration selection |
| size | string | No | Default 720p. Allowed: 480p, 720p; the non-fast 2.0 models also accept 1080p and 4k |
| metadata | object | No | Must include referenceVideos for this mode |
| metadata.ratio | string | No | Default adaptive. Allowed: 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive. SeeDance 2.5 accepts adaptive only when the reference videos are edited or extended rather than used as style/content references |
| metadata.referenceVideos | array of string | Yes (this mode) | Up to 3 video URLs on 2.0, up to 10 on 2.5 |
| metadata.callback_url | string | No | If set, attempts to send callbacks to the specified URL. See Callback documentation for more details |
Constraints on each reference video (and inputs overall):
- Count: at most 3 URLs in
referenceVideoson 2.0 models, at most 10 on 2.5 models. - Container format:
mp4ormov. - Resolution:
480por720pon 2.0 models;480p,720p,1080por4kon 2.5 models. - Duration per clip: on 2.0 models each video must be between 2 and 15 seconds (inclusive) and the combined duration of all input videos must not exceed 15 seconds; on 2.5 models each video must be between 2 and 30 seconds and the combined duration must not exceed 30 seconds.
- Aspect ratio (width ÷ height): between 0.4 and 2.5 (inclusive).
- Width and height (pixels): each between 300 and 6000 (inclusive).
- Total pixels (width × height): between 409600 and 927408 (inclusive) on 2.0 models; between 409600 and 8295044 (inclusive) on 2.5 models.
- File size: each file must not exceed 50 MB on 2.0 models, or 200 MB on 2.5 models.
- Frame rate: between 24 and 60 fps (inclusive).
5. Multimodal References
Combine reference images (images + metadata.imageMode: reference), reference videos (metadata.referenceVideos), and reference audio (metadata.referenceAudio) in one request. Prompts can reference assets by role (e.g. [video 1], [audio 1], [image 1], [image 2]) as in the single-mode sections. Reference videos must still meet the constraints in Reference Videos.
Request body:
{
"prompt": "First-person framing from [video 1] throughout; use [audio 1] as background music throughout. First-person fruit tea ad for Seedance Ping Ping An An limited-edition apple fruit tea. First frame is [image 1]: your hand picks a dewy Aksu red apple, crisp apple impact sounds. 2-4s: quick cuts — your hands drop apple pieces into a shaker with ice and tea base, shake hard; ice and shaker sounds sync to light drum hits; voiceover: Fresh-cut, shaken fresh. 4-6s: first-person product close-up — layered fruit tea poured into a clear cup, you pipe cream on top and apply a pink label wrap; camera pushes in on cream and tea layers. 6-8s: first-person — you raise the drink from [image 2] toward the camera (as if offering it to the viewer); label clearly visible; voiceover: Take a fresh sip; end frame freezes on [image 2]. Female voice throughout.",
"model": "doubao-seedance-2-0-fast-260128",
"images": [
"https://ark-project.tos-cn-beijing.volces.com/doc_image/r2v_tea_pic1.jpg",
"https://ark-project.tos-cn-beijing.volces.com/doc_image/r2v_tea_pic2.jpg"
],
"size": "720p",
"duration": 11,
"metadata": {
"imageMode": "reference",
"referenceVideos": [
"https://ark-project.tos-cn-beijing.volces.com/doc_video/r2v_tea_video1.mp4"
],
"referenceAudio": [
"https://ark-project.tos-cn-beijing.volces.com/doc_audio/r2v_tea_audio1.mp3"
],
"ratio": "16:9",
"callback_url": ""
}
}| Field | Type | Required | Description |
|---|---|---|---|
| prompt | string | Yes | Long-form prompt referencing [video N], [audio N], [image N] as needed |
| model | string | Yes | Model name (e.g. doubao-seedance-2-0-fast-260128) |
| images | array of string | No | Reference image URLs when metadata.imageMode is reference (up to 9 on 2.0, 30 on 2.5; see Reference Images) |
| duration | integer | No | Default 5 (2.0) or -1 (2.5). Allowed: integers from 4 to 15 (2.0) or 4 to 30 (2.5), inclusive, or -1 for automatic duration selection |
| size | string | No | Default 720p. Allowed: 480p, 720p; the non-fast 2.0 models also accept 1080p and 4k |
| metadata | object | No | Combines modes below |
| metadata.imageMode | string | When using images as references | Set to reference |
| metadata.referenceVideos | array of string | No | Reference video URLs (up to 3 on 2.0, 10 on 2.5; constraints in Reference Videos) |
| metadata.referenceAudio | array of string | No | Reference audio URLs (up to 3 on 2.0, 10 on 2.5). On 2.0 models audio cannot be used alone — at least one reference image or video is required |
| metadata.ratio | string | No | Default adaptive. Allowed: 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive |
| metadata.callback_url | string | No | If set, attempts to send callbacks to the specified URL. See Callback documentation for more details |
Constraints on each reference audio clip:
- Count: at most 3 URLs in
referenceAudioon 2.0 models, at most 10 on 2.5 models. - Format:
wavormp3. - Duration per clip: on 2.0 models each clip must be between 2 and 15 seconds (inclusive) with a combined duration of at most 15 seconds; on 2.5 models each clip must be between 2 and 30 seconds with a combined duration of at most 30 seconds.
- File size: each file must not exceed 15 MB, and the whole request body must not exceed 64 MB. Prefer URLs over base64 for large files.
- Companion input: on 2.0 models
referenceAudiorequires at least one reference image or reference video; requests without one are rejected with400 invalid_request. 2.5 models accept audio on its own.
Generated audio is always mono, regardless of how many channels the input audio has.
6. Audio-Only Reference (SeeDance 2.5)
SeeDance 2.5 is the first family that accepts reference audio with no accompanying image or video. Pass the clip(s) in metadata.referenceAudio and describe the footage that should be generated around them; the model synchronises the visuals to the supplied audio. The same audio constraints as in Multimodal References apply.
Sending this request to a 2.0 model returns 400 invalid_request.
Request body:
{
"prompt": "A lone busker plays on a rain-slick city street at night, neon signs reflected in the puddles. Use [audio 1] as the performance audio and cut the camera moves to its rhythm; slow push-in on the guitar, then a wide shot as passers-by stop to listen.",
"model": "doubao-seedance-2-5-260628",
"duration": 12,
"size": "720p",
"metadata": {
"referenceAudio": [
"https://example.com/audio/street-guitar.mp3"
],
"ratio": "16:9",
"callback_url": ""
}
}| Field | Type | Required | Description |
|---|---|---|---|
| prompt | string | No | Text prompt describing the visuals; refer to the clips as [audio 1], [audio 2], … in order |
| model | string | Yes | A SeeDance 2.5 model name (e.g. doubao-seedance-2-5-260628) |
| duration | integer | No | Default -1. Allowed: integers from 4 to 30, inclusive, or -1 for automatic duration selection |
| size | string | No | Default 720p. Allowed: 480p, 720p |
| metadata | object | Yes | Must include referenceAudio for this mode |
| metadata.referenceAudio | array of string | Yes (this mode) | Up to 10 audio URLs, each wav or mp3, 2–30 seconds, 30 seconds combined |
| metadata.ratio | string | No | Default adaptive. Allowed: 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive |
| metadata.callback_url | string | No | If set, attempts to send callbacks to the specified URL. See Callback documentation for more details |
7. Video Editing and Extension (SeeDance 2.5)
SeeDance 2.5 can also edit a source clip (restyle it, change its setting, replace its audio while keeping the original motion) or extend it forwards or backwards. Both flows pass the source clip in metadata.referenceVideos and describe the intended change in the prompt.
The task type is inferred from the input assets and the prompt, so write the prompt explicitly — say "keep the original footage and only change …" for an edit, or "continue from the final frame …" for an extension. Both flows have stricter parameter constraints than plain reference-to-video:
metadata.ratiomust beadaptive: the output always keeps the aspect ratio of the input video.- For editing,
durationmust be-1; the output length follows the input (and may be about 0.4 seconds shorter). The input clip must be 4–30 seconds long. - For extending,
durationmay be set to any value from4to30, or-1. metadata.output_format:movis recommended for both the input and the output when the result feeds a professional post-production workflow.
Request body (editing):
{
"prompt": "Keep the original footage, framing and camera movement exactly as they are; restyle the whole shot as a hand-painted watercolour animation and change the overcast daytime sky to a violet sunset.",
"model": "doubao-seedance-2-5-260628",
"duration": -1,
"metadata": {
"referenceVideos": [
"https://example.com/video/street_walk.mov"
],
"ratio": "adaptive",
"output_format": "mov",
"callback_url": ""
}
}Request body (extending):
{
"prompt": "Continue [video 1] from its final frame without any cut: the camera keeps pushing down the corridor, the door at the far end swings open and reveals a sunlit courtyard.",
"model": "doubao-seedance-2-5-260628",
"duration": 10,
"metadata": {
"referenceVideos": [
"https://example.com/video/corridor.mp4"
],
"ratio": "adaptive",
"callback_url": ""
}
}| Field | Type | Required | Description |
|---|---|---|---|
| prompt | string | Yes | Text prompt describing the edit or the continuation |
| model | string | Yes | A SeeDance 2.5 model name (e.g. doubao-seedance-2-5-260628) |
| duration | integer | No | Editing: must be -1. Extension: integers from 4 to 30, inclusive, or -1 |
| size | string | No | Default 720p. Allowed: 480p, 720p |
| metadata | object | Yes | Must include referenceVideos for this mode |
| metadata.referenceVideos | array of string | Yes (this mode) | Source video URLs; constraints in Reference Videos. Editing requires a clip of 4–30 seconds |
| metadata.ratio | string | No | Must be adaptive (the default) in these modes |
| metadata.output_format | string | No | mp4 (default) or mov. mov is recommended for editing and extension |
| metadata.callback_url | string | No | If set, attempts to send callbacks to the specified URL. See Callback documentation for more details |
1. Submit Video Generation Task
Use the JSON bodies in Usage Examples above; adjust fields for your scenario.
Complete Request:
curl -X POST "https://pay.hkit.ai/v1/video/generations" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer API_KEY" \
-d @request-body.jsonEndpoint:
POST /v1/video/generationsRequest Headers:
| Parameter | Type | Required | Description |
|---|---|---|---|
| Content-Type | string | Yes | application/json |
| Authorization | string | Yes | Bearer API_KEY |
Response Example:
{
"task_id": "TASK_ID"
}Response Field Descriptions:
| Field | Type | Description |
|---|---|---|
| task_id | string | Task ID for subsequent task status queries |
2. Query Task Status
Complete Request:
curl -X GET "https://pay.hkit.ai/v1/video/generations/TASK_ID" \
-H "Authorization: Bearer API_KEY"Endpoint:
GET /v1/video/generations/{task_id}Request Headers:
| Parameter | Type | Required | Description |
|---|---|---|---|
| Authorization | string | Yes | Bearer API_KEY |
Path Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| task_id | string | Yes | Task ID |
Response Example (Processing):
{
"code": "success",
"message": "",
"data": {
"task_id": "<TASK_ID>",
"action": "generate",
"status": "IN_PROGRESS",
"fail_reason": "",
"submit_time": 1776717808,
"start_time": 1776717809,
"finish_time": 0,
"progress": "30%",
"data": {
"created_at": 1776717808,
"draft": false,
"execution_expires_after": 172800,
"generate_audio": true,
"id": "<TASK_ID>",
"model": "doubao-seedance-2-0-fast-260128",
"service_tier": "default",
"status": "running",
"updated_at": 1776717808
}
}
}Response Example (Success):
Note: When the task succeeds, the
data.fail_reasonfield will contain the video download URL instead of an error message — this is a known behavior of the upstream SeeDance API. The recommended way to retrieve the video URL is viadata.data.content.video_url.
{
"code": "success",
"message": "",
"data": {
"task_id": "<TASK_ID>",
"action": "generate",
"status": "SUCCESS",
"fail_reason": "<VIDEO_URL>",
"submit_time": 1776717808,
"start_time": 1776717818,
"finish_time": 1776717962,
"progress": "100%",
"data": {
"content": {
"video_url": "<VIDEO_URL>"
},
"created_at": 1776717808,
"draft": false,
"duration": 4,
"execution_expires_after": 172800,
"framespersecond": 24,
"generate_audio": true,
"id": "<TASK_ID>",
"model": "doubao-seedance-2-0-fast-260128",
"ratio": "16:9",
"resolution": "480p",
"seed": 93719,
"service_tier": "default",
"status": "succeeded",
"updated_at": 1776717961,
"usage": {
"completion_tokens": 40594,
"total_tokens": 40594
}
}
}
}Note: The returned
durationis an integer approximation, calculated as the total frame count divided by 24 and rounded down. A 133-frame video lasts 5.54 seconds but reports adurationof5.
3. Callback
POST <YOUR_CALLBACK_URL>The webhook requests consist of "wrapper" data, taking the following format:
{
"webhook_type": "VIDEO_TASK",
"payload": {
"channel_type": "DoubaoVideo",
"data": {}
}
}The payload.data field contains the data in the same format that the 2. Query Task Status endpoint's response.data would provide.
Request Example (Task Running)
{
"webhook_type": "VIDEO_TASK",
"payload": {
"channel_type": "DoubaoVideo",
"data": {
"task_id": "<TASK_ID>",
"action": "generate",
"status": "IN_PROGRESS",
"fail_reason": "",
"submit_time": 1776717808,
"start_time": 1776717809,
"finish_time": 0,
"progress": "30%",
"data": {
"created_at": 1776717808,
"draft": false,
"execution_expires_after": 172800,
"generate_audio": true,
"id": "<TASK_ID>",
"model": "doubao-seedance-2-0-fast-260128",
"service_tier": "default",
"status": "running",
"updated_at": 1776717808
}
}
}
}Request Example (Task Completed Successfully)
{
"webhook_type": "VIDEO_TASK",
"payload": {
"channel_type": "DoubaoVideo",
"data": {
"task_id": "<TASK_ID>",
"action": "generate",
"status": "SUCCESS",
"fail_reason": "<VIDEO_URL>",
"submit_time": 1776717808,
"start_time": 1776717818,
"finish_time": 1776717962,
"progress": "100%",
"data": {
"content": {
"video_url": "<VIDEO_URL>"
},
"created_at": 1776717808,
"draft": false,
"duration": 4,
"execution_expires_after": 172800,
"framespersecond": 24,
"generate_audio": true,
"id": "<TASK_ID>",
"model": "doubao-seedance-2-0-fast-260128",
"ratio": "16:9",
"resolution": "480p",
"seed": 93719,
"service_tier": "default",
"status": "succeeded",
"updated_at": 1776717961,
"usage": {
"completion_tokens": 40594,
"total_tokens": 40594
}
}
}
}
}