Seeddance 2.5 Economy 30s fixed


Seedance 2.5 Economy 30s Fixed provides a specialized, ultra-low-cost deployment channel for long-form AI video generation. Standardized to a full 30-second output duration with fixed aspect ratios and resolutions, this pay-per-generation channel simplifies parameter management while offering exceptional price-performance efficiency. Maintaining a stable ~70% availability with average completion times ranging from 1,500 to 2,000 seconds (approx. 25–33 minutes), it is the ideal pipeline for automated batch processing, background content queues, and non-time-sensitive video production where minimizing unit cost is the primary objective.

Seedance 2.5 Economy 30s

Seedance 2.5 Economy 30s is a video generation model focused on generation efficiency and cost control. It generates videos with a fixed duration of 30 seconds from text prompts and supports multiple aspect ratios, as well as image, video, and audio references.

When reference videos are used, their duration is included in the billable duration. The total cost is calculated as “unit price × (output video duration + reference video duration).”

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

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. Use @Image1, @Video1, and @Audio1 in the prompt to reference the first resource in the corresponding array. On success, the response returns a task_id; save it for polling and fetching results.

POST/v1/task/submit/bytedance/seedance-2-5-economy-30s

2. Query Task Result (Poll)

Use the task_id from submit to poll progress. Repeat until the task reaches a terminal state. 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.

Total: 8 Required: 4 Optional: 4

promptstringrequired

The text prompt describing the video to be generated. Supports multiline text.

When using reference resources, reference the corresponding array items with @ImageN, @VideoN, or @AudioN, where N starts at 1. For example, @Image1 refers to the first image URL in the images array.

imagesstring[]

A list of publicly accessible image URLs used as image references. Reference them in the prompt using markers such as @Image1 and @Image2.

videosstring[]

A list of publicly accessible video URLs used as video references. Reference them in the prompt using markers such as @Video1 and @Video2.

The duration of reference videos is included in the billable duration. The total cost is calculated as “unit price × (output video duration + reference video duration).”

audiosstring[]

A list of publicly accessible audio URLs used as audio references. Reference them in the prompt using markers such as @Audio1 and @Audio2.

resolutionstringrequired

The output video resolution.

720p
ratiostringrequired

The output video aspect ratio.

16:91:19:16
durationintegerrequired

The output video duration in seconds. This model only supports a fixed duration of 30 seconds.

Value: 30

Default"30"
watermarkboolean

Whether to add an “AI Generated” watermark to the output video.

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 such as Cursor or ChatGPT to help them understand this model's API, call flow, and key parameters. Use Copy for AI or Copy LLM Prompt to copy the complete content below.

# bytedance/seedance-2-5-economy-30s

> Seedance 2.5 Economy 30s is a video generation model focused on generation efficiency and cost control. It supports text prompts as well as image, video, and audio references and generates videos with a fixed duration of 30 seconds.

## 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`).

When reference videos are used, their duration is included in the billable duration. The total cost is calculated as “unit price × (output video duration + reference video duration).”

## API Info

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

## Call Flow

1. **Submit**: POST the submit path with the generation parameters; 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

- `prompt` (required): Video generation prompt. Supports multiline text. Use `@ImageN`, `@VideoN`, and `@AudioN` to reference resources in the corresponding arrays; indexing starts at `1`.
- `images` (optional): List of publicly accessible image URLs. Reference them with markers such as `@Image1` and `@Image2`.
- `videos` (optional): List of publicly accessible video URLs. Reference them with markers such as `@Video1` and `@Video2`. Reference video duration is included in the billable duration.
- `audios` (optional): List of publicly accessible audio URLs. Reference them with markers such as `@Audio1` and `@Audio2`.
- `resolution` (required): Output video resolution. The supported value is `720p`.
- `ratio` (required): Output aspect ratio. Supported values are `16:9`, `1:1`, and `9:16`.
- `duration` (required): Output duration in seconds. This model only supports a fixed duration of `30`.
- `watermark` (optional): Whether to add an “AI Generated” watermark to the output video.

### Output Notes

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

## Billing

- Total cost = unit price × (output video duration + reference video duration)
- The output video duration is fixed at 30 seconds
- When no reference video is provided, only the 30-second output duration is billed
- When reference videos are provided, the duration of all billable reference videos is included
- Image and audio references are not included in the video duration

## Notes

- Use the same `task_id` across both steps; `result` is `[]` while processing—keep polling
- `FAILED` is terminal—check the request parameters and reference resources
- The output video duration is fixed at 30 seconds
- The supported resolution is `720p`
- The order of the reference resource arrays must match the reference indexes used in the prompt