---
title: "Generate a video from text with Seedance 2.0"
method: POST
path: "/v2/async/text-to-video/seed-dance-2.0"
tags: ["generate"]
---

# Generate a video from text with Seedance 2.0

`POST /v2/async/text-to-video/seed-dance-2.0`

Generates a video from a text prompt using the Seedance 2.0 model. The
request is always processed asynchronously: this endpoint returns
immediately with a `generation_id` and an empty `data` array. Poll
`/v1/generations/{generation_id}` with the returned `generation_id` to
retrieve the video once it is ready, or supply `webhook_url` to have the
result delivered to your server.

Video links are available for a limited period of time; if you would like
to keep the video, you must download it.

## Query parameters

- `webhook_url` string, uri — HTTPS URL that Ideogram delivers the generated result to. Ideogram sends a JSON POST to this URL once all images for the request have finished generating. The body mirrors the synchronous generate response: `request_id`, `created`, and a `data` array containing every generated image (`url`, `prompt`, `resolution`, `seed`, `is_image_safe`). Each delivery is signed with Ed25519 and verifiable against the public keys at `https://api.ideogram.ai/v1/.well-known/jwks.json`. Must be HTTPS; private and loopback hosts and the cloud metadata service are rejected.

## Request body

- TextToVideoRequestSeedDance2 — Request body for the Seedance 2.0 text-to-video endpoint.
  - `prompt` string, required — A natural-language prompt describing the video to generate.
  - `aspect_ratio` 'AUTO' | '21x9' | '16x9' | '4x3' | '1x1' | '3x4' | '9x16' — The aspect ratio of the generated video. `AUTO` lets the model choose the most suitable ratio from the prompt; any other value pins the ratio.
  - `resolution` '480p' | '720p' — The resolution tier of the generated video.
  - `duration` integer — The length of the generated video in seconds. When omitted, the model picks the best duration for the prompt ("auto").
  - `num_videos` integer — How many videos to generate for this request. Each video is generated and billed independently.
  - `generate_audio` boolean — Whether to generate an audio track for the video. Audio roughly doubles the provider cost and is subject to stricter output moderation.

## Response `200`

Request accepted; poll or await the webhook for the result.

- VideoGenerationResponse — Acknowledgement returned by the Seedance 2.0 video endpoints. The request is accepted for asynchronous processing, so `data` is always empty in this response; the generated video is retrieved by polling `/v1/generations/{generation_id}` or delivered to `webhook_url`.
  - `generation_id` string, required — URL-safe base64 ID of the accepted generation. Poll `/v1/generations/{generation_id}` with this id to retrieve the result.
  - `created` string, date-time, required — The time the request was created.
  - `data` VideoObject[], required — Always empty for this asynchronous acknowledgement.
    - `object_type` 'video.generation' — Discriminator marking this entry as a generated video in the polling endpoint's mixed data array.
    - `url` string, uri, nullable — The direct link to the generated video.
    - `prompt` string, required — The prompt used for the generation.
    - `resolution` string, required — The resolution tier of the generated video.
    - `aspect_ratio` string, required — The actual aspect ratio of the produced video, formatted as "{width}:{height}".
    - `duration` integer, required — The actual measured length of the produced video in seconds.

## Other responses

- `400` — Invalid input provided.
- `401` — Not authorized.
- `422` — Prompt failed the safety check.
- `429` — Too many requests.

---

[API](https://skmtc.net/ideogram/apis/ideogram-openapi-3-0.md) · [All operations](https://skmtc.net/ideogram/apis/ideogram-openapi-3-0/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ideogram/ideogram-openapi-3-0/revisions/b560c0ad0618/schema)
