---
title: "Seedance 2.5 API: slugs and pricing"
description: Seedance 2.5 in the Clipia API — T2V and I2V slugs, parameter limits, how to check availability in the catalog, estimate the price and submit over REST.
icon: Clapperboard
---

Seedance 2.5 is a video model from ByteDance. The API exposes it in two public modes: text-to-video and image-to-video.

| Mode | API slug |
| --- | --- |
| Text-to-video | `seedance-2-5-t2v` |
| Image-to-video | `seedance-2-5-i2v` |

<Callout type="info" title="Check availability in your environment">
The model is enabled separately from code releases; both slugs are present in the production catalog (snapshot of November 4, 2026). Use a slug only when `GET /v1/models` returns it for your API key: a model that is switched off disappears from the list, and submitting a generation returns `404` with the code `not_found`.
</Callout>

To generate a video without the API, open the [Seedance 2.5 landing](/en/video-models/seedance-2-5): it appears in the Clipia catalog only when both modes are active.

## Check availability

<Tabs items={['cURL', 'TypeScript', 'Python']}>
<Tab value="cURL">

```bash
curl -s https://api.clipia.ai/v1/models \
  -H "Authorization: Bearer $CLIPIA_KEY" \
  | jq '.data[] | select((.slug // "") | startswith("seedance-2-5"))'
```

</Tab>
<Tab value="TypeScript">

```ts
const { data } = await clipia.models.list();
const seedance25 = data.filter(
  (model) => "slug" in model && model.slug?.startsWith("seedance-2-5"),
);

if (seedance25.length === 0) {
  throw new Error("Seedance 2.5 is not active in this environment");
}
```

</Tab>
<Tab value="Python">

```python
catalog = clipia.models.list()
seedance_25 = [
    model for model in catalog["data"]
    if (model.get("slug") or "").startswith("seedance-2-5")
]

if not seedance_25:
    raise RuntimeError("Seedance 2.5 is not active in this environment")
```

</Tab>
</Tabs>

LLM models in the same list have no `slug`, so the examples check for it — see [Model catalog](/en/docs/api-reference/models).

## Parameter limits

A snapshot of `input_schema` as of November 4, 2026. `GET /v1/models/{slug}` returns the exact fields for the selected mode — treat that live schema as authoritative over this static summary.

| Parameter | Values |
| --- | --- |
| `prompt` | up to 20,480 characters. The model advertises `30000`, but does not execute longer prompts, so the API accepts 20,480 |
| `image_url` | `seedance-2-5-i2v` only, required: the source image as an HTTPS URL |
| `duration` | `4`, `5`, `6`, `8`, `10`, `12`, `15`, `20`, `25` or `30` seconds; default `4` |
| `resolution` | `480p`, `720p`, `1080p`; default `720p` |
| `aspect_ratio` | `16:9`, `9:16`, `1:1`, `4:3`, `3:4`, `21:9`, `adaptive`; default `16:9` for T2V and `adaptive` for I2V |
| `reference_video_urls` | up to 10 URLs; a request with more videos is rejected with `400` before any credits are reserved |
| `reference_image_urls`, `reference_audio_urls` | model references: up to 30 images and up to 10 audio clips. The schema does not declare them; a request above the limit is not rejected, and the extra URLs are silently dropped |
| `generate_audio` | sound is on by default; `generate_audio: false` returns a silent video. If the audio track does not pass the safety check, the video arrives without sound with an `audio_dropped` warning |

The defaults are execution defaults: a request without a parameter is priced and executed with exactly these values.

## Fetch schema and price

```bash
curl https://api.clipia.ai/v1/models/seedance-2-5-t2v \
  -H "Authorization: Bearer $CLIPIA_KEY"
```

Before submitting, send the same `input` to `POST /v1/models/seedance-2-5-t2v/estimate` — see [Cost estimation](/en/docs/api-reference/estimate). The cost depends on duration and resolution; audio does not change it.

<Callout type="info" title="Pricing">
Prices are current as of November 2026. The exact cost is always shown on the run button before anything is charged.
</Callout>

## Submit text-to-video

```bash
curl -X POST https://api.clipia.ai/v1/models/seedance-2-5-t2v \
  -H "Authorization: Bearer $CLIPIA_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "input": {
      "prompt": "One continuous cinematic tracking shot through a storm",
      "duration": 10,
      "resolution": "1080p",
      "aspect_ratio": "16:9",
      "generate_audio": true
    }
  }'
```

For image-to-video, use `seedance-2-5-i2v` and pass the image in the `image_url` field, as declared by its `input_schema`. Don't copy field names from other integrations.

## Explicit model swap

If Seedance 2.5 is missing from the live catalog, you can explicitly choose `seedance-2-fast-t2v` or `seedance-2-fast-i2v`. Don't swap the model silently when the user picked version 2.5.
