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

# Seedance

> Use the native Seedance API for video generation

> Last updated: 2026-06-06

# Seedance

Seedance is ByteDance / Doubao's video generation family. On Crazyrouter, the public contract stays on the native `/volc/v1/*` surface. The old unified-video `doubao-seedance-2-0-fast` alias is no longer the primary customer-facing protocol.

## Current Public Models

| Model                          | Current public positioning                                           |
| ------------------------------ | -------------------------------------------------------------------- |
| `doubao-seedance-1-0-lite-t2v` | text-to-video                                                        |
| `doubao-seedance-1-0-lite-i2v` | single-image image-to-video                                          |
| `doubao-seedance-1-0-pro`      | general higher-quality generation                                    |
| `doubao-seedance-1-0-pro-fast` | general faster generation                                            |
| `doubao-seedance-1-5-pro`      | higher-end version with room for later official capability expansion |
| `doubao-seedance-2-0`          | official Seedance 2.0 multimodal video generation                    |
| `doubao-seedance-2-0-fast`     | official Seedance 2.0 Fast multimodal video generation               |

## Submit a Video Task

```
POST /volc/v1/contents/generations/tasks
```

### Current Public Request Parameters

| Parameter                 | Type    | Required      | Description                                                                                                    |
| ------------------------- | ------- | ------------- | -------------------------------------------------------------------------------------------------------------- |
| `model`                   | string  | Yes           | Public model name. Use one of the canonical model names above                                                  |
| `content`                 | array   | Yes           | Input content array                                                                                            |
| `content[].type`          | string  | Yes           | Supported values are `text`, `image_url`, `video_url`, `audio_url`, and `draft_task`                           |
| `content[].text`          | string  | Conditionally | Required when `type=text`                                                                                      |
| `content[].image_url.url` | string  | Conditionally | Required when `type=image_url`                                                                                 |
| `content[].video_url.url` | string  | Conditionally | Required when `type=video_url`                                                                                 |
| `content[].audio_url.url` | string  | Conditionally | Required when `type=audio_url`                                                                                 |
| `content[].role`          | string  | Optional      | Seedance 2.0 supports `first_frame`, `last_frame`, `reference_image`, `reference_video`, and `reference_audio` |
| `generate_audio`          | boolean | Optional      | Whether to generate audio on Seedance 2.0                                                                      |
| `ratio`                   | string  | Optional      | Output aspect ratio such as `16:9`                                                                             |
| `resolution`              | string  | Optional      | Seedance 2.0 / 2.0 fast currently supports only `480p` and `720p`                                              |
| `duration`                | integer | Optional      | Seedance 2.0 / 2.0 fast supports `4-15` or `-1`                                                                |
| `watermark`               | boolean | Optional      | Whether to add watermark                                                                                       |
| `seed`                    | integer | Optional      | Random seed                                                                                                    |

### Seedance 2.0 Official Capability Boundary

* Supports four input modalities: text, image, video, and audio.
* Supports multimodal references: up to `9` images, `3` videos, and `3` audios, with a mixed file limit of `12`.
* Image formats: `jpeg`, `png`, `webp`, `bmp`, `tiff`, `gif`; each image must stay under `30MB`.
* Video formats: `mp4`, `mov`; up to `3` video references, recommended combined duration in `[2, 15]s`, total file size under `50MB`.
* Audio formats: `mp3`, `wav`; up to `3` audio references, combined duration `<= 15s`, total file size under `15MB`.
* Audio cannot be provided alone. At least `1` image or video reference is required with it.
* Output duration supports `4-15s`, and `-1` can be passed through to let the upstream use its default behavior.
* Supports `480p` and `720p`; `1080p` is currently unsupported on Seedance 2.0 / 2.0 fast.
* `frames` is currently unsupported for Seedance 2.0 / 2.0 fast.
* `camera_fixed` is currently unsupported for Seedance 2.0 / 2.0 fast.
* In the product UI, Seedance 2.0 is currently exposed mainly as “first/last frame” and “omni reference” entry points; on the API side those semantics map to `content[].role` and `content[].type`.
* Upstream compliance currently blocks clearly realistic human-face image or video uploads.

### Official Seedance 2.0 Pricing Truth

| Model                      | Official billing mode | Official price                                                                                |
| -------------------------- | --------------------- | --------------------------------------------------------------------------------------------- |
| `doubao-seedance-2-0`      | per output token      | `28 CNY / 1M output tokens` with video input; `46 CNY / 1M output tokens` without video input |
| `doubao-seedance-2-0-fast` | per output token      | `22 CNY / 1M output tokens` with video input; `37 CNY / 1M output tokens` without video input |

<Note>
  MIME, duration, and file-size enforcement for remote URL assets is ultimately handled by the upstream. Crazyrouter currently pre-validates count limits, duration parameter boundaries, the no-audio-only rule, and explicit unsupported fields such as `frames`, `camera_fixed`, and non-480p/720p output requests.
</Note>

### Text-to-Video Example

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST https://api.crazyrouter.com/volc/v1/contents/generations/tasks \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -d '{
      "model": "doubao-seedance-1-0-lite-t2v",
      "content": [
        {
          "type": "text",
          "text": "A slow push-in shot of a white seagull skimming over the ocean with golden sunset reflections on the waves"
        }
      ]
    }'
  ```

  ```python Python theme={null}
  import requests

  response = requests.post(
      "https://api.crazyrouter.com/volc/v1/contents/generations/tasks",
      headers={
          "Content-Type": "application/json",
          "Authorization": "Bearer YOUR_API_KEY"
      },
      json={
          "model": "doubao-seedance-1-0-lite-t2v",
          "content": [
              {
                  "type": "text",
                  "text": "A slow push-in shot of a white seagull skimming over the ocean with golden sunset reflections on the waves"
              }
          ]
      }
  )

  print(response.json())
  ```
</CodeGroup>

### Single-Image Image-to-Video Example

```bash cURL theme={null}
curl -X POST https://api.crazyrouter.com/volc/v1/contents/generations/tasks \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "doubao-seedance-1-0-lite-i2v",
    "content": [
      {
        "type": "text",
        "text": "The subject turns naturally while wind lightly moves the hair"
      },
      {
        "type": "image_url",
        "image_url": {
          "url": "https://example.com/portrait.png"
        }
      }
    ]
  }'
```

### Seedance 2.0 Multimodal Example

```bash cURL theme={null}
curl -X POST https://api.crazyrouter.com/volc/v1/contents/generations/tasks \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "doubao-seedance-2-0",
    "content": [
      {
        "type": "text",
        "text": "A girl turns back on the beach at sunset, with more cinematic motion and natural ambient sound"
      },
      {
        "type": "image_url",
        "image_url": {
          "url": "https://example.com/first-frame.png"
        },
        "role": "reference_image"
      },
      {
        "type": "video_url",
        "video_url": {
          "url": "https://example.com/reference-video.mp4"
        },
        "role": "reference_video"
      },
      {
        "type": "audio_url",
        "audio_url": {
          "url": "https://example.com/reference-audio.mp3"
        },
        "role": "reference_audio"
      }
    ],
    "generate_audio": true,
    "ratio": "16:9",
    "duration": 11,
    "watermark": false
  }'
```

### Successful Submit Response

```json theme={null}
{
  "id": "cgt_task_abc123",
  "task_id": "cgt_task_abc123"
}
```

***

## Query Task

```
GET /volc/v1/contents/generations/tasks/{task_id}
```

```bash cURL theme={null}
curl https://api.crazyrouter.com/volc/v1/contents/generations/tasks/cgt_task_abc123 \
  -H "Authorization: Bearer YOUR_API_KEY"
```

### Completed Response Example

```json theme={null}
{
  "code": "success",
  "message": "",
  "data": {
    "id": "cgt_task_abc123",
    "task_id": "cgt_task_abc123",
    "model": "doubao-seedance-2-0-fast",
    "status": "SUCCESS",
    "result_url": "https://media.crazyrouter.com/task-artifacts/2026/06/30/seedance/cgt_task_abc123.mp4",
    "artifact_url": "https://media.crazyrouter.com/task-artifacts/2026/06/30/seedance/cgt_task_abc123.mp4",
    "content": {
      "video_url": "https://media.crazyrouter.com/task-artifacts/2026/06/30/seedance/cgt_task_abc123.mp4"
    }
  }
}
```

### Task Status

| Status        | Description                                                                   |
| ------------- | ----------------------------------------------------------------------------- |
| `NOT_START`   | submitted and waiting for upstream handling                                   |
| `IN_PROGRESS` | generation in progress                                                        |
| `SUCCESS`     | completed and ready from `result_url`, `artifact_url`, or `content.video_url` |
| `FAILURE`     | terminal failure                                                              |

<Note>
  The public docs now only commit to the native `/volc/v1/*` route family and canonical model names. The old `doubao-seedance-2-0-fast` label is retained only as historical context, not as the primary contract for new integrations.
</Note>

<Note>
  The official Seedance pricing truth is currently tracked as `per_output_token`, not per-second. If the pricing page later shows a normalized platform billing unit, that should be treated as the platform sell-side view rather than the native official unit.
</Note>
