Doc version: v1.0.0 | Last updated: 2026-06-11
This platform fully supports the Kling AI official video generation API. Requests and responses are transparently proxied; parameter semantics are identical to the official API.
POST https://platform.dataeyes.ai/kling/v1/videos/image2video
Please note that in order to maintain naming consistency, the original model field has been changed to model_name. Please use this field to specify the model version in the future.
We maintain backward compatibility. If you continue using the original model field, it will not affect API calls and will be equivalent to the default behavior when model_name is empty (i.e., calling the V1 model).
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
Content-Type | string | Yes | application/json | Data Exchange Format |
Authorization | string | Yes | Authentication information, refer to API authentication |
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
model_name | string | No | kling-v1 | Model Name Options: kling-v1, kling-v1-5, kling-v1-6, kling-v2-master, kling-v2-1, kling-v2-1-master, kling-v2-5-turbo, kling-v2-6, kling-v3 |
image | string | No | Reference Image - Supports image Base64 encoding or image URL (ensure accessibility) - Important: When using Base64, do NOT add any prefix like data:image/png;base64,. Submit only the raw Base64 string.- Correct Base64 format: - Incorrect Base64 format (with data: prefix): - Supported image formats: .jpg / .jpeg / .png- File size: ≤10MB, dimensions: min 300px, aspect ratio: 1:2.5 ~ 2.5:1 - At least one of image or image_tail must be provided; both cannot be emptySupport varies by model version and video mode. See Capability Map for details. | |
image_tail | string | No | Reference Image - End frame control - Supports image Base64 encoding or image URL (ensure accessibility) - Important: When using Base64, do NOT add any prefix like data:image/png;base64,. Submit only the raw Base64 string.- Supported image formats: .jpg / .jpeg / .png- File size: ≤10MB, dimensions: min 300px - At least one of image or image_tail must be provided; both cannot be empty- image_tail, dynamic_masks/static_mask, and camera_control are mutually exclusive - only one can be used at a timeSupport varies by model version and video mode. See Capability Map for details. | |
multi_shot | boolean | No | false | Whether to generate multi-shot video When true: the prompt parameter is invalid. When false: the shot_type and multi_prompt parameters are invalid |
shot_type | string | No | Storyboard method Options: customize, intelligenceWhen multi_shot is true, this parameter is required | |
prompt | string | No | Positive text prompt The Omni model can achieve various capabilities through Prompt with elements, images, videos, and other content: - Specify elements/images/videos using <<<>>> format, e.g.: <<<element_1>>>, <<<image_1>>>, <<<video_1>>> - For detailed capabilities, see: KLING Omni Model User Guide, Kling VIDEO 3.0 Omni Model User Guide - Cannot exceed 2500 characters - When multi_shot is false or shot_type is intelligence, this parameter must not be empty. - Use <<<voice_1>>> to specify voice, with the sequence matching the voice_list parameter order- A video generation task can reference up to 2 voices; when specifying a voice, the sound parameter must be "on" - The simpler the syntax structure, the better. Example: The man<<<voice_1>>> said: "Hello"- When voice_list is not empty and prompt references voice ID, the task will be billed as "with specified voice" Support varies by model version and video mode. See Capability Map for details. | |
multi_prompt | array | No | Information about each storyboard, such as prompts and duration Define the shot sequence number, corresponding prompt word, and duration through the index, prompt, and duration parameters, where: - Supports up to 6 storyboards, with a minimum of 1 storyboard. - The maximum length of the prompt for each storyboard 512 characters. - The duration of each storyboard should not exceed the total duration, but should not be less than 1. - The sum of the durations of all storyboards equals the total duration of the current task. Load with key:value format as follows: ```json "multi_prompt":[ {"index":int,"prompt":"string","duration":"5"}, {"index":int,"prompt":"string","duration":"5"} ] When multi_shot is true and shot_type is customize, this parameter is required. | |
negative_prompt | string | No | Negative text prompt - Cannot exceed 2500 characters - It is recommended to supplement negative prompt via negative sentences within positive prompts | |
element_list | array | No | Reference Element List, based on element ID from element library - Supports up to 3 reference elements The elements are categorized into video customization element (named as Video Character Elements) and image customization elements (named as Multi-Image Elements), each with distinct scopes of application. Please exercise caution in distinguishing between them. See Kling Element Library User Guide. - Load with key:value format as follows: Support varies by model version and video mode. See Capability Map for details. | |
element_id | long | Yes | Element ID from element library | |
voice_list | array | No | List of voices referenced when generating videos - A video generation task can reference up to 2 voices - When voice_list is not empty and prompt references voice ID, the task will be billed as "with specified voice" - voice_id is returned through the voice customization API, or use system preset voices. See Custom Voices API; NOT the voice_id of Lip-Sync API - element_list and voice_list are mutually exclusive and cannot coexist Example: The support range for different model versions and video modes varies. For details, see Capability Map | |
sound | string | No | off | Whether to generate sound when generating video Options: on, offThe support range for different model versions and video modes varies. For details, see Capability Map |
cfg_scale | float | No | 0.5 | Flexibility in video generation; higher value means lower model flexibility and stronger relevance to user prompt - Value range: [0, 1] kling-v2.x models do not support this parameter |
mode | string | No | std | Video generation mode Options: std, pro, 4k- std: Standard Mode, basic mode, cost-effective. The output video resolution is 720P.- pro: Professional Mode, generates videos use longer duration but higher quality video output. The output video resolution is 1080P.- 4k: 4K Mode, generates videos use longer duration but higher quality video output. The output video resolution is 4K.Support varies by model version and video mode. See Capability Map for details. |
static_mask | string | No | Static brush mask area (mask image created by user using motion brush) The "Motion Brush" feature includes Dynamic Brush (dynamic_masks) and Static Brush (static_mask) - Supports image Base64 encoding or image URL (same format requirements as image field) - Supported image formats: .jpg / .jpeg / .png- Aspect ratio must match the input image (image field), otherwise task will fail - Resolution of static_mask and dynamic_masks.mask must be identical, otherwise task will fail Support varies by model version and video mode. See Capability Map for details. | |
dynamic_masks | array | No | Dynamic brush configuration list - Can configure multiple groups (up to 6), each containing "mask area" and "motion trajectory" sequence Support varies by model version and video mode. See Capability Map for details. | |
mask | string | Yes | Dynamic brush mask area (mask image created by user using motion brush) - Supports image Base64 encoding or image URL (same format requirements as image field) - Supported image formats: .jpg / .jpeg / .png - Aspect ratio must match the input image (image field), otherwise task will fail - Resolution of static_mask and dynamic_masks.mask must be identical, otherwise task will fail | |
trajectories | array | Yes | Motion trajectory coordinate sequence - For 5s video, trajectory length ≤77, coordinate count range: [2, 77] - Coordinate system uses bottom-left corner of image as origin Note 1: More coordinate points = more accurate trajectory. 2 points = straight line between them Note 2: Trajectory direction follows input order. First coordinate is start point, subsequent coordinates are connected sequentially | |
x | int | Yes | X coordinate of trajectory point (pixel coordinate with image bottom-left as origin) | |
y | int | Yes | Y coordinate of trajectory point (pixel coordinate with image bottom-left as origin) | |
camera_control | object | No | Camera movement control protocol (if not specified, model will intelligently match based on input text/images) Support varies by model version and video mode. See Capability Map for details. | |
type | string | Yes | Predefined camera movement type Options: simple, down_back, forward_up, right_turn_forward, left_turn_forward- simple: Simple camera movement, can choose one of six options in "config" - down_back: Camera descends and moves backward ➡️ Pan down and zoom out. config parameter not required - forward_up: Camera moves forward and tilts up ➡️ Zoom in and pan up. config parameter not required - right_turn_forward: Rotate right then move forward ➡️ Right rotation advance. config parameter not required - left_turn_forward: Rotate left then move forward ➡️ Left rotation advance. config parameter not required | |
config | object | No | Contains 6 fields to specify camera movement in different directions - Required when type is "simple"; leave empty for other types - Choose only one parameter to be non-zero; rest must be 0 | |
horizontal | float | No | Horizontal movement - camera translation along x-axis - Value range: [-10, 10]. Negative = left, Positive = right | |
vertical | float | No | Vertical movement - camera translation along y-axis - Value range: [-10, 10]. Negative = down, Positive = up | |
pan | float | No | Horizontal pan - camera rotation around y-axis - Value range: [-10, 10]. Negative = rotate left, Positive = rotate right | |
tilt | float | No | Vertical tilt - camera rotation around x-axis - Value range: [-10, 10]. Negative = tilt down, Positive = tilt up | |
roll | float | No | Roll - camera rotation around z-axis - Value range: [-10, 10]. Negative = counterclockwise, Positive = clockwise | |
zoom | float | No | Zoom - controls camera focal length change, affects field of view - Value range: [-10, 10]. Negative = longer focal length (narrower FOV), Positive = shorter focal length (wider FOV) | |
duration | string | No | 5 | Video duration in seconds Options: 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15Support varies by model version and video mode. See Capability Map for details. |
watermark_info | object | No | Whether to generate watermarked results simultaneously - Defined by the enabled parameter, format: - true: generate watermarked result, false: do not generate - Custom watermarks are not currently supported | |
callback_url | string | No | Callback notification URL for task result. If configured, server will notify when task status changes. - For specific message schema, see Callback Protocol | |
external_task_id | string | No | Customized Task ID - Will not overwrite system-generated task ID, but supports querying task by this ID - Must be unique within a single user account | |
| Parameter Format Details |
image
iVBORw0KGgoAAAANSUhEUgAAAAUA...
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA...
element_list
"element_list":[
{ "element_id": long },
{ "element_id": long }
]
voice_list
"voice_list":[
{"voice_id":"voice_id_1"},
{"voice_id":"voice_id_2"}
]
watermark_info
"watermark_info": { "enabled": boolean }
curl --location --request POST 'https://platform.dataeyes.ai/kling/v1/videos/image2video' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data-raw '{
"model_name": "kling-v2-6",
"image": "https://p2-kling.klingai.com/kcdn/cdn-kcdn112452/kling-qa-test/multi-2.png",
"image_tail": "https://p2-kling.klingai.com/kcdn/cdn-kcdn112452/kling-qa-test/multi-1.png",
"prompt": "Camera zooms out, the girl smiles",
"negative_prompt": "",
"duration": "5",
"mode": "pro",
"sound": "off",
"callback_url": "",
"external_task_id": ""
}'
{
"code": 0, // Error codes; Specific definitions can be found in "Error Code"
"message": "string", // Error information
"request_id": "string", // Request ID, generated by the system
"data": {
"task_id": "string", // Task ID, generated by the system
"task_info": { // Task creation parameters
"external_task_id": "string" // Customer-defined task ID
},
"task_status": "string", // Task status, Enum values: submitted, processing, succeed, failed
"created_at": 1722769557708, // Task creation time, Unix timestamp, unit ms
"updated_at": 1722769557708 // Task update time, Unix timestamp, unit ms
}
}
GET https://platform.dataeyes.ai/kling/v1/videos/image2video/{id}
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
Content-Type | string | Yes | application/json | Data Exchange Format |
Authorization | string | Yes | Authentication information, refer to API authentication |
curl --request GET \
--url https://platform.dataeyes.ai/kling/v1/videos/image2video/{task_id} \
--header 'Authorization: Bearer <token>'
{
"code": 0, // Error codes; Specific definitions can be found in "Error Code"
"message": "string", // Error information
"request_id": "string", // Request ID, generated by the system, is used to track requests and troubleshoot problems
"data": {
"task_id": "string", // Task ID, generated by the system
"task_status": "string", // Task status, Enum values: submitted, processing, succeed, failed
"task_status_msg": "string", // Task status information, displaying the failure reason when the task fails (such as triggering the content risk control of the platform, etc.)
"watermark_info": {
"enabled": boolean
},
"task_result": {
"videos": [
{
"id": "string", // Generated video ID; globally unique
"url": "string", // URL for generating videos (To ensure information security, generated images/videos will be cleared after 30 days. Please make sure to save them promptly.)
"watermark_url": "string", // Watermarked video download URL, anti-leech format
"duration": "string" // Total video duration, unit: s
}
]
},
"task_info": { // Task creation parameters
"external_task_id": "string" // Customer-defined task ID
},
"final_unit_deduction": "string", // The deduction units of task
"created_at": 1722769557708, // Task creation time, Unix timestamp, unit: ms
"updated_at": 1722769557708 // Task update time, Unix timestamp, unit: ms
}
}
GET https://platform.dataeyes.ai/kling/v1/videos/image2video
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
Content-Type | string | Yes | application/json | Data Exchange Format |
Authorization | string | Yes | Authentication information, refer to API authentication |
curl --request GET \
--url 'https://platform.dataeyes.ai/kling/v1/videos/image2video?pageNum=1&pageSize=30' \
--header 'Authorization: Bearer <token>'
{
"code": 0, // Error codes; Specific definitions can be found in Error codes
"message": "string", // Error information
"request_id": "string", // Request ID, generated by the system, to track requests and troubleshoot problems
"data": [
{
"task_id": "string", // Task ID, generated by the system
"task_status": "string", // Task status, Enum values: submitted, processing, succeed, failed
"task_status_msg": "string", // Task status information, displaying the failure reason when the task fails (such as triggering the content risk control of the platform, etc.)
"task_info": { // Task creation parameters
"external_task_id": "string" // Customer-defined task ID
},
"task_result": {
"videos": [
{
"id": "string", // Generated video ID; globally unique
"url": "string", // URL for generating videos (To ensure information security, generated images/videos will be cleared after 30 days. Please make sure to save them promptly.)
"watermark_url": "string", // Watermarked video download URL, anti-leech format
"duration": "string" // Total video duration, unit: s (seconds)
}
]
},
"watermark_info": {
"enabled": boolean
},
"final_unit_deduction": "string", // The deduction units of task
"created_at": 1722769557708, // Task creation time, Unix timestamp, unit: ms
"updated_at": 1722769557708 // Task update time, Unix timestamp, unit: ms
}
]
}