# Seedance 2.0 Text to Video > Seedance 2.0 generates high-quality videos from text prompts with synchronized audio including sound effects, ambient sounds, and lip-synced speech. ## Overview - **Endpoint**: `https://api.runflow.io/v1/run/bytedance/seedance/2.0/text-to-video` - **Model ID**: `bytedance/seedance/2.0/text-to-video` - **Provider**: ByteDance - **License**: commercial - **Last Updated**: 2026-04-08 ## Pricing - **Base price**: $0.1/second - **Note**: Per second of video ## Input Schema ### `prompt` (string, required) The text prompt used to generate the video ### `aspect_ratio` (string, optional) The aspect ratio of the generated video. Use 16:9 for landscape, 9:16 for portrait/vertical, 1:1 for square, 21:9 for ultrawide cinematic, or auto to let the model decide. - **Default**: `auto` - **Options**: `auto`, `21:9`, `16:9`, `4:3`, `1:1`, `3:4`, `9:16` ### `duration` (string, optional) Duration of the video in seconds. Supports 4 to 15 seconds, or auto to let the model decide based on the prompt. - **Default**: `auto` - **Options**: `auto`, `4`, `5`, `6`, `7`, `8`, `9`, `10`, `11`, `12`, `13`, `14`, `15` ### `resolution` (string, optional) Video resolution - 480p for faster generation, 720p for balance. - **Default**: `720p` - **Options**: `480p`, `720p` ### `generate_audio` (boolean, optional) Whether to generate synchronized audio for the video, including sound effects, ambient sounds, and lip-synced speech. The cost of video generation is the same regardless of whether audio is generated or not. - **Default**: `true` ### `seed` (string, optional) Random seed for reproducibility. Note that results may still vary slightly even with the same seed. ### `end_user_id` (string, optional) The unique user ID of the end user. ## Usage Examples ### cURL ```bash curl -X POST https://api.runflow.io/v1/run/bytedance/seedance/2.0/text-to-video \ -H "Authorization: Bearer $RUNFLOW_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "prompt": "A professional headshot, soft studio lighting" }' ``` ### Python ```python import requests response = requests.post( "https://api.runflow.io/v1/run/bytedance/seedance/2.0/text-to-video", headers={"Authorization": "Bearer RUNFLOW_API_KEY"}, json={ "prompt": "A professional headshot, soft studio lighting", }, ) data = response.json() print(data["video"]["url"]) ``` ### JavaScript ```javascript const response = await fetch( "https://api.runflow.io/v1/run/bytedance/seedance/2.0/text-to-video", { method: "POST", headers: { "Authorization": "Bearer RUNFLOW_API_KEY", "Content-Type": "application/json", }, body: JSON.stringify({ prompt: "A professional headshot, soft studio lighting", }), } ); const data = await response.json(); console.log(data.video.url); ``` ## Additional Resources - [Playground](https://www.runflow.io/models/bytedance/seedance/2.0/text-to-video) - [API Reference](https://www.runflow.io/models/bytedance/seedance/2.0/text-to-video/api) - [Documentation](https://www.runflow.io/docs)