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

# Seedance 2.0 Overview

> Doubao Seedance 2.0 video generation and asset library

## Introduction

Seedance 2.0 supports text-to-video, image-to-video (first/last frame), multi-modal references, and a face-consistency asset library. Unified access via tennda AI gateway; Base URL: `https://api.tennda.ai`.

| Model ID            | Description                  | Resolution                    |
| ------------------- | ---------------------------- | ----------------------------- |
| `seedance-2-0`      | Standard; production quality | `480p`, `720p`, `1080p`       |
| `seedance-2-0-fast` | Fast iteration               | `480p`, `720p` (**no 1080p**) |

## Authentication

All endpoints: `Authorization: Bearer sk-xxxxxxxxxx`, `Content-Type: application/json`.

<Note>
  Map each `asset://` by `asset_type` to `image_url`, `video_url`, or `audio_url`—do not put everything in `image_url`. Assets must be created from public **https** URLs only (no Base64 / Data URI).
</Note>

## Asset library types

| Library     | `group_type`    | Creation                                                                                                              |
| ----------- | --------------- | --------------------------------------------------------------------------------------------------------------------- |
| Virtual     | `aigc`          | [Create asset group](/en/api-reference/endpoint/seedance-2.0/create-asset-group)                                      |
| Live person | `liveness_face` | [Create asset group (liveness)](/en/api-reference/endpoint/seedance-2.0/create-visual-validate-session) H5 validation |

Recommended: create group → [Create asset](/en/api-reference/endpoint/seedance-2.0/create-asset) → poll until `status: active` → [Create video generation](/en/api-reference/endpoint/seedance-2.0/create-video-generation) → [Get video generation](/en/api-reference/endpoint/seedance-2.0/get-video-generation).

## Endpoints

### Video generation

<CardGroup cols={2}>
  <Card title="Create video generation" icon="upload" href="/en/api-reference/endpoint/seedance-2.0/create-video-generation">
    POST /v1/video/generations
  </Card>

  <Card title="Get video generation" icon="search" href="/en/api-reference/endpoint/seedance-2.0/get-video-generation">
    GET /v1/video/generations/{task_id}
  </Card>

  <Card title="Get moderation result" icon="shield" href="/en/api-reference/endpoint/seedance-2.0/get-moderation-result">
    GET /v1/video/generations/moderation-result/{task_id}
  </Card>
</CardGroup>

### Asset library (aigc)

<CardGroup cols={2}>
  <Card title="Create asset group" icon="folder-plus" href="/en/api-reference/endpoint/seedance-2.0/create-asset-group">
    POST /v1/asset-groups
  </Card>

  <Card title="List asset groups" icon="folders" href="/en/api-reference/endpoint/seedance-2.0/list-asset-groups">
    GET /v1/asset-groups
  </Card>

  <Card title="Delete asset group" icon="trash" href="/en/api-reference/endpoint/seedance-2.0/delete-asset-group">
    DELETE /v1/asset-groups/{group_id}
  </Card>

  <Card title="Create asset" icon="file-plus" href="/en/api-reference/endpoint/seedance-2.0/create-asset">
    POST /v1/assets
  </Card>

  <Card title="List assets" icon="list" href="/en/api-reference/endpoint/seedance-2.0/list-assets">
    GET /v1/assets
  </Card>

  <Card title="Get asset" icon="file" href="/en/api-reference/endpoint/seedance-2.0/get-asset">
    GET /v1/assets/{virtual_id}
  </Card>

  <Card title="Delete asset" icon="file-minus" href="/en/api-reference/endpoint/seedance-2.0/delete-asset">
    DELETE /v1/assets/{virtual_id}
  </Card>
</CardGroup>

### Liveness face

<CardGroup cols={2}>
  <Card title="Create asset group (liveness)" icon="user-check" href="/en/api-reference/endpoint/seedance-2.0/create-visual-validate-session">
    POST /v1/visual-validate/session
  </Card>
</CardGroup>

<Note>
  `POST /v1/visual-validate/result` is for the H5 callback page only; applications should not call it directly.
</Note>

## Recommended flow

1. Optional: create group → create asset → poll until `status: active` (usually 1–3 minutes)
2. `POST /v1/video/generations`
3. `GET /v1/video/generations/{task_id}` every \~5s until `completed` (usually 30–120s)
4. On moderation `failed`, see [Get moderation result](/en/api-reference/endpoint/seedance-2.0/get-moderation-result)

See also [Submit video task](/en/api-reference/endpoint/submit-video-task).

## Common HTTP status codes

| Code  | Meaning              |
| ----- | -------------------- |
| `400` | Invalid parameters   |
| `401` | Invalid API key      |
| `402` | Insufficient balance |
| `429` | Rate limited         |
| `502` | Upstream error       |

Gateway validation errors use `error.type: invalid_request_error`. BytePlus errors are passed through with `error.code` (e.g. `InvalidParameter`) and a `param` field path.
