# Seedance 2.0 Video Generation

> Generate videos with Seedance 2.0 models through UniAll video APIs.

Canonical URL: https://docs.uniall.ai/models/video/seedance-2-0
Locale: en

Seedance 2.0 supports text-to-video, image-to-video, first-last-frame generation, multi-reference generation, and compatible edit or extension modes. New integrations should use the new create task page, not the deprecated old task interface.

## Supported Models

| Model | Notes |
| --- | --- |
| `seedance2.0-480p` | Standard tier. |
| `seedance2.0-720p` | Standard tier. |
| `seedance2.0-1080p` | Standard tier. |
| `seedance2.0-4k` | 4K tier when enabled. |
| `seedance2.0-fast-480p` | Fast tier. |
| `seedance2.0-fast-720p` | Fast tier. |
| `seedance2.0-mini-480p` | Mini tier. |
| `seedance2.0-mini-720p` | Mini tier. |

## Endpoint

```http
POST /v1/video/generations
GET  /v1/videos/{task_id}
```

Some compatibility clients may see `/v1/videos/generations`, but the selected source page uses `/v1/video/generations` for task creation.

## Authentication

```http
Authorization: Bearer sk-***
Content-Type: application/json
```

## Request Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `model` | string | Yes | Seedance 2.0 model ID. |
| `prompt` | string | Yes | Prompt. Prompt-only requests are text-to-video. |
| `duration` | integer/string | Conditional | Source range: any value from `5` to `15`. |
| `aspect_ratio` | string | No | `9:16`, `1:1`, or `16:9`. |
| `image` | string | Conditional | Single source image for image-to-video. |
| `last_image` | string | Conditional | Last frame image; use with `image`. |
| `images` | string[] | Conditional | Reference image URLs for all-purpose reference mode. Maximum `9`. |
| `videos` | string[] | Conditional | Reference video URLs. Maximum `3`; each `2` to `15` seconds; total duration no more than `15` seconds. |
| `audios` | string[] | No | Reference audio URLs. |
| `extra_body.generate_audio` | boolean | No | Whether to generate video with audio. |
| `extra_body.seed` | integer | No | Random seed. |
| `extra_body.watermark` | boolean/string | No | Watermark switch. |
| `extra_body.camera_fixed` | boolean/string | No | Fixed camera switch. |
| `extra_body.return_last_frame` | boolean/string | No | Whether to return the last frame. |
| `extra_body.operation` | string | Compatibility only | `reference_to_video`, `edit_video`, `extend_video`, or `first_last_frame`; ignored by content-array style clients. |

## Request Example

```bash
curl -X POST "{BASE_URL}/v1/video/generations" \
  -H "Authorization: Bearer sk-***" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance2.0-720p",
    "prompt": "A clean commercial product video with slow camera movement, soft reflections, and realistic lighting.",
    "duration": 8,
    "aspect_ratio": "16:9",
    "extra_body": {
      "generate_audio": false,
      "seed": 42,
      "watermark": false
    }
  }'
```

## Multi-Reference Example

```bash
curl -X POST "{BASE_URL}/v1/video/generations" \
  -H "Authorization: Bearer sk-***" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance2.0-fast-720p",
    "prompt": "Create a fast fashion lookbook clip while preserving the product identity.",
    "images": [
      "https://example.com/model.png",
      "https://example.com/outfit.png"
    ],
    "duration": 6,
    "aspect_ratio": "9:16",
    "extra_body": {
      "generate_audio": true,
      "camera_fixed": false
    }
  }'
```

## Query Task Status

```bash
curl "{BASE_URL}/v1/videos/task_xxx" \
  -H "Authorization: Bearer sk-***"
```

```json
{
  "id": "task_xxx",
  "task_id": "task_xxx",
  "object": "video.generation.job",
  "model": "seedance2.0-720p",
  "status": "completed",
  "progress": 100,
  "video_url": "https://example.com/output.mp4"
}
```

## Billing Notes

Seedance billing depends on the selected model tier, output resolution, duration, and whether reference media or audio generation is used. Final billing should follow the platform settlement record.

## Common Errors

- Using the deprecated create task interface for a new integration.
- Sending more than `9` reference images.
- Sending more than `3` reference videos or reference videos whose total duration exceeds `15` seconds.
- Using a `duration` outside `5` to `15`.
- Passing incompatible operation hints together with the new input format.

## Related Pages

- [Video Generation Overview](/models/video/overview)
- [Happy-Horse Video Generation](/models/video/happy-horse)
- [Grok Imagine Video Generation](/models/video/grok-imagine)
