MaasUnionMaasUnion
API Reference
AI Model APIVideoDoubao Video

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

ItemDescription
Create taskPOST https://maasunion.com/doubao/v1/video/generations
Query taskGET https://maasunion.com/doubao/v1/video/generations/{task_id}
Request formatConsistent with the Volcano Engine Ark official API (native JSON pass-through)
Response formatConsistent with the Volcano Engine Ark official API (native JSON pass-through)

Supported Models (Built-in Reference)

modelDescription
doubao-seedance-2-0-260128Seedance 2.0 (multimodal reference, audio/silent)
doubao-seedance-2-0-fast-260128Seedance 2.0 fast (does not support 1080p)
doubao-seedance-1-5-pro-251215Seedance 1.5 pro (audio, draft mode)
doubao-seedance-1-0-pro-250528Seedance 1.0 pro
doubao-seedance-1-0-pro-fast-250528Seedance 1.0 pro fast (first-frame image2video, text2video)
doubao-seedance-1-0-lite-t2v-250428Seedance 1.0 lite text-to-video
doubao-seedance-1-0-lite-i2v-250428Seedance 1.0 lite image-to-video

Model Capability Matrix

Capability2.0 / 2.0 fast1.5 pro1.0 pro1.0 pro fast1.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

HeaderRequiredDescription
AuthorizationYesBearer {your_api_token}, API token issued by the gateway
Content-TypeRequired for POSTapplication/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_url is valid for 24 hours; please download or persist it in time.


Request Parameters

Request Body

ParameterTypeRequiredDefaultDescription
modelstringYesModel ID or Endpoint ID
contentobject[]YesInput content, supports combinations of text, image, video, audio, etc.; see content Object
callback_urlstringNoCallback URL for task status changes (POST, same structure as the query response)
return_last_framebooleanNofalseWhen true, return the last frame image URL (png, no watermark), which can be used for continuous video generation
service_tierstringNodefaultdefault (online) / flex (offline, ~50% of online price). Seedance 2.0 only supports default
execution_expires_afterintegerNo172800Task timeout (seconds), from created_at; range [3600, 259200]
generate_audiobooleanNotrueWhether to generate synchronized audio. Only supported by 2.0 / 2.0 fast / 1.5 pro
draftbooleanNofalseDraft mode, only supported by 1.5 pro (480p Draft video; does not support last frame or offline inference)
toolsobject[]NoTool-calling configuration, only supported by Seedance 2.0
safety_identifierstringNoEnd-user unique identifier (length ≤ 64), used for safety detection
priorityintegerNo0Execution priority 0–9; higher value = higher priority; only supported by Seedance 2.0; not supported in flex mode
resolutionstringNo720p / 1080p480p / 720p / 1080p (2.0 fast does not support 1080p)
ratiostringNoadaptive / 16:916:9 / 4:3 / 1:1 / 3:4 / 9:16 / 21:9 / adaptive (auto fit)
durationintegerNo5Duration in seconds. 1.0: [2,12]; 1.5/2.0: [4,15] or -1 (smart)
framesintegerNoFrame count, higher priority than duration, range [29, 289] and satisfies 25 + 4n
seedintegerNo-1Random seed [-1, 2³²-1]; -1 means random
camera_fixedbooleanNofalseWhether to fix the camera (not supported for reference image scenarios or 2.0)
watermarkbooleanNofalseWhen true, show the AI-generated watermark in the bottom-right corner

Choose either duration or frames; frames has higher priority.
The parameters above can also be passed via the compatible route inside metadata; 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

FieldTypeDescription
typestringtext
textstringPrompt

Image

FieldTypeDescription
typestringimage_url
image_url.urlstringImage URL or Base64 (data:image/png;base64,...)
rolestringfirst_frame / last_frame / reference_image (2.0, up to 9 images)

Video (Seedance 2.0 only)

FieldTypeDescription
typestringvideo_url
video_url.urlstringVideo URL or asset ID (asset://<ASSET_ID>)
rolestringreference_video

Reference video requirements:

ItemLimit
Formatmp4, mov
Resolution480p, 720p, 1080p
DurationSingle 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 sizeSingle file ≤ 50 MB
Frame rate[24, 60] FPS

Supported container/encoding formats:

ContainerExtensionMIMESupported encoding
MP4.mp4video/mp4Video: H.264/AVC, H.265/HEVC; Audio: AAC, MP3
QuickTime.movvideo/quicktimeVideo: H.264/AVC, H.265/HEVC; Audio: AAC, MP3

Audio (Seedance 2.0 only)

FieldTypeDescription
typestringaudio_url
audio_url.urlstringAudio URL
rolestringreference_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)

FieldTypeDescription
typestringdraft_task_id
draft_task_idstringDraft 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 ratioSeedance 1.0 seriesSeedance 1.5 pro / 2.0 series
16:9864×480864×496
4:3736×544752×560
1:1640×640640×640
3:4544×736560×752
9:16480×864496×864
21:9960×416992×432

720p

Aspect ratioSeedance 1.0 seriesSeedance 1.5 pro / 2.0 series
16:91248×7041280×720
4:31120×8321112×834
1:1960×960960×960
3:4832×1120834×1112
9:16704×1248720×1280
21:91504×6401470×630

1080p (Seedance 2.0 fast does not support)

Aspect ratioSeedance 1.0 seriesSeedance 1.5 pro / 2.0 series
16:91920×10881920×1080
4:31664×12481664×1248
1:11440×14401440×1440
3:41248×16641248×1664
9:161088×19201080×1920
21:92176×9282206×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"
}
FieldTypeDescription
idstringGateway 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:

ItemDedicated RouteCompatible Route
CreatePOST https://maasunion.com/doubao/v1/video/generationsPOST https://maasunion.com/v1/video/generations
QueryGET 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:

  • prompt is converted to a text entry in content
  • images array is converted to image_url entries
  • seconds / duration is mapped to the upstream duration
  • 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:

ScenarioGateway Behavior
Per-task prepaidPre-deducted by model multiplier at submission, settled by actual completion_tokens when complete (if configured)
Video input discountSeedance 2.0 / 2.0 fast automatically applies the video_input discount multiplier when content contains video_url
Token reconciliationusage.completion_tokens / usage.total_tokens come from upstream and can be used for Token-based billing
Minimum usageThe 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

  1. Asynchronous task: The create endpoint only returns the task ID; you must poll the query task endpoint to get video_url.
  2. Video URL validity: Valid for 24 hours after generation; please download or persist in time (TOS data subscription auto-persistence can be configured).
  3. Task record retention: Upstream task records are only kept for 7 days (from created_at). Query time range is [T-7 days, T).
  4. model and content are required: The dedicated route does not auto-fill placeholder content; content must contain at least one valid input.
  5. 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).
  6. 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.
  7. Audio input restriction: Audio cannot be sent alone; it must include at least 1 reference video or image.
  8. 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.
  9. duration and frames: Only one of them will be returned in the response; frames is returned when specified, otherwise duration.

Document updated: 2026-06-16

How is this guide?