> ## Documentation Index
> Fetch the complete documentation index at: https://docs.snapgen.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Seedance 2.5 Extend

> Seedance 2.5 Extend video API via SnapGen: video extension mode model of Seedance 2.5, billed from prepaid balance.

`seedance-2.5-extend` is the video extension mode model of Seedance 2.5: it continues one to three source clips, up to 1080p.

| Property                | Value                                                                                                                   |
| ----------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| Model ID                | `seedance-2.5-extend`                                                                                                   |
| Input                   | prompt + video                                                                                                          |
| Output                  | 480p, 720p, 1080p video with native audio                                                                               |
| Duration                | 4 to 30 seconds                                                                                                         |
| Price                   | 480p: \$0.15 per second; 720p: \$0.335 per second; 1080p: \$0.815 per second                                            |
| Reference video billing | Billed seconds = output seconds + reference seconds, measured by the gateway (15 s billed if a clip cannot be measured) |

Confirm live rates on the [models page](https://snapgen.org/models/seedance-2-5).

<ParamField body="model" type="string" required>
  Set to `seedance-2.5-extend`.
</ParamField>

<ParamField body="prompt" type="string" required>
  Describe the subject, action, camera movement, lighting, and audio intent.
</ParamField>

<ParamField body="seconds" type="string" default="10">
  Output length: 4 to 30 seconds.
</ParamField>

<ParamField body="aspect_ratio" type="string">
  One of `adaptive`. `adaptive` follows the input image or video. Send it explicitly; do not send a pixel `size`.
</ParamField>

<ParamField body="resolution" type="string" default="720p">
  One of `480p`, `720p`, `1080p`. The price depends on the resolution.
</ParamField>

<ParamField body="video_urls" type="string[]" required>
  One to 3 public source or reference clips, each up to 50 MB (MP4, MOV).
  The gateway reads each clip's length from its MP4/MOV header with HTTP range requests and bills that length, rounded up to whole seconds (up to 15 s). Host clips where range requests work, such as S3, R2, or most CDNs; a clip that cannot be measured bills 15 s.
</ParamField>

<ParamField body="generate_audio" type="boolean" default="true">
  Set to `false` for a silent video.
</ParamField>

## Request

```bash theme={null}
curl https://api.snapgen.org/v1/videos \
  -H "Authorization: Bearer $SNAPGEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2.5-extend",
    "prompt": "The boat keeps drifting toward the shore",
    "seconds": "5",
    "aspect_ratio": "adaptive",
    "resolution": "720p",
    "video_urls": ["https://example.com/source.mp4"]
  }'
```

The response returns a queued task `id`. Poll and download with the same `model`:

```bash theme={null}
curl "https://api.snapgen.org/v1/videos/$VIDEO_ID?model=seedance-2.5-extend" \
  -H "Authorization: Bearer $SNAPGEN_API_KEY"

curl -L "https://api.snapgen.org/v1/videos/$VIDEO_ID/content?model=seedance-2.5-extend" \
  -H "Authorization: Bearer $SNAPGEN_API_KEY" \
  --output video.mp4
```

See the [Video API workflow](/api-reference/video-generation) for polling intervals, webhooks, and failure handling.

## Price examples

| Resolution | Per second | 5-second clip |
| ---------- | ---------- | ------------- |
| 480p       | \$0.15     | \$0.75        |
| 720p       | \$0.335    | \$1.675       |
| 1080p      | \$0.815    | \$4.075       |

<Note>
  Media inputs must be public `http` or `https` URLs. Private network addresses and
  local files are rejected. Failed generations are not charged.
</Note>
