> ## Documentation Index
> Fetch the complete documentation index at: https://docs.acedata.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# Kling Talking Photo API (Kling Talking Photo)

> Kling video generation integration guide - Ace Data Cloud

Turn **one photo + one audio clip** into a “talking video” with one click. The service automatically completes two steps internally: first uses image2video to animate the photo, then uses lip-sync to synchronize the lips with the audio. You only need to make **one** call.

* **Endpoint**: `POST https://api.acedata.cloud/kling/talking-photo`
* **Billing**: By duration, 5 seconds **16.45 Credits**, 10 seconds **30.45 Credits** (= combined image2video + lip-sync price)

## Request Headers

| Field | Value |
| - | - |
| `authorization` | `Bearer ${API_KEY}` |
| `content-type` | `application/json` |

## Request Parameters

| Parameter | Type | Required | Default | Description |
| - | - | - | - | - |
| `image_url` | string | Yes | — | Public URL of the person's photo; a clear front-facing photo is recommended |
| `audio_url` | string | Yes | — | Public URL of the driving audio (.mp3/.wav/.m4a/.aac, ≤5MB) |
| `prompt` | string | No | — | Action/expression prompt for the photo animation stage |
| `model` | string | No | `kling-v2-1-master` | Kling model used for photo animation |
| `duration` | integer | No | `5` | Video duration (5 or 10 seconds) |
| `mode` | string | No | `pro` | Animation quality (std/pro) |
| `callback_url` | string | No | — | Returns task\_id asynchronously if provided or if `async=true` |
| `async` | boolean | No | `false` | Asynchronous mode, use with `/kling/tasks` polling or callback |

## Request Example

```bash theme={null}
curl -X POST 'https://api.acedata.cloud/kling/talking-photo' \
  -H 'authorization: Bearer ${API_KEY}' \
  -H 'content-type: application/json' \
  -d '{
    "image_url": "https://cdn.acedata.cloud/4hfydw.jpg",
    "audio_url": "https://cdn.acedata.cloud/6f7d62b18b.wav",
    "duration": 5
  }'
```

## Response Example

```json theme={null}
{
  "success": true,
  "task_id": "0c0b4d3a-2f1e-4a6b-9c2d-2b3c4d5e6f70",
  "video_id": "895055968777281546",
  "video_url": "https://cdn.acedata.cloud/assets/examples/kling/6c68c267-065b-4423-b66b-a0e4c59ee0d5-6a664a591a53.mp4",
  "source_video_url": "https://cdn.acedata.cloud/assets/examples/gemini/04a043bd-6b23-4b4e-945c-ce48158c3eee-3a89912507c7.mp4",
  "duration": 5,
  "state": "succeed"
}
```

| Field | Description |
| - | - |
| `video_url` | Final talking video (already transferred to this platform's CDN) |
| `source_video_url` | Intermediate photo animation video (image2video result) |
| `video_id` | Kling video ID |

## Notes

* A clear, front-facing, single-person photo is recommended.
* The audio duration is recommended not to exceed the video duration (5s/10s).
* Billing occurs upon success; parameter validation failures (4xx) are not billed.
* Generation takes approximately 4–6 minutes (two steps); using `async=true` + `/kling/tasks` polling is recommended.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.