---
title: "Kling AI: Next-Gen AI Video & AI Image Generator"
source: "https://kling.ai/document-api/apiReference/model/lipSync"
author:
published:
created: 2026-04-24
description:
tags:
  - "clippings"
---
## Identify Face

POST `/v1/videos/identify-face`

```bash
curl --request POST \
  --url https://api-singapore.klingai.com/v1/videos/identify-face \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "video_url": "https://p1-kling.klingai.com/kcdn/cdn-kcdn112452/kling-qa-test/kling20260206mp4.mp4",
    "video_id": ""
  }'
```

200

```json
{
  "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, used to track requests and troubleshoot problems
  "data": {
    "session_id": "id", // Session ID
    "final_unit_deduction": "string", // The deduction units of task
    "face_data": [ //Face data list
      {
        "face_id": "string", // Face ID
        "face_image": "url", // Face image URL
        "start_time": 0, // Face appearance start time, unit: ms
        "end_time": 5200 //Face appearance end time, unit: ms
      }
    ]
  }
}
```

Identify faces in the video for lip-sync processing.

### Request Header

Data Exchange Format

AuthorizationstringRequired

Authentication information, refer to API authentication

### Request Body

video\_idstringOptional

The ID of the video generated by Kling AI

- Used to specify the video and determine whether it can be used for lip-sync services.

- This parameter and 'video\_url' are mutually exclusive—only one can be filled, and neither can be left empty.

- Only supports videos generated within the last 30 days with a duration of no more than 60 seconds.

video\_urlstringOptional

The URL of the video

- Used to specify the video and determine whether it can be used for lip-sync services.

- This parameter and 'video\_id' are mutually exclusive—only one can be filled, and neither can be left empty.

- Supported video formats:.mp4/.mov, file size ≤100MB, duration 2s–60s, resolution 720p or 1080p, with both width and height between 512px–2160px. If validation fails, an error code will be returned.

- The system checks video content—if issues are detected, an error code will be returned.

---

## Create Task

POST `/v1/videos/advanced-lip-sync`

```bash
curl --request POST \
  --url https://api-singapore.klingai.com/v1/videos/advanced-lip-sync \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "session_id": "850508686686064678",
    "face_choose": [
      {
        "face_id": "0",
        "sound_file": "https://p1-kling.klingai.com/kcdn/cdn-kcdn112452/kling-qa-test/go-to-world.mp3",
        "sound_insert_time": 1000,
        "sound_start_time": 0,
        "sound_end_time": 3000,
        "sound_volume": 2,
        "original_audio_volume": 2
      }
    ],
    "external_task_id": "",
    "callback_url": ""
  }'
```

200

```json
{
  "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, used to track requests and troubleshoot problems
  "data": {
    "task_id": "string", // Task ID, generated by the system
    "task_info": { //Task creation parameters
      "external_task_id": "string" //User-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
  }
}
```

### Request Header

Data Exchange Format

AuthorizationstringRequired

Authentication information, refer to API authentication

### Request Body

session\_idstringRequired

Session ID generated during the identify face API. It remains unchanged during the selection/editing process.

face\_choosearrayRequired

Specified Face for Lip-Sync

- Includes Face ID, lip movement reference data, etc.

- Currently only supports one person lip-sync.

▾Hide child attributes

face\_idstringRequired

Face ID

- Returned by the facial recognition interface.

audio\_idstringOptional

Sound ID Generated via TTS API

- Only supports audio generated within the last 30 days with a duration of no less than 2 seconds and no more than 60 seconds.

- Either audio\_id or sound\_file must be provided (mutually exclusive; cannot be empty or both populated).

sound\_filestringOptional

Sound File

- Supports Base64-encoded audio or accessible audio URL.

- Accepted formats:.mp3/.wav/.m4a/.aac (max 5MB). Format mismatches or oversized files will return error codes.

- Only supports audio with a duration of no less than 2 seconds and no more than 60 seconds.

- Either audio\_id or sound\_file must be provided (mutually exclusive; cannot be empty or both populated).

- The system will verify the audio content and return error codes if there are any problems.

sound\_start\_timelongRequired

Time point to start cropping sound

- Based on the original sound start time, the start time is 0'0", units: ms

- The sound before the starting point will be cropped, and the cropped sound must not be shorter than 2 seconds.

sound\_end\_timelongRequired

Time point to stop cropping sound

- Based on the original sound start time, the start time is 0'0", units: ms

- The sound after the end point will be cropped, and the cropped sound must not be shorter than 2 seconds.

- The end point time shouldn't be later than the total duration of the original sound.

sound\_insert\_timelongRequired

The time for inserting cropped sound

- Based on the original video start time, the start time is 0'0", units: ms

- The time range for inserting sound should overlap with the face's lip-sync time interval for at least 2 seconds.

- The start time for inserting sound must not be earlier than the start time of the video, and the end time for inserting sound must not be later than the end time of the video.

Volume Controls (higher values = louder)

- Value range: \[0, 2\]

Original video volume (higher values = louder)

- Value range: \[0, 2\]

- No effect if source video is silent.

watermark\_infoobjectOptional

Whether to generate watermarked results simultaneously

- Defined by the enabled parameter, format:

```json
"watermark_info": { "enabled": boolean }
```

- true: generate watermarked result, false: do not generate

- Custom watermarks are not currently supported

external\_task\_idstringOptional

Custom Task ID

- User-defined task ID. It will not override the system-generated task ID, but supports querying tasks by this ID.

- Please note that uniqueness must be ensured for each user.

callback\_urlstringOptional

The callback notification address for the result of this task. If configured, the server will actively notify when the task status changes.

- For specific message schema, see [Callback Protocol](https://kling.ai/document-api/apiReference/callbackProtocol)

---

## Query Task (Single)

GET `/v1/videos/advanced-lip-sync/{id}`

```bash
curl --request GET \
  --url https://api-singapore.klingai.com/v1/videos/advanced-lip-sync/{task_id} \
  --header 'Authorization: Bearer <token>'
```

200

```json
{
  "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, 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 message, displaying the failure reason when the task fails (such as triggering the content risk control of the platform, etc.)
    "task_info": { //Task creation parameters
      "parent_video": { //Original video information
        "id": "string", // Original video ID
        "url": "string", // Original video URL
        "duration": "string" //Original video duration, unit: s
      }
    },
    "task_result": { //Task result
      "videos": [ //Generated video list
        {
          "id": "string", // Generated video ID; globally unique
          "url": "string", // URL for generating videos (Please note that for security purposes, generated images/videos will be deleted after 30 days. Please save them promptly.)
          "watermark_url": "string", // Watermarked video download URL, anti-hotlinking format
          "duration": "string" //Total video duration, unit: s
        }
      ]
    },
    "watermark_info": {
      "enabled": boolean //Whether watermark is enabled
    },
    "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
  }
}
```

### Request Header

Data Exchange Format

AuthorizationstringRequired

Authentication information, refer to API authentication

### Path Parameters

task\_idstringOptional

Task ID for Video Generation - Lip-Sync. Fill the value directly in the request path.

---

## Query Task (List)

GET `/v1/videos/advanced-lip-sync`

```bash
curl --request GET \
  --url 'https://api-singapore.klingai.com/v1/videos/advanced-lip-sync?pageNum=1&pageSize=30' \
  --header 'Authorization: Bearer <token>'
```

200

```json
{
  "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, 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 message, displaying the failure reason when the task fails (such as triggering the content risk control of the platform, etc.)
      "task_info": { //Task creation parameters
        "parent_video": { //Original video information
          "id": "string", // Original video ID
          "url": "string", // Original video URL
          "duration": "string" //Original video duration, unit: s
        }
      },
      "task_result": { //Task result
        "videos": [ //Generated video list
          {
            "id": "string", // Generated video ID; globally unique
            "url": "string", // URL for generating videos (Please note that for security purposes, generated images/videos will be deleted after 30 days. Please save them promptly.)
            "watermark_url": "string", // Watermarked video download URL, anti-hotlinking format
            "duration": "string" //Total video duration, unit: s
          }
        ]
      },
      "watermark_info": {
        "enabled": boolean //Whether watermark is enabled
      },
      "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
    }
  ]
}
```

### Request Header

Data Exchange Format

AuthorizationstringRequired

Authentication information, refer to API authentication

### Query Parameters

Page number

- Value range: \[1, 1000\]

Number of items per page

- Value range: \[1, 500\]