Seedance 2.0 API Documentation

Complete guide to integrating the Seedance 2.0 Video Generation API into your applications.

API v1.0 Base URL: https://seedanceapi.org/v1

Quick Start

bash
1curl -X POST 'https://seedanceapi.org/v1/generate' \
2 -H 'Authorization: Bearer YOUR_API_KEY' \
3 -H 'Content-Type: application/json' \
4 -d '{
5 "prompt": "A cinematic shot of mountains at sunrise with flowing clouds",
6 "aspect_ratio": "16:9",
7 "resolution": "720p",
8 "duration": "8"
9 }'

Authentication

All API requests require authentication using a Bearer token in the Authorization header.

Important: You can get your API key from the API Keys page in your dashboard. → Get Your API Key

http
1Authorization: Bearer YOUR_API_KEY

Pricing

480p

480p Resolution

Fast generation, suitable for previews and drafts

DurationWithout AudioWith Audio
4s8 credits ($0.04)14 credits ($0.07)
8s14 credits ($0.07)28 credits ($0.14)
12s19 credits ($0.095)38 credits ($0.19)
720p

720p Resolution

High quality output, recommended for production

DurationWithout AudioWith Audio
4s14 credits ($0.07)28 credits ($0.14)
8s28 credits ($0.14)56 credits ($0.28)
12s42 credits ($0.21)84 credits ($0.42)

API Endpoints

POST/v1/generate

Create a new video generation task using Seedance 2.0 model. Supports text-to-video and image-to-video modes.

Request Body

Body ParametersJSON
prompt:string

Text description of the video to generate (max 2000 characters)

aspect_ratio:optional string

Output aspect ratio. Supported: 1:1, 16:9, 9:16, 4:3, 3:4, 21:9, 9:21 Defaults to 1:1.

resolution:optional string

Video resolution: 480p or 720p Defaults to 720p.

duration:optional string

Video duration in seconds: 4, 8, or 12 Defaults to 8.

generate_audio:optional boolean

Enable AI audio generation for the video Defaults to false.

fixed_lens:optional boolean

Lock the camera lens to reduce motion blur Defaults to false.

image_urls:optional string[]

Array of reference image URLs for image-to-video generation (max 1 image)

callback_url:optional string

Webhook URL for async status notifications. Must be publicly accessible (no localhost).

Text to Video

json
1{
2 "prompt": "A majestic eagle soaring through golden sunset clouds over ocean waves",
3 "aspect_ratio": "16:9",
4 "resolution": "720p",
5 "duration": "8"
6}

Image to Video

json
1{
2 "prompt": "The character slowly turns and smiles at the camera",
3 "image_urls": [
4 "https://example.com/my-image.jpg"
5 ],
6 "aspect_ratio": "16:9",
7 "resolution": "720p",
8 "duration": "4"
9}

With Audio Generation

json
1{
2 "prompt": "A peaceful river flowing through a forest with birds singing",
3 "aspect_ratio": "16:9",
4 "resolution": "720p",
5 "duration": "8",
6 "generate_audio": true,
7 "fixed_lens": true
8}

Responses

Task created successfully

1{
2 "code": 200,
3 "message": "success",
4 "data": {
5 "task_id": "seed15abc123def456pro",
6 "status": "IN_PROGRESS"
7 }
8}
GET/v1/status

Check the status of a video generation task and retrieve the result when completed.

Query Parameters

Body ParametersJSON
task_id:string

The unique task ID returned from the generate endpoint

Example Request

bash
1curl -X GET 'https://seedanceapi.org/v1/status?task_id=seed15abc123def456pro' \
2 -H 'Authorization: Bearer YOUR_API_KEY'

💡 Tip: The response field in the status API is an array of video URLs. You can directly access data.response[0] to get the video URL.

javascript
1// Extract video URL from response
2const videoUrl = data.response[0];

Responses

1{
2 "code": 200,
3 "message": "success",
4 "data": {
5 "task_id": "seed15abc123def456pro",
6 "status": "SUCCESS",
7 "consumed_credits": 28,
8 "created_at": "2026-02-07T10:30:00Z",
9 "request": {
10 "prompt": "A majestic eagle soaring through golden sunset clouds",
11 "aspect_ratio": "16:9",
12 "resolution": "720p",
13 "duration": "8"
14 },
15 "response": [
16 "https://cdn.example.com/videos/seed15abc123def456pro.mp4"
17 ],
18 "error_message": null
19 }
20}

API Playground

Test the API directly from your browser. Replace YOUR_API_KEY with your actual API key.

API PlaygroundPOST

Error Codes

StatusCodeDescription
400 Bad RequestINVALID_PROMPTThe prompt is invalid or empty
400 Bad RequestINVALID_ASPECT_RATIOUnsupported aspect ratio value
400 Bad RequestINVALID_RESOLUTIONResolution must be 480p or 720p
400 Bad RequestINVALID_DURATIONDuration must be 4, 8, or 12 seconds
400 Bad RequestTOO_MANY_IMAGESMaximum 1 image URL allowed in image_urls array
401 UnauthorizedINVALID_API_KEYAPI key is missing or invalid
402 INSUFFICIENT_CREDITSNot enough credits for this operation
404 Not FoundTASK_NOT_FOUNDTask ID not found or does not belong to your account
500 Internal Server ErrorINTERNAL_ERRORServer error, please try again later