curl --request POST \
--url https://api.evolink.ai/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "seedance-2.0-text-to-video",
"prompt": "A cat playing the Moonlight Sonata on a piano, cinematic lighting, close-up shot",
"duration": 8,
"quality": "720p",
"aspect_ratio": "16:9",
"generate_audio": true,
"content_filter": true
}
'{
"created": 1761313744,
"id": "task-unified-1774857405-abc123",
"model": "seedance-2.0-text-to-video",
"object": "video.generation.task",
"progress": 0,
"status": "pending",
"task_info": {
"can_cancel": true,
"estimated_time": 165,
"video_duration": 8
},
"type": "video",
"usage": {
"billing_rule": "per_second",
"credits_reserved": 50,
"user_group": "default"
}
}{
"error": {
"code": "invalid_request",
"message": "Invalid request parameters",
"type": "invalid_request_error"
}
}{
"error": {
"code": "unauthorized",
"message": "Invalid or expired token",
"type": "authentication_error"
}
}{
"error": {
"code": "insufficient_quota",
"message": "Insufficient quota. Please top up your account.",
"type": "insufficient_quota"
}
}{
"error": {
"code": "model_access_denied",
"message": "Token does not have access to the specified model",
"type": "invalid_request_error"
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "Too many requests, please try again later",
"type": "rate_limit_error"
}
}{
"error": {
"code": "internal_error",
"message": "Internal server error",
"type": "api_error"
}
}Seedance 2.0 Complete Parameter Guide
Unified API for all Seedance 2.0 models, select a specific model via the model parameter
3 Generation Modes:
- Text-to-Video: Generate video from pure text descriptions, supports web search enhancement
- Image-to-Video: Use 1-2 images as first/last frames to drive video generation
- Reference-to-Video: Mixed multimodal reference from images, videos, and audio
Each mode has a standard, fast, and Mini version, 9 models in total
- Now supports AIGC realistic human materials
- Asynchronous processing mode, use the returned task ID to query task details
- Generated video links are valid for 24 hours, please save them promptly
curl --request POST \
--url https://api.evolink.ai/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "seedance-2.0-text-to-video",
"prompt": "A cat playing the Moonlight Sonata on a piano, cinematic lighting, close-up shot",
"duration": 8,
"quality": "720p",
"aspect_ratio": "16:9",
"generate_audio": true,
"content_filter": true
}
'{
"created": 1761313744,
"id": "task-unified-1774857405-abc123",
"model": "seedance-2.0-text-to-video",
"object": "video.generation.task",
"progress": 0,
"status": "pending",
"task_info": {
"can_cancel": true,
"estimated_time": 165,
"video_duration": 8
},
"type": "video",
"usage": {
"billing_rule": "per_second",
"credits_reserved": 50,
"user_group": "default"
}
}{
"error": {
"code": "invalid_request",
"message": "Invalid request parameters",
"type": "invalid_request_error"
}
}{
"error": {
"code": "unauthorized",
"message": "Invalid or expired token",
"type": "authentication_error"
}
}{
"error": {
"code": "insufficient_quota",
"message": "Insufficient quota. Please top up your account.",
"type": "insufficient_quota"
}
}{
"error": {
"code": "model_access_denied",
"message": "Token does not have access to the specified model",
"type": "invalid_request_error"
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "Too many requests, please try again later",
"type": "rate_limit_error"
}
}{
"error": {
"code": "internal_error",
"message": "Internal server error",
"type": "api_error"
}
}Authorizations
##All endpoints require Bearer Token authentication##
Get API Key:
Visit the API Key Management Page to obtain your API Key
Add to request header:
Authorization: Bearer YOUR_API_KEY
Body
Video generation model name
| Model ID | Mode | Version |
|---|---|---|
seedance-2.0-text-to-video | Text-to-Video | Standard |
seedance-2.0-image-to-video | Image-to-Video | Standard |
seedance-2.0-reference-to-video | Multimodal Reference | Standard |
seedance-2.0-fast-text-to-video | Text-to-Video | Fast |
seedance-2.0-fast-image-to-video | Image-to-Video | Fast |
seedance-2.0-fast-reference-to-video | Multimodal Reference | Fast |
seedance-2.0-mini-text-to-video | Text-to-Video | Mini |
seedance-2.0-mini-image-to-video | Image-to-Video | Mini |
seedance-2.0-mini-reference-to-video | Multimodal Reference | Mini |
seedance-2.0-text-to-video, seedance-2.0-image-to-video, seedance-2.0-reference-to-video, seedance-2.0-fast-text-to-video, seedance-2.0-fast-image-to-video, seedance-2.0-fast-reference-to-video, seedance-2.0-mini-text-to-video, seedance-2.0-mini-image-to-video, seedance-2.0-mini-reference-to-video "seedance-2.0-text-to-video"
Text prompt describing the desired video. Supports both Chinese and English, recommended no more than 500 characters for Chinese or 1000 words for English. Maximum prompt length: 10000 tokens
Prompt usage for different models:
- Text-to-Video: Pure text description, does not support using
image_urls,video_urls,audio_urlsin the prompt - Image-to-Video: Pure text description, does not support using
video_urls,audio_urlsin the prompt - Reference-to-Video: When referring to input materials, prefer explicit tags such as
@image1,@video1, and@audio1. Tag numbers follow the order of the corresponding URL array and start at 1. Natural-language numbering may still be understood, but explicit tags provide a clearer mapping between each material and its intended use
"A cat playing the Moonlight Sonata on a piano, cinematic lighting, close-up shot"
Image URL array
Applicable models and quantity limits:
- Text-to-Video: Not supported
- Image-to-Video: Required, 1-2 images
- Reference-to-Video: Optional, 0-9 images
Image-to-Video image behavior:
| Image Count | Behavior | Role |
|---|---|---|
| 1 | First frame image-to-video | Automatically set as first_frame |
| 2 | First and last frame image-to-video | 1st image -> first_frame, 2nd image -> last_frame |
Reference-to-Video image roles:
- Style reference, product image, character appearance, first/last frame (specified via prompt)
Image requirements:
- Supported formats:
.jpeg,.png,.webp - Aspect ratio (width/height):
0.4~2.5 - Width/height pixels:
300~6000px - Max size per image:
30MB - Total request body size must not exceed
64MB - When providing first and last frames, both images can be identical. If aspect ratios differ, the first frame takes priority and the last frame will be automatically cropped to match
- Image URLs must be directly accessible by the server
9["https://example.com/image1.jpg"]
Reference video URL array
Only applicable to Reference-to-Video models, other models do not support this parameter
Quantity limit: 0-3 videos
Role description:
- Camera movement reference, motion reference, original video for editing/extension
Video requirements:
- Supported formats:
.mp4,.mov - Resolution: 480p, 720p, 1080p
- Duration per video:
2~15seconds, max 3 videos, total duration of all videos <=15seconds - Aspect ratio (width/height):
0.4~2.5 - Width/height pixels:
300~6000px - Frame pixels (width x height):
409,600~2,086,876(e.g., 640x640 ~ 2206x946) - Max size per video:
50MB - Frame rate:
24~60FPS - Using video references will increase costs (input video duration is counted in billing)
- Video URLs must be directly accessible by the server
Note: You cannot provide only audio_urls; at least 1 image (image_urls) or 1 video (video_urls) must be included
3["https://example.com/reference.mp4"]
Reference audio URL array
Only applicable to Reference-to-Video models, other models do not support this parameter
Quantity limit: 0-3 clips
Role description:
- Background music, sound effects, voice/dialogue reference
Audio requirements:
- Supported formats:
.wav,.mp3 - Duration per clip:
2~15seconds, max 3 clips, total duration of all audio <=15seconds - Max size per clip:
15MB - Audio URLs must be directly accessible by the server
Note: Audio cannot be provided alone; at least 1 image or 1 video must be included
3["https://example.com/bgm.mp3"]
Output video duration (seconds), defaults to 5 seconds
- Supports any integer value between
4-15seconds - Duration directly affects billing
- Applicable to all 9 models
4 <= x <= 158
Video resolution, defaults to 720p
Options:
480p: Lower clarity, lower cost720p: Standard clarity, this is the default1080p: Ultra HD clarity, only supported by standard models (Text-to-Video, Image-to-Video, Reference-to-Video); the 3 Fast models and 3 Mini models are not supported
480p and 720p apply to all 9 models
480p, 720p, 1080p "720p"
Video aspect ratio, defaults to adaptive
Options:
16:9(landscape),9:16(portrait),1:1(square),4:3,3:4,21:9(ultrawide)adaptive: Automatically select the best ratio
adaptive behavior per model:
- Text-to-Video: Automatically selected based on prompt content
- Image-to-Video: Automatically adapts based on first frame image aspect ratio
- Reference-to-Video: Priority: video material ratio > image material ratio > prompt inference
Pixel values per resolution:
| Aspect Ratio | 480p | 720p | 1080p |
|---|---|---|---|
| 16:9 | 864×496 | 1280×720 | 1920×1080 |
| 4:3 | 752×560 | 1112×834 | 1664×1248 |
| 1:1 | 640×640 | 960×960 | 1440×1440 |
| 3:4 | 560×752 | 834×1112 | 1248×1664 |
| 9:16 | 496×864 | 720×1280 | 1080×1920 |
| 21:9 | 992×432 | 1470×630 | 2206×946 |
1080p only supported by standard models
16:9, 9:16, 1:1, 4:3, 3:4, 21:9, adaptive "16:9"
Whether to generate synchronized audio, defaults to true
true: Video includes synchronized audio (voice, sound effects, background music) at no additional chargefalse: Output silent video
Applicable to all 9 models
true
Content filter, enabled by default true
Options:
true: Standard content safety check, this is the defaultfalse: Relaxes content restrictions, billed at +10% (1.1x). Illegal and prohibited content is always enforced regardless of this setting
Mutually exclusive with web search:
content_filter: falseandmodel_params.web_search: truecannot be used together; sending both returns a 400 parameter error- Keep
content_filter: true(the default) when web search is needed
true
Model extension parameters
Only applicable to Text-to-Video models (standard and fast versions)
Show child attributes
Show child attributes
HTTPS callback URL for task completion
Callback timing:
- Triggered when the task is completed, failed, or cancelled
- Sent after billing confirmation is complete
Security restrictions:
- Only HTTPS protocol is supported
- Callbacks to private IP addresses are prohibited (127.0.0.1, 10.x.x.x, 172.16-31.x.x, 192.168.x.x, etc.)
- URL length must not exceed
2048characters
Callback mechanism:
- Timeout:
10seconds - Up to
3retries after failure (at1/2/4seconds after failure respectively) - Callback response body format is consistent with the task query endpoint response format
- A 2xx status code is considered successful; other status codes trigger retries
Applicable to all 9 models
"https://your-domain.com/webhooks/video-task-completed"
Response
Video generation task created successfully
Task creation timestamp
1761313744
Task ID
"task-unified-1774857405-abc123"
Actual model name used
"seedance-2.0-text-to-video"
Specific type of the task
video.generation.task Task progress percentage (0-100)
0 <= x <= 1000
Task status
pending, processing, completed, failed "pending"
Video task details
Show child attributes
Show child attributes
Output type of the task
text, image, audio, video "video"
Usage and billing information
Show child attributes
Show child attributes