Documentation
Build with the Seedance API
Generate videos and images through one asynchronous API, from your first request to a reliable production integration.
Start with your first request
Follow these steps to go from zero to your first successful generation.
Create a key in the Dashboard, then send it in the Authorization header.
Create an API keyAll requests require a bearer API key. This example creates an asynchronous video task with the recommended default model.
POST /v1/videos/generationscurl https://api.seedanceapi.app/v1/videos/generations \ -X POST \ -H "Authorization: Bearer $SEEDANCE_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "seedance-2-0", "prompt": "A cinematic sunrise over a mountain lake", "duration": 5, "ratio": "16:9", "resolution": "720p", "generate_audio": true }'Understand the system
Learn how requests are processed and how data flows.
Prepare for production
Build reliable integrations with explicit failure and cost handling.
Foundation
Authentication
Send your API key in the HTTP Authorization header. Browser sessions are only used by the Dashboard and Playground; Public API calls always use bearer authentication.
Authorization: Bearer $SEEDANCE_API_KEYCore concept
Task lifecycle
Generation is asynchronous. Create a task, store its localvid_* or img_* ID, then retrieve it until it reaches a terminal state.
queuedrunningsucceededfailedcancelledexpiredRequest contract
Native content and convenience fields
Send native content[] items or convenience fields such asprompt, first_frame_url, and reference URL arrays. Do not mix both formats in one request.
{ "model": "seedance-2-0", "content": [ { "type": "text", "text": "A product reveal in soft studio light" }, { "type": "image_url", "image_url": { "url": "https://example.com/reference.jpg" }, "role": "reference_image" } ], "resolution": "720p"}Reference
Public API contract
Video and image requests use managed generation infrastructure. Public model names and local task IDs remain stable even when internal routing changes.
Open the OpenAPI 3.1 specificationcurl https://api.seedanceapi.app/v1/videos/vid_01jx9w6n8e6r7x9m2p4q \ -H "Authorization: Bearer $SEEDANCE_API_KEY"