Create Doubao Video Task
Dedicated route: POST https://maasunion.com/doubao/v1/video/generations · GET https://maasunion.com/doubao/v1/video/generations/{task_id}
Compatible route: POST https://maasunion.com/v1/video/generations · GET https://maasunion.com/v1/video/generations/{task_id}
Capability: Volcano Engine Ark Seedance video generation
Official reference:
Overview
Doubao Video is the platform interface for the Seedance model family on Volcano Engine Ark, used for asynchronous video generation, including:
- Text-to-Video, Image-to-Video (first frame / first & last frame)
- Multimodal reference video generation (Seedance 2.0: reference image 0–9 + reference video 0–3 + reference audio 0–3 + text)
- Audio / silent video (
generate_audio) - Draft mode (Seedance 1.5 pro,
draft: true) - Video editing / extension (Seedance 2.0 multimodal reference)
Video generation is asynchronous: the create endpoint returns a task ID; you need to poll the query endpoint for the final video URL, available from content.video_url.
Dedicated Route
| Item | Description |
|---|---|
| Create task | POST https://maasunion.com/doubao/v1/video/generations |
| Query task | GET https://maasunion.com/doubao/v1/video/generations/{task_id} |
| Request format | Consistent with the Volcano Engine Ark official API |
| Response format | Consistent with the Volcano Engine Ark official API |
Supported Models
The Seedance models currently available (subject to what the platform has enabled):
| model | Description |
|---|---|
doubao-seedance-2-0-260128 | Seedance 2.0 (multimodal reference, audio/silent) |
doubao-seedance-2-0-fast-260128 | Seedance 2.0 fast (does not support 1080p) |
doubao-seedance-1-5-pro-251215 | Seedance 1.5 pro (audio, draft mode) |
doubao-seedance-1-0-pro-250528 | Seedance 1.0 pro |
doubao-seedance-1-0-pro-fast-250528 | Seedance 1.0 pro fast (first-frame image2video, text2video) |
doubao-seedance-1-0-lite-t2v-250428 | Seedance 1.0 lite text-to-video |
doubao-seedance-1-0-lite-i2v-250428 | Seedance 1.0 lite image-to-video |
Model Capability Matrix
| Capability | 2.0 / 2.0 fast | 1.5 pro | 1.0 pro | 1.0 pro fast | 1.0 lite |
|---|---|---|---|---|---|
| Text-to-Video | ✅ | ✅ | ✅ | ✅ | ✅ (t2v) |
| Image-to-Video (first frame) | ✅ | ✅ | ✅ | ✅ | ✅ (i2v) |
| Image-to-Video (first & last frame) | ✅ | ✅ | ✅ | ❌ | ❌ |
| Multimodal reference (image+video+audio) | ✅ | ❌ | ❌ | ❌ | ❌ |
Audio video generate_audio | ✅ | ✅ | ❌ | ❌ | ❌ |
Draft mode draft | ❌ | ✅ | ❌ | ❌ | ❌ |
Tool calling tools | ✅ (2.0) | ❌ | ❌ | ❌ | ❌ |
Priority priority | ✅ (2.0) | ❌ | ❌ | ❌ | ❌ |
Offline inference service_tier=flex | ❌ (2.0: default only) | ✅ | ✅ | ✅ | ✅ |
Authentication
| Header | Required | Description |
|---|---|---|
Authorization | Yes | Bearer {your_api_token}, API token issued by the platform |
Content-Type | Required for POST | application/json |
Use the platform API token. Clients do not need to (and should not) pass an upstream vendor key.
Interface Description
1. Create Video Generation Task
POST https://maasunion.com/doubao/v1/video/generations
Asynchronous interface: returns a task ID immediately; poll the query endpoint for the final video URL.
2. Query Video Generation Task
GET https://maasunion.com/doubao/v1/video/generations/{task_id}
task_id is the id returned when creating the task (format like task_xxxxxxxx).
Only task records from the last 7 days can be queried. The generated
video_urlis valid for 24 hours; please download or persist it in time.
Request Parameters
Request Body
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
model | string | Yes | — | Model ID, e.g. doubao-seedance-2-0-260128 |
content | object[] | Yes | — | Input content, supports combinations of text, image, video, audio, etc.; see content Object |
callback_url | string | No | — | Callback URL for task status changes (POST, same structure as the query response) |
return_last_frame | boolean | No | false | When true, return the last frame image URL (png, no watermark), which can be used for continuous video generation |
service_tier | string | No | default | default (online) / flex (offline, ~50% of online price). Seedance 2.0 only supports default |
execution_expires_after | integer | No | 172800 | Task timeout (seconds), from created_at; range [3600, 259200] |
generate_audio | boolean | No | true | Whether to generate synchronized audio. Only supported by 2.0 / 2.0 fast / 1.5 pro |
draft | boolean | No | false | Draft mode, only supported by 1.5 pro (480p Draft video; does not support last frame or offline inference) |
tools | object[] | No | — | Tool-calling configuration, only supported by Seedance 2.0 |
safety_identifier | string | No | — | End-user unique identifier (length ≤ 64), used for safety detection |
priority | integer | No | 0 | Execution priority 0–9; higher value = higher priority; only supported by Seedance 2.0; not supported in flex mode |
resolution | string | No | 720p / 1080p | 480p / 720p / 1080p (2.0 fast does not support 1080p) |
ratio | string | No | adaptive / 16:9 | 16:9 / 4:3 / 1:1 / 3:4 / 9:16 / 21:9 / adaptive (auto fit) |
duration | integer | No | 5 | Duration in seconds. 1.0: [2,12]; 1.5/2.0: [4,15] or -1 (smart) |
frames | integer | No | — | Frame count, higher priority than duration, range [29, 289] and satisfies 25 + 4n |
seed | integer | No | -1 | Random seed [-1, 2³²-1]; -1 means random |
camera_fixed | boolean | No | false | Whether to fix the camera (not supported for reference image scenarios or 2.0) |
watermark | boolean | No | false | When true, show the AI-generated watermark in the bottom-right corner |
Choose either
durationorframes;frameshas higher priority.
The parameters above can also be passed via the compatible route insidemetadata; see Compatibility Mode.
Parameters support two input methods: new method (recommended) passed directly in the request body (strict validation); legacy method appended after the text prompt as--[parameters](weak validation).
content Object
content supports the following combinations:
- Text
- Text (optional) + image
- Text (optional) + video
- Text (optional) + image + audio
- Text (optional) + image + video
- Text (optional) + video + audio
- Text (optional) + image + video + audio
- Draft task ID (1.5 pro only)
Text
| Field | Type | Description |
|---|---|---|
type | string | text |
text | string | Prompt |
Image
| Field | Type | Description |
|---|---|---|
type | string | image_url |
image_url.url | string | Image URL or Base64 (data:image/png;base64,...) |
role | string | first_frame / last_frame / reference_image (2.0, up to 9 images) |
Video (Seedance 2.0 only)
| Field | Type | Description |
|---|---|---|
type | string | video_url |
video_url.url | string | Video URL or asset ID (asset://<ASSET_ID>) |
role | string | reference_video |
Reference video requirements:
| Item | Limit |
|---|---|
| Format | mp4, mov |
| Resolution | 480p, 720p, 1080p |
| Duration | Single clip [2, 15] seconds; at most 3 clips, total duration ≤ 15 seconds |
| Aspect ratio | [0.4, 2.5] |
| Width/height | [300, 6000] px |
| Total pixels | [409600, 2086876] |
| File size | Single file ≤ 50 MB |
| Frame rate | [24, 60] FPS |
Supported container/encoding formats:
| Container | Extension | MIME | Supported encoding |
|---|---|---|---|
| MP4 | .mp4 | video/mp4 | Video: H.264/AVC, H.265/HEVC; Audio: AAC, MP3 |
| QuickTime | .mov | video/quicktime | Video: H.264/AVC, H.265/HEVC; Audio: AAC, MP3 |
Audio (Seedance 2.0 only)
| Field | Type | Description |
|---|---|---|
type | string | audio_url |
audio_url.url | string | Audio URL |
role | string | reference_audio |
Note: Audio cannot be sent alone; include at least 1 reference video or image. At most 3 reference audio clips.
Draft Task (1.5 pro only)
| Field | Type | Description |
|---|---|---|
type | string | draft_task_id |
draft_task_id | string | Draft task ID, used to generate the official video based on the Draft video |
Resolution and Aspect Ratio Reference
The following output pixel dimensions are for reference for each resolution + ratio combination (different model series may differ slightly):
480p
| Aspect ratio | Seedance 1.0 series | Seedance 1.5 pro / 2.0 series |
|---|---|---|
| 16:9 | 864×480 | 864×496 |
| 4:3 | 736×544 | 752×560 |
| 1:1 | 640×640 | 640×640 |
| 3:4 | 544×736 | 560×752 |
| 9:16 | 480×864 | 496×864 |
| 21:9 | 960×416 | 992×432 |
720p
| Aspect ratio | Seedance 1.0 series | Seedance 1.5 pro / 2.0 series |
|---|---|---|
| 16:9 | 1248×704 | 1280×720 |
| 4:3 | 1120×832 | 1112×834 |
| 1:1 | 960×960 | 960×960 |
| 3:4 | 832×1120 | 834×1112 |
| 9:16 | 704×1248 | 720×1280 |
| 21:9 | 1504×640 | 1470×630 |
1080p (Seedance 2.0 fast does not support)
| Aspect ratio | Seedance 1.0 series | Seedance 1.5 pro / 2.0 series |
|---|---|---|
| 16:9 | 1920×1088 | 1920×1080 |
| 4:3 | 1664×1248 | 1664×1248 |
| 1:1 | 1440×1440 | 1440×1440 |
| 3:4 | 1248×1664 | 1248×1664 |
| 9:16 | 1088×1920 | 1080×1920 |
| 21:9 | 2176×928 | 2206×946 |
Create Task Response
After successful creation, a task ID is returned for subsequent queries.
Response example:
{
"id": "task_20260409120000_abc123"
}| Field | Type | Description |
|---|---|---|
id | string | Task ID, e.g. task_xxxxxxxx, used for subsequent queries |
Call Examples
1. Text-to-Video
curl -X POST "https://maasunion.com/doubao/v1/video/generations" \
-H "Authorization: Bearer sk-xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-1-0-pro-250528",
"content": [
{
"type": "text",
"text": "Realistic style, under a clear blue sky, a vast field of white daisies, the camera slowly zooms in and finally focuses on a close-up of a daisy, with crystal dewdrops on the petals"
}
],
"ratio": "16:9",
"duration": 5,
"watermark": false
}'2. Image-to-Video (First Frame, with Audio)
curl -X POST "https://maasunion.com/doubao/v1/video/generations" \
-H "Authorization: Bearer sk-xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-1-5-pro-251215",
"content": [
{
"type": "text",
"text": "A girl hugging a fox; the girl opens her eyes and looks at the camera tenderly, the fox hugs her back, the camera slowly pulls out, the girl’s hair is blown by the wind, and you can hear the wind"
},
{
"type": "image_url",
"image_url": {
"url": "https://example.com/fox-girl.png"
}
}
],
"generate_audio": true,
"ratio": "adaptive",
"duration": 5,
"watermark": false
}'3. Image-to-Video (First & Last Frame)
curl -X POST "https://maasunion.com/doubao/v1/video/generations" \
-H "Authorization: Bearer sk-xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-1-5-pro-251215",
"content": [
{
"type": "text",
"text": "The girl in the picture says \"cheese\" to the camera, with a 360-degree orbiting camera"
},
{
"type": "image_url",
"image_url": { "url": "https://example.com/first.jpeg" },
"role": "first_frame"
},
{
"type": "image_url",
"image_url": { "url": "https://example.com/last.jpeg" },
"role": "last_frame"
}
],
"generate_audio": true,
"ratio": "adaptive",
"duration": 5,
"watermark": false
}'4. Image-to-Video (Base64 Image)
curl -X POST "https://maasunion.com/doubao/v1/video/generations" \
-H "Authorization: Bearer sk-xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-1-0-lite-i2v-250428",
"content": [
{
"type": "text",
"text": "A girl hugging a fox, the camera slowly pulls out, the girl’s hair blown by the wind"
},
{
"type": "image_url",
"image_url": {
"url": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUg..."
}
}
],
"ratio": "adaptive",
"duration": 5,
"watermark": false
}'5. Seedance 2.0 - Multimodal Reference Video
curl -X POST "https://maasunion.com/doubao/v1/video/generations" \
-H "Authorization: Bearer sk-xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2-0-260128",
"content": [
{
"type": "text",
"text": "Use the first-person perspective of video 1 throughout, and use audio 1 as the background music throughout. A first-person perspective fruit tea commercial"
},
{
"type": "image_url",
"image_url": { "url": "https://example.com/ref1.jpg" },
"role": "reference_image"
},
{
"type": "image_url",
"image_url": { "url": "https://example.com/ref2.jpg" },
"role": "reference_image"
},
{
"type": "video_url",
"video_url": { "url": "https://example.com/ref1.mp4" },
"role": "reference_video"
},
{
"type": "audio_url",
"audio_url": { "url": "https://example.com/bgm.mp3" },
"role": "reference_audio"
}
],
"generate_audio": true,
"ratio": "16:9",
"duration": 11,
"watermark": true
}'Compatibility Mode
In addition to the dedicated route, you can also call the same Seedance capability through the OpenAI video-compatible format:
| Item | Dedicated Route | Compatible Route |
|---|---|---|
| Create | POST https://maasunion.com/doubao/v1/video/generations | POST https://maasunion.com/v1/video/generations |
| Query | GET https://maasunion.com/doubao/v1/video/generations/{task_id} | GET https://maasunion.com/v1/video/generations/{task_id} |
Compatible Request Format
{
"model": "doubao-seedance-1-5-pro-251215",
"prompt": "A girl hugging a fox, the camera slowly pulls out",
"images": ["https://example.com/frame.png"],
"seconds": "5",
"metadata": {
"content": [
{
"type": "image_url",
"image_url": { "url": "https://example.com/frame.png" },
"role": "first_frame"
}
],
"ratio": "16:9",
"generate_audio": true,
"resolution": "720p",
"watermark": false
}
}Notes:
promptis converted to atextentry incontentimagesarray is converted toimage_urlentriesseconds/durationis mapped toduration- Seedance-specific fields in
metadata(e.g.content,ratio,generate_audio) are merged into the request
Recommendation: For new integrations, prefer the native format at
/doubao/v1/video/generations; parameters match the official docs and the behavior is predictable.
Billing
The platform bills based on usage in the response:
| Scenario | Description |
|---|---|
| Token billing | Billed by usage.completion_tokens / usage.total_tokens |
| Video input | Seedance 2.0 / 2.0 fast may apply a more favorable rate when content includes a reference video |
| Minimum usage | The Seedance 2.0 family has a minimum token consumption; if actual usage is below the minimum, it is billed at the minimum |
See the platform for the actual price.
Notes
- Asynchronous task: The create endpoint only returns the task ID; you must poll the query task endpoint to get
video_url. - Video URL validity: Valid for 24 hours after generation; please download or persist in time.
- Task record retention: Task records are only kept for 7 days (from
created_at). modelandcontentare required: Use a model ID provided by the platform;contentmust contain at least one valid input.- Face material restriction: Seedance 2.0 does not support directly uploading reference images/videos containing real human faces; you can use preset virtual portraits, authorized materials, or partial model outputs containing faces as input. See the Asset Library Guide.
- Audio input restriction: Audio cannot be sent alone; it must include at least 1 reference video or image.
- Parameter compatibility: Different models may support different parameters and values; when the input does not match the selected model, the parameter will be ignored or trigger an error.
- duration and frames: Only one of them will be returned in the response;
framesis returned when specified, otherwiseduration.
Document updated: 2026-07-21
How is this guide?