Seedance 2.5


Seedance 2.5 is multimodal video generation from reference images, videos, and audio. Supports video editing and extension.

Seedance 2.5

Seedance 2.5 is ByteDance's multimodal video generation model. It supports reference images, videos, and audio to generate video up to 30 seconds per pass, with video editing, extension, and the web_search tool. Output resolution is 480p or 720p; duration is 4–30 seconds.

Base URL

https://api.icreat.ai

Authentication

All API requests must be authenticated with an API Key. You can obtain an API Key from the console.

export ICREAT_API_KEY="your-api-key-here"

HTTP Request Headers

import os

API_KEY = os.environ.get("ICREAT_API_KEY")
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer " + API_KEY,
}

Protect your API Key

Never expose your API Key in client-side code or public repositories. Use environment variables or a backend proxy.

Code Examples

Image and video generation uses a two-step async flow: submit a task to get task_id, then poll via query task result; the response includes status and result ([] while processing; on SUCCEEDED, result holds resources and costUSD is present). The examples below use the same task_id across both steps.

1. Submit Task

Send the generation request to the submit endpoint. On success, the response returns a task_id—save it for polling and fetching results.

POST/v1/task/submit/bytedance/seedance-2-5

2. Query Task Result (Poll)

Use the task_id from submit to poll progress (repeat until terminal). The response includes status and result: result is [] while processing; on SUCCEEDED, result holds resources and costUSD is included; FAILED means the task failed.

POST/v1/task/result

Input Schema

Submit Task — Input

The following parameters are accepted in the submit request body. The API uses a multimodal input structure; content is a required array supporting any combination of text, image, video, and audio references.

Total: 7 Required: 1 Optional: 6

contentarray[object]required

Multimodal content array. Each item is a text prompt or a reference media resource.

Min items1
generate_audioboolean

Whether to generate audio for the output video.

ratiostring

Output aspect ratio. When set to adaptive, the model selects the most appropriate ratio based on input.

16:94:31:13:49:1621:9adaptive
resolutionstring

Output resolution.

480p720p
durationinteger

Video duration in seconds. Integer from 4–30, or -1 for automatic duration selection.

watermarkboolean

Whether to add an "AI Generated" watermark to the output video.

toolsarray[object]

List of tools to use.

Query Task Result — Input

Total: 1 Required: 1 Optional: 0

task_idstringrequired

The task ID returned from the submit endpoint.

Output Schema

Submit Task — Output

Total: 1 Required: 1 Optional: 0

task_idstring

Unique identifier for the async task. Use this ID to poll status and retrieve results.

Query Task Result — Output

Total: variable

statusstring

Current task status. result is usually [] until success; on SUCCEEDED, result holds resources and costUSD is present.

SUBMITTEDSUCCEEDEDFAILED
resultarray[object]

Generated resources. Empty array while processing or on failure; array of objects on success.

costUSDnumber

Task cost in USD. Present only when status is SUCCEEDED.

LLM Prompt

The Markdown below is an LLM-friendly prompt you can paste into AI assistants (e.g. Cursor, ChatGPT) to help them understand this model's API, call flow, and key parameters. Use Copy for AI or copy from the code block below.

# bytedance/seedance-2-5

> Seedance 2.5 is ByteDance's multimodal video generation model.

## Overview

Use the iCreat two-step async task API: submit a generation request, then poll the query task result endpoint; on success read resources from `result` (includes `costUSD`).

## API Info

- **Base URL**:`https://api.icreat.ai`
- **Submit endpoint (POST)**:`/v1/task/submit/bytedance/seedance-2-5`
- **Query result endpoint (POST)**:`/v1/task/result`
- **Model ID**:`bytedance/seedance-2-5`
- **Auth**:`Authorization: Bearer ${ICREAT_API_KEY}`

## Call Flow

1. **Submit**: POST submit path with body per Input Notes; response `{ "task_id": "..." }`
2. **Query result**: POST `/v1/task/result` with `{ "task_id": "..." }`; response includes `status` and `result` (`[]` while processing); on `SUCCEEDED`, `result` holds resources and `costUSD` is present; read `url` or `download_url` when `type` is `Video`

### Input Notes

- Request body centers on a multimodal `content` array plus resolution/duration params
- `video_url` (optional): Required when `type` is `video_url`. Reference video URL object.
- `audio_url` (optional): Required when `type` is `audio_url`. Reference audio URL object.
- `role` (optional): Required for media types (`image_url`, `video_url`, `audio_url`). Specifies the reference media role.
- `need_review` (optional): Whether to submit reference content for official review. Set to `true` when content contains faces or copyrighted IP; otherwise generation is likely to fail.
- `generate_audio` (optional): Whether to generate audio for the output video.
- `ratio` (optional): Output aspect ratio. When set to `adaptive`, the model selects the most appropriate ratio based on input.
- `resolution` (optional): Output resolution.
- `duration` (optional): Video duration in seconds. Integer from 4–30, or `-1` for automatic duration selection.
- `watermark` (optional): Whether to add an "AI Generated" watermark to the output video.
- `tools` (optional): List of tools to use.

### Output Notes

- Poll: read `status`; `result` is `[]` while processing
- Success: `result` is `[{ "type": "Video", "url": "...", "download_url": "..." }]` plus `costUSD`

## Notes

- Use the same `task_id` across both steps; `result` is `[]` while processing — keep polling
- `FAILED` is terminal — check request parameters or reference media