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}
Upstream capability: Volcano Engine Ark Seedance video generation (/api/v3/contents/generations/tasks)
Official reference:
Overview
Doubao Video is the gateway's dedicated 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 (native JSON pass-through) |
| Response format | Consistent with the Volcano Engine Ark official API (native JSON pass-through) |
Supported Models (Built-in Reference)
| 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 gateway |
Content-Type | Required for POST | application/json |
Clients do not need to (and should not) pass the upstream key.
Interface Description
1. Create Video Generation Task
POST https://maasunion.com/doubao/v1/video/generations
Asynchronous interface: returns the gateway 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 by the gateway 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 or Endpoint ID |
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, the gateway passes through the upstream Volcano Engine Ark Seedance create-task response as-is, only replacing id with the gateway public task ID (used for subsequent queries).
Response example:
{
"id": "task_20260409120000_abc123"
}| Field | Type | Description |
|---|---|---|
id | string | Gateway 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, the gateway also supports calling 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 to the upstreamduration- Seedance-specific fields in
metadata(e.g.content,ratio,generate_audio) are merged into the upstream 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 gateway bills based on the usage returned by the upstream and the task configuration:
| Scenario | Gateway Behavior |
|---|---|
| Per-task prepaid | Pre-deducted by model multiplier at submission, settled by actual completion_tokens when complete (if configured) |
| Video input discount | Seedance 2.0 / 2.0 fast automatically applies the video_input discount multiplier when content contains video_url |
| Token reconciliation | usage.completion_tokens / usage.total_tokens come from upstream and can be used for Token-based billing |
| Minimum usage | The Seedance 2.0 family has a minimum token consumption limit; if actual usage is below the minimum, it is billed at the minimum |
The actual deduction rules depend on the configured model price / multiplier.
The response header X-New-Api-Other-Ratios may contain the additional multiplier info for this request (e.g. video_input).
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 (TOS data subscription auto-persistence can be configured).
- Task record retention: Upstream task records are only kept for 7 days (from
created_at). Query time range is[T-7 days, T). modelandcontentare required: The dedicated route does not auto-fill placeholder content;contentmust contain at least one valid input.- Seedance 2.0 account requirement: Activating 2.0 / 2.0 fast requires account balance ≥ 200 CNY or a purchased resource pack (subject to the Volcano Engine Ark console).
- 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.
- 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-06-16
How is this guide?