---
title: "Seedance 2.5 API: slugs, parameters, and availability"
description: "Check Seedance 2.5 availability, select its T2V/I2V slug, fetch the schema, and submit a generation."
---

Seedance 2.5 supports two public API modes:

| 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">
Model activation is controlled separately from the code deployment. Use a slug
only when `GET /v1/models` returns it for your API key. If it is not listed yet,
a generation request returns `model_not_found`.
</Callout>

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

## 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(({ slug }) => 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 = client.models.list()
seedance_25 = [
    model for model in catalog["data"]
    if model["slug"].startswith("seedance-2-5")
]

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

</Tab>
</Tabs>

## Confirmed limits

| Parameter | Values |
| --- | --- |
| Prompt | up to `30000` characters |
| Duration | 4–30 seconds |
| Resolution | `480p`, `720p` |
| Aspect ratio | `16:9`, `9:16`, `1:1`, `4:3`, `3:4`, `21:9`, `adaptive` |
| Reference images | up to 30 |
| Reference videos | up to 10 |
| Reference audio | up to 10 |
| Native audio | `generate_audio: true` |

`GET /v1/models/{slug}` returns the exact public fields for the selected mode.
Treat that live schema as authoritative over this static summary.

## Fetch schema and price

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

Before submit, send the same `input` to
`POST /v1/models/seedance-2-5-t2v/estimate`. Cost depends on duration,
resolution, and native audio generation.

## 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": "720p",
      "aspect_ratio": "16:9",
      "generate_audio": true
    }
  }'
```

For image-to-video, use `seedance-2-5-i2v` and pass the image field exposed by
its live `input_schema`. Do not copy internal field names from another
integration.

## Explicit fallback

If Seedance 2.5 is absent from the live catalog, an explicit fallback can use
`seedance-2-fast-t2v` or `seedance-2-fast-i2v`. Do not silently replace the model
when the user explicitly selected version 2.5.
