---
title: "Generate a Seedance 2.0 video"
method: POST
path: "/api/v1/video/seedance2"
tags: ["Video"]
---

# Generate a Seedance 2.0 video

`POST /api/v1/video/seedance2`

## Request

- Base URL: `https://www.seedance2ai.io`
- URL: `https://www.seedance2ai.io/api/v1/video/seedance2`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/seedance2ai/apis/seedance-2-0-ai-public-api/docs/api/v1/video/seedance2/post.ts> (a function with typed inputs; its response is checked against the schema)

Generate a 4–15 second video from text, a start image, or up to 12 image/video references.

Rules: image_url is required when mode=image-to-video; media_urls is required when mode=media-to-video. resolution 1080p-plus and 4k require quality_tier=pro.

Accepted resolution labels depend on the account; the API documentation lists the values that apply to the key owner. Some quality tiers require a successful credits or plan purchase and otherwise return purchase_required (HTTP 403).

Write the prompt as concrete director instructions: subject, scene, action, camera movement, and order of events.

## Headers

- `Idempotency-Key` string

## Request body

- Seedance2Request
  - `mode` 'text-to-video' | 'image-to-video' | 'media-to-video'
  - `quality_tier` 'mini' | 'standard' | 'pro'
  - `channel` 'standard' | 'real' | 'wild'
  - `prompt` string, required
  - `aspect_ratio` '1:1' | '21:9' | '4:3' | '3:4' | '16:9' | '9:16' | 'adaptive'
  - `duration` '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | '13' | '14' | '15'
  - `resolution` '480p' | '720p' | '1080p' | '1080p-plus' | '4k'
  - `image_url` string, uri: A publicly reachable https URL. asset:// URLs are not accepted.
  - `end_image_url` string, uri: A publicly reachable https URL. asset:// URLs are not accepted.
  - `media_urls` string[]
  - `generate_audio` boolean
  - `fixed_lens` boolean
  - `seed` integer

## Response `202`

Task accepted. Poll GET /api/v1/tasks/{id} with the returned id (prefix sd2_) until status is completed or failed, and read the files from result_urls there.

- object
  - `id` string, required
  - `status` 'processing' | 'completed', required: Usually processing. A channel that waits for the image inside the request returns completed; the task's result_urls are then ready at GET /api/v1/tasks/{id}.
  - `model` 'seedance2', required
  - `credits_used` number: Credits charged for this task.
  - `remaining_credits` number

## Other responses

- `400`: invalid_request: bad JSON, an unsupported field, or a value outside the documented constraints. The message names the first failing field and details lists them all. Fix the request; retrying it unchanged fails again.
- `401`: unauthorized: the API key is missing, invalid, or revoked.
- `402`: insufficient_credits: the key owner's balance is too low. Some responses also include required_credits and available_credits. Add credits before retrying.
- `403`: purchase_required: the operation needs a successful credits or plan purchase. credits_frozen: credit spending is temporarily unavailable for this account; topping up does not lift it.
- `409`: idempotency_conflict: the Idempotency-Key was used with a different body, or the first request with this key is still running. Use a new key for a new request; wait and retry for a running one.
- `429`: rate_limited: submissions are limited to 30 per 60 seconds and reads to 120 per 60 seconds per account; Seedance requests that inspect reference media have a lower limit. Wait for Retry-After before retrying.
- `500`: internal_error: an unexpected server failure. Retry with the same Idempotency-Key; contact support if it persists.
- `503`: service_busy: a temporary generation or credit-concurrency issue. Retry with the same Idempotency-Key after a short delay.
- `default`: Another structured error. Branch on error.code rather than the HTTP status.

---

[API](https://skmtc.dev/seedance2ai/apis/seedance-2-0-ai-public-api.md) - [All operations](https://skmtc.dev/seedance2ai/apis/seedance-2-0-ai-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/seedance2ai/apis/seedance-2-0-ai-public-api/revisions/e4ef5c6db219?raw)
