Skip to main content
POST
/
v1
/
videos
/
generations
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": "一只猫在钢琴上弹奏月光奏鸣曲,电影感光影,特写镜头", "duration": 8, "quality": "720p", "aspect_ratio": "16:9", "generate_audio": 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"
  }
}

Authorizations

Authorization
string
header
required

##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

application/json
model
enum<string>
required

Video generation model name

Model IDModeSpeed
seedance-2.0-text-to-videoText-to-VideoStandard
seedance-2.0-image-to-videoImage-to-VideoStandard
seedance-2.0-reference-to-videoMultimodal ReferenceStandard
seedance-2.0-fast-text-to-videoText-to-VideoFast
seedance-2.0-fast-image-to-videoImage-to-VideoFast
seedance-2.0-fast-reference-to-videoMultimodal ReferenceFast
Available options:
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
Example:

"seedance-2.0-text-to-video"

prompt
string
required

Text prompt describing the desired video. Supports both Chinese and English, recommended no more than 500 characters for Chinese or 1000 words for English

Prompt usage for different models:

  • Text-to-Video: Pure text description, does not support using image_urls, video_urls, audio_urls in the prompt
  • Image-to-Video: Pure text description, does not support using video_urls, audio_urls in the prompt
  • Reference-to-Video: You can use natural language to specify the purpose of each material, e.g., "use image 1 as the first frame", "use the camera movement from video 1 throughout", "use audio 1 as background music"
Example:

"一只猫在钢琴上弹奏月光奏鸣曲,电影感光影,特写镜头"

image_urls
string<uri>[]

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 CountBehaviorRole
1First frame image-to-videoAutomatically set as first_frame
2First and last frame image-to-video1st 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 ~ 6000 px
  • 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
Maximum array length: 9
Example:
["https://example.com/image1.jpg"]
video_urls
string<uri>[]

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
  • Duration per video: 2 ~ 15 seconds, max 3 videos, total duration of all videos <= 15 seconds
  • Aspect ratio (width/height): 0.4 ~ 2.5
  • Width/height pixels: 300 ~ 6000 px
  • Frame pixels (width x height): 409,600 ~ 927,408 (e.g., 640x640 ~ 834x1112)
  • Max size per video: 50MB
  • Frame rate: 24 ~ 60 FPS
  • 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

Maximum array length: 3
Example:
["https://example.com/reference.mp4"]
audio_urls
string<uri>[]

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 ~ 15 seconds, max 3 clips, total duration of all audio <= 15 seconds
  • 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

Maximum array length: 3
Example:
["https://example.com/bgm.mp3"]
duration
integer
default:5

Output video duration (seconds), defaults to 5 seconds

  • Supports any integer value between 4-15 seconds
  • Duration directly affects billing
  • Applicable to all 6 models
Required range: 4 <= x <= 15
Example:

8

quality
enum<string>
default:720p

Video resolution, defaults to 720p

Options:

  • 480p: Lower clarity, lower cost
  • 720p: Standard clarity, this is the default

Applicable to all 6 models

Available options:
480p,
720p
Example:

"720p"

aspect_ratio
enum<string>
default:16:9

Video aspect ratio, defaults to 16:9

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 Ratio480p720p
16:9864x4961280x720
4:3752x5601112x834
1:1640x640960x960
3:4560x752834x1112
9:16496x864720x1280
21:9992x4321470x630
Available options:
16:9,
9:16,
1:1,
4:3,
3:4,
21:9,
adaptive
Example:

"16:9"

generate_audio
boolean
default:true

Whether to generate synchronized audio, defaults to true

  • true: Video includes synchronized audio (voice, sound effects, background music) at no additional charge
  • false: Output silent video

Applicable to all 6 models

Example:

true

model_params
object

Model extension parameters

Only applicable to Text-to-Video models (standard and fast versions)

callback_url
string<uri>

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 2048 characters

Callback mechanism:

  • Timeout: 10 seconds
  • Up to 3 retries after failure (at 1/2/4 seconds 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 6 models

Example:

"https://your-domain.com/webhooks/video-task-completed"

Response

Video generation task created successfully

created
integer

Task creation timestamp

Example:

1761313744

id
string

Task ID

Example:

"task-unified-1774857405-abc123"

model
string

Actual model name used

Example:

"seedance-2.0-text-to-video"

object
enum<string>

Specific type of the task

Available options:
video.generation.task
progress
integer

Task progress percentage (0-100)

Required range: 0 <= x <= 100
Example:

0

status
enum<string>

Task status

Available options:
pending,
processing,
completed,
failed
Example:

"pending"

task_info
object

Video task details

type
enum<string>

Output type of the task

Available options:
text,
image,
audio,
video
Example:

"video"

usage
object

Usage and billing information