curl --request POST \
--url https://api.evolink.ai/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "kling-o3-reference-to-video",
"prompt": "Keep the same motion style, change to a snowy background",
"video_url": "https://example.com/reference.mp4",
"duration": 5,
"aspect_ratio": "16:9",
"quality": "720p"
}
'{
"created": 1757169743,
"id": "task-unified-1757169743-7cvnl5zw",
"model": "kling-o3-reference-to-video",
"object": "video.generation.task",
"progress": 0,
"status": "pending",
"task_info": {
"can_cancel": true,
"estimated_time": 300,
"video_duration": 9
},
"type": "video",
"usage": {
"billing_rule": "per_call",
"credits_reserved": 7,
"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 model: kling-o3-reference-to-video",
"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"
}
}Kling-O3 Reference to Video
- Kling-O3 Reference to Video (kling-o3-reference-to-video) generates new videos based on the style and motion characteristics of a reference video, powered by the Kling AI kling-v3-omni model
- The reference video serves as a feature reference (not direct editing), and can be combined with text, reference images, and elements for creation
- Sound effect generation is not supported when video input is provided (sound is forced off)
- Asynchronous processing mode, use the returned task ID to query status
- 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": "kling-o3-reference-to-video",
"prompt": "Keep the same motion style, change to a snowy background",
"video_url": "https://example.com/reference.mp4",
"duration": 5,
"aspect_ratio": "16:9",
"quality": "720p"
}
'{
"created": 1757169743,
"id": "task-unified-1757169743-7cvnl5zw",
"model": "kling-o3-reference-to-video",
"object": "video.generation.task",
"progress": 0,
"status": "pending",
"task_info": {
"can_cancel": true,
"estimated_time": 300,
"video_duration": 9
},
"type": "video",
"usage": {
"billing_rule": "per_call",
"credits_reserved": 7,
"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 model: kling-o3-reference-to-video",
"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 APIs require Bearer Token authentication
Get API Key:
Visit API Key Management Page to get your API Key
Add to request header:
Authorization: Bearer YOUR_API_KEY
Body
Video generation model name
kling-o3-reference-to-video "kling-o3-reference-to-video"
Text prompt, max 2500 characters
Reference syntax: You can reference elements, images, and videos in the prompt using <<<xxx>>> syntax, for example: <<<element_1>>> walking in the scene style of <<<video_1>>>
2500"Keep the same motion style, change to a snowy background"
Reference video URL
Video format requirements:
- Format: MP4 / MOV
- Size: <= 200MB
- Duration: >= 3 seconds
- Dimensions: width and height 720px ~ 2160px
- Frame rate: 24fps ~ 60fps
- Video URL must be directly accessible by the server
"https://example.com/reference.mp4"
Whether to keep original sound from reference video
Options:
true: Keep the original video sound (default)false: Do not keep the original video sound
true
Reference image URL array (style/scene reference)
Constraint: Image count + element count <= 4 when video is provided
Note:
- Image URLs must be directly accessible by the server or trigger a direct download when accessed
["https://example.com/style.jpg"]
Video duration (seconds), range 3~10
Note: Shorter than the 15-second maximum for text-to-video/image-to-video, max supported duration is 10 seconds
3 <= x <= 105
Video aspect ratio
Options:
16:9: Landscape video9:16: Portrait video1:1: Square video
16:9, 9:16, 1:1 "16:9"
Resolution tier
Options:
720p: Standard 720P1080p: High quality 1080P
720p, 1080p "720p"
Advanced parameters
Show child attributes
Show child attributes
HTTPS callback URL for task completion
Callback Timing:
- Triggered when task is completed, failed, or cancelled
- Sent after billing confirmation
Security Restrictions:
- HTTPS protocol only
- Internal 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 - Maximum
3retries after failure (at1/2/4seconds after failure) - Callback response format is consistent with task query API
- 2xx status code is considered successful, other codes trigger retry
"https://your-domain.com/webhooks/video-task-completed"
Response
Video generation task created successfully
Task creation timestamp
1757169743
Task ID
"task-unified-1757169743-7cvnl5zw"
Actual model name used
"kling-o3-reference-to-video"
Task type
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
Task output type
text, image, audio, video "video"
Usage and billing information
Show child attributes
Show child attributes