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.aiAuthentication
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 three-step async flow: submit a task to obtain a task_id, poll until the task completes, then fetch the result when status is SUCCEEDED. The examples below reuse the same task_id across all three 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.
2. Poll Status
Query progress with the task_id from submit. The response contains only status (SUBMITTED | SUCCEEDED | FAILED). Call get-result when SUCCEEDED; FAILED means the task did not complete.
3. Get Result
After success, fetch the output with the same task_id. The response is a top-level array; each item has type, url, and download_url—use url for preview and download_url to download.
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
Multimodal content array. Each item is a text prompt or a reference media resource.
Whether to generate audio for the output video.
Output aspect ratio. When set to adaptive, the model selects the most appropriate ratio based on input.
Output resolution.
Video duration in seconds. Integer from 4–30, or -1 for automatic duration selection.
Whether to add an "AI Generated" watermark to the output video.
List of tools to use.
Poll Status — Input
Total: 1 Required: 1 Optional: 0
Task ID returned from the submit endpoint.
Get Result — Input
Total: 1 Required: 1 Optional: 0
Task ID returned from the submit endpoint.
Output Schema
Submit Task — Output
Total: 1 Required: 1 Optional: 0
Unique identifier for the async task. Use this ID to poll status and retrieve results.
Poll Status — Output
Total: 1 Required: 1 Optional: 0
Current task status. Retrieve results when status is SUCCEEDED.
Get Result — Output
Response body is an array of resource objects (array[object]).
Total: 3 Required: 3 Optional: 0
Resource type. Use Video for video models.
Preview or access URL of the generated video.
Download URL with attachment disposition.
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 three-step async task API: submit a generation request, poll status, then fetch the video URL on success.
## API Info
- **Base URL**:`https://api.icreat.ai`
- **Submit endpoint (POST)**:`/v1/task/submit/bytedance/seedance-2-5`
- **Poll endpoint (POST)**:`/v1/task/query-status`
- **Get result endpoint (POST)**:`/v1/task/get-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. **Poll**: POST `/v1/task/query-status` with `{ "task_id": "..." }`; response contains **only** `{ "status": "SUBMITTED|SUCCEEDED|FAILED" }`
3. **Get result**: when `status` is `SUCCEEDED`, POST `/v1/task/get-result`; top-level array; 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` only
- Result: top-level `[{ "type": "Video", "url": "...", "download_url": "..." }]`
## Notes
- Use the same `task_id` across all three steps; do not skip polling
- `FAILED` is terminal — check request parameters or reference media