Skip to content

Seedance 2.5 Video ​

Seedance 2.5 uses an asynchronous video task API: create a task first, then poll for its status and final video URL. Its unified API model name is doubao-seedance-2.5.

For the Pro/Fast 2.0 models, see the separate Seedance 2.0 guide.

Endpoints ​

CapabilityMethodPath
Create video task (official-compatible)POST/api/v3/contents/generations/tasks
Retrieve video task (official-compatible)GET/api/v3/contents/generations/tasks/{task_id}
Create video taskPOST/v1/video/generations
Retrieve video taskGET/v1/video/generations/{task_id}
Create asynchronous image moderation taskPOST/v1/images/moderations/tasks
Retrieve asynchronous image moderation taskGET/v1/images/moderations/tasks/{task_id}

Parameters and Capabilities ​

ParameterDescription
modelUse doubao-seedance-2.5 with both the unified and official-compatible APIs
contentSupports text, image_url, video_url, and audio_url
duration4 to 30 seconds, or -1 for intelligent duration
resolution480p or 720p
ratioadaptive, 21:9, 16:9, 4:3, 1:1, 3:4, or 9:16
generate_audioWhether to generate synchronized audio
watermarkWhether to add a watermark

content Item Format ​

content is an array whose items are selected by type. Image, video, and audio URLs must be nested inside the corresponding { "url": "..." } object; do not pass them as plain strings.

typeRequired fieldOptional roleDescription
texttextNoneText prompt; multiple text items are used in order
image_urlimage_url.urlreference_image, first_frame, last_frameReference image, first frame, or last frame; for asynchronously moderated images, use the returned asset_url
video_urlvideo_url.urlreference_videoReference video; defaults to a reference video when role is omitted
audio_urlaudio_url.urlreference_audioReference audio; defaults to reference audio when role is omitted
json
[
  { "type": "text", "text": "Describe the video to generate" },
  { "type": "image_url", "role": "reference_image", "image_url": { "url": "asset://reviewed-image-id" } },
  { "type": "video_url", "role": "reference_video", "video_url": { "url": "https://example.com/reference.mp4" } },
  { "type": "audio_url", "role": "reference_audio", "audio_url": { "url": "https://example.com/reference.mp3" } }
]

Common combinations include text only, text plus image, text plus video, text plus audio, and multimodal combinations of images, videos, and audio. Audio cannot be the only input; content must contain at least one text, image_url, or video_url item.

The API accepts up to 30 reference images, 10 reference videos, and 10 reference audio files. Reference audio cannot be the only input; combine it with text, an image, or a video, for example, text plus audio. Use ratio: "adaptive" for first-frame or first-and-last-frame tasks.

Text-to-Video ​

bash
curl -X POST https://cubicspace.cn/v1/video/generations \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "doubao-seedance-2.5",
    "content": [{
      "type": "text",
      "text": "A cinematic aerial shot of a futuristic city waking at sunrise"
    }],
    "duration": 5,
    "resolution": "720p",
    "ratio": "16:9",
    "generate_audio": true
  }'

A successful create request returns task_xxx with initial status queued.

Asynchronous Image Moderation ​

When image-to-video uses library-managed reference images, create an asynchronous moderation task first. Submit all images used by one video generation request together in the same images array.

bash
curl -X POST https://cubicspace.cn/v1/images/moderations/tasks \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "doubao-seedance-2.5",
    "images": [
      "https://example.com/person.png",
      "https://example.com/product.png"
    ],
    "client_request_id": "seedance-25-batch-001"
  }'

Task creation immediately returns amt_xxx. Retrieve the result with:

bash
curl https://cubicspace.cn/v1/images/moderations/tasks/amt_xxx \
  -H "Authorization: Bearer YOUR_API_KEY"

Poll every 2 to 5 seconds. Processing statuses are queued and running; terminal statuses are succeeded, partial_succeeded, failed, and expired. Only approved items can use their asset_url for generation.

Image-to-Video ​

json
{
  "model": "doubao-seedance-2.5",
  "content": [
    { "type": "text", "text": "Preserve the person in image 1 while they play with a dog in a sunny meadow" },
    {
      "type": "image_url",
      "role": "reference_image",
      "image_url": { "url": "asset://reviewed-person-asset-id" }
    }
  ],
  "duration": 5,
  "resolution": "720p",
  "ratio": "16:9"
}

First and Last Frame ​

json
{
  "model": "doubao-seedance-2.5",
  "content": [
    { "type": "text", "text": "Transition smoothly from image 1 to image 2" },
    { "type": "image_url", "role": "first_frame", "image_url": { "url": "asset://first-frame-id" } },
    { "type": "image_url", "role": "last_frame", "image_url": { "url": "asset://last-frame-id" } }
  ],
  "duration": 8,
  "resolution": "720p",
  "ratio": "adaptive"
}

Text and Audio Reference ​

json
{
  "model": "doubao-seedance-2.5",
  "content": [
    { "type": "text", "text": "Create a cinematic dance video that follows the rhythm of audio 1" },
    { "type": "audio_url", "role": "reference_audio", "audio_url": { "url": "https://example.com/reference.wav" } }
  ],
  "duration": 10,
  "resolution": "720p",
  "ratio": "16:9"
}

A request containing only audio_url is rejected. When using reference audio, also provide at least one non-empty text, image, or video item.

Official-Compatible API ​

Existing official-style clients can use:

http
POST /api/v3/contents/generations/tasks
GET /api/v3/contents/generations/tasks/{task_id}

Use model name doubao-seedance-2.5. Responses are unwrapped official-compatible objects.

Retrieve a Task ​

bash
curl https://cubicspace.cn/v1/video/generations/task_xxx \
  -H "Authorization: Bearer YOUR_API_KEY"

Use the public task_xxx returned by creation and the same API key that created it. Read the final video URL from data.result_url. data.usage.completion_tokens and data.usage.total_tokens are the final effective token counts after completion.

StageStatus
ProcessingNOT_START, SUBMITTED, QUEUED, IN_PROGRESS
SuccessSUCCESS
FailureFAILURE

Image, video, and audio URLs must be directly downloadable by the platform server. Result video URLs can expire, so download and retain the file promptly.