Skip to main content
POST
Kling 3.0 & 3.0 Omni
Parameters and usage are aligned with the official documentation. For detailed parameters, refer directly to the official documents.

1. Overview

This document explains how to use text-to-video, image-to-video, Omni video, and motion control through the native Kling 3.0 protocol. All four capabilities use asynchronous task mode:
  1. Call the corresponding creation endpoint.
  2. Save the data.id from the creation response.
  3. Use the same API Key from task creation to query task status.
  4. After the task succeeds, retrieve and save the generated video from outputs.

1.1 API Endpoints

The full addresses in the examples in this document are https://{api_domain} plus the endpoint paths in the table, where {api_domain} is the API domain you use.

1.2 Authentication

All requests must include an API Key. POST requests must also specify the JSON content type:

1.3 Response Structure

data in the creation response is an object with the following common fields: data in the query response is an array, and each task contains the following fields: The common fields of the video result in outputs are type, id, url, watermark_url, and duration. url is the non-watermarked result URL, watermark_url is the watermarked result URL, and duration is the video duration in seconds.

2. Text-to-Video

Official parameter documentation: Text to Video

2.1 Create Task

Common request fields: When multi_shot=true, you can describe multiple shots in the prompt using the official Kling format; the sum of the durations of each shot should equal the total video duration.

2.2 Creation Example

After successful creation, the task ID is returned:

2.3 Query Task

Save data.id. If options.external_task_id is not set, data.external_id may not be returned. Use the same API Key used to create the task. If the task ID does not exist or cannot be accessed, task not found will be returned. You can also use external_task_ids to query custom task IDs:
Only one of task_ids and external_task_ids can be used per request. Both support 1–50 IDs separated by English commas. data in the response is an array and preserves the order of the requested IDs.

2.4 Query Example

When the task succeeds, the response is:
status=processing means the task is still running; it is recommended to query every 10–30 seconds. status=failed means the task failed; do not continue polling. After the task succeeds, save the file corresponding to outputs[type=video].url promptly because the download URL may expire.

2.5 Billing

The price tier is determined by settings.resolution and settings.audio. For example, the cost for 1080p, audio=native, duration=5 is “per-second unit price of the 1080p native audio tier × 5 seconds”. If duration is not provided, the cost is billed at the default 5 seconds. The fee is deducted based on the requested duration when the task is created; if task creation fails or generation ultimately fails, the fee is automatically refunded. For the specific unit price, refer to the price page of the service you use.

3. Image-to-Video

Official parameter documentation: Image to Video

3.1 Create Task

Common request fields: contents sub-item fields: Images support .jpg, .jpeg, and .png; file size must not exceed 50 MB; width and height must be at least 300 pixels; aspect ratio must be between 1:2.5 and 2.5:1.

3.2 Creation Example

On successful creation, data.id is the task ID used for subsequent queries:

3.3 Query Task

Use data.id from the creation response to query the task:
When querying with task_ids, use the same API Key used to create the task. You can also query with external_task_ids using the options.external_task_id passed at creation. The query parameter supports 1–50 IDs separated by English commas.

3.4 Query Example

When the task succeeds, the video URL is in outputs[type=video].url:
When status=processing, continue querying every 10–30 seconds; when status=failed, stop polling and correct the input based on the error message.

3.5 Billing

The price tier is determined by settings.resolution and settings.audio; if duration is not provided, the cost is billed at the default 5 seconds. The fee is deducted based on the requested duration when the task is created; if task creation fails or generation ultimately fails, the fee is automatically refunded. For the specific unit price, refer to the price page of the service you use.

4. Omni Video

Official parameter documentation: Omni Video

4.1 Create Task

Common request fields: contents sub-item fields: Images support .jpg, .jpeg, and .png; file size must not exceed 50 MB; width and height must be at least 300 pixels; aspect ratio must be between 1:2.5 and 2.5:1. Videos support .mp4 and .mov; file size must not exceed 200 MB; duration must be 3–15.5 seconds. Audio combination rules:
  • feature_video (feature reference video): audio can only be off (original video audio is not supported), and multi_shot can only be true.
  • base_video (video to edit): audio cannot be native (can be off or original), and multi-shot is not supported. audio=original is only available for requests that include a reference video.
  • When no video input is included, audio=off or audio=native can be used.

4.2 Creation Example

The following example uses a reference image to generate a video:
Last modified on October 15, 2026