curl --request POST \
--url https://api.evolink.ai/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "kling-v4-flash-reference-to-video",
"prompt": "Keep the same motion style as <<<video_1>>> and replace the background with a snowy scene",
"video_urls": [
"https://example.com/reference.mp4"
],
"duration": 5,
"aspect_ratio": "16:9",
"quality": "720p"
}
'{
"created": 1757169743,
"id": "task-unified-1757169743-7cvnl5zw",
"model": "kling-v4-flash-reference-to-video",
"object": "video.generation.task",
"progress": 0,
"status": "pending",
"task_info": {
"can_cancel": false,
"estimated_time": 300,
"video_duration": 5
},
"type": "video",
"usage": {
"billing_rule": "per_second",
"credits_reserved": 42.84,
"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-v4-flash-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-4.0-Flash Reference to Video
- Kling-4.0 Flash Reference to Video (kling-v4-flash-reference-to-video) generates new videos from reference images and videos
- Reference videos provide feature references (not direct editing) and can be combined with text and reference images
- Only
720pis supported, with a duration of3–20seconds - Asynchronous processing mode, use the returned task ID to query status
- Generated video links are valid for 24 hours, please save them promptly
Choosing between Flash and Kling 4.0
Flash is designed for frequent creation and rapid creative iteration, focusing on generation speed and cost efficiency for short 720p videos. The comparison below covers the capabilities currently supported by the EvoLink API.
| Feature | Kling 4.0 Flash | Kling 4.0 |
|---|---|---|
| Output resolution | 720p | 720p, 1080p |
| Output duration | 3–20 seconds | 3–30 seconds |
| Reference images | Up to 10 | Up to 10 |
| Reference videos | Up to 5 clips, no more than 20 seconds in total | Up to 5 clips, no more than 30 seconds in total |
The total reference-video duration and the output duration have separate limits. Shortening the output does not increase the input limit. For longer reference videos, 1080p output, or output longer than 20 seconds, use Kling 4.0 Reference to Video.
Flash uses separate model IDs. When migrating, check model, quality, and duration. Actual charges depend on the current price of the selected Flash model and the task’s final billing.
curl --request POST \
--url https://api.evolink.ai/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "kling-v4-flash-reference-to-video",
"prompt": "Keep the same motion style as <<<video_1>>> and replace the background with a snowy scene",
"video_urls": [
"https://example.com/reference.mp4"
],
"duration": 5,
"aspect_ratio": "16:9",
"quality": "720p"
}
'{
"created": 1757169743,
"id": "task-unified-1757169743-7cvnl5zw",
"model": "kling-v4-flash-reference-to-video",
"object": "video.generation.task",
"progress": 0,
"status": "pending",
"task_info": {
"can_cancel": false,
"estimated_time": 300,
"video_duration": 5
},
"type": "video",
"usage": {
"billing_rule": "per_second",
"credits_reserved": 42.84,
"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-v4-flash-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-v4-flash-reference-to-video "kling-v4-flash-reference-to-video"
Text prompt, up to 2500 characters
Reference syntax: Use <<<xxx>>> in the prompt to reference images and videos, for example: The person from <<<image_1>>> walks down the street following the camera movement in <<<video_1>>>
2500"The person from <<<image_1>>> walks down the street following the camera movement in <<<video_1>>>"
Reference video URL array, up to 5 clips, corresponding in order to <<<video_1>>>, <<<video_2>>>, etc. in the prompt
Video requirements:
- Formats: MP4 / MOV
- Size: ≤ 200MB per clip
- Duration: ≥ 3 seconds per clip, ≤ 20 seconds in total
- Dimensions: width and height from 720px to 2160px
- Frame rate: 24fps to 60fps
- Video URLs must be directly accessible by the server
5["https://example.com/reference.mp4"]
Reference image URL array (style, scene, or subject references), corresponding in order to <<<image_1>>>, <<<image_2>>>, etc. in the prompt
Constraints: Up to 10 images
Note: Image URLs must be directly accessible by the server or trigger a direct download when accessed
10["https://example.com/character.jpg"]
Video duration in seconds. Defaults to 5 seconds
Range:
- Integer from
3to20
3 <= x <= 205
Video aspect ratio
Options:
16:9: Landscape9:16: Portrait1:1: Square21:9: Ultrawide
16:9, 9:16, 1:1, 21:9 "16:9"
Resolution tier
Options:
- Only
720pis supported
720p "720p"
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-v4-flash-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