Get Kling 4.0 Voices
October 15, 2026
Table of contents
This endpoint lists the Kling 4.0 voices available to your account: your saved voices first, then Kling’s official voices. Use a voice id or name as voice_1, voice_2 or voice_3 in POST /videos/omni with omni_version: v4.
Some voices have samples shorter than 3 seconds, which Kling does not accept — POST /videos/omni with such a voice returns a 400 error.
https://api.useapi.net/v1/kling/videos/voices?…
Request Headers
Authorization: Bearer {API token}
API tokenis required, see Setup useapi.net for details.
Query Parameters
emailis optional when only one account configured. However, if you have multiple accounts configured, this parameter becomes required.
Notes:
- Saved voices have
source: USERand Kling’s official voices havesource: TTS_OFFICIAL audioUrlis the voice sample, so you can listen to a voice before you use it
Responses
-
{ "voices": [ { "id": "English_captivating_female1", "name": "Emma", "source": "TTS_OFFICIAL", "audioUrl": "https://v15-kling.klingai.com/bs2/upload-ylab-stunt-sgp/kling/tts/emma.mp3?x-kcdn-pid=112372", "coverUrl": "https://s15-kling.klingai.com/kimg/.../cover.png", "emotions": [ { "name": "Neutral", "key": "neutral", "enable": true }, { "name": "Happy", "key": "happy", "enable": true }, { "name": "Angry", "key": "angry", "enable": true }, { "name": "Sad", "key": "sad", "enable": true }, { "name": "Fearful", "key": "fearful", "enable": true }, { "name": "Disgusted", "key": "disgusted", "enable": true }, { "name": "Surprised", "key": "surprised", "enable": true } ] }, { "id": "English_CalmWoman", "name": "Diana", "source": "TTS_OFFICIAL", "audioUrl": "https://v15-kling.klingai.com/bs2/upload-ylab-stunt-sgp/kling/tts/diana.mp3?x-kcdn-pid=112372", "coverUrl": "https://s15-kling.klingai.com/kimg/.../cover.png", "emotions": [ { "name": "Neutral", "key": "neutral", "enable": true }, { "name": "Happy", "key": "happy", "enable": true }, { "name": "Angry", "key": "angry", "enable": true }, { "name": "Sad", "key": "sad", "enable": true }, { "name": "Fearful", "key": "fearful", "enable": true }, { "name": "Disgusted", "key": "disgusted", "enable": true }, { "name": "Surprised", "key": "surprised", "enable": true } ] } ] } -
{ "error": "Unauthorized", "code": 401 }
Model
{ // TypeScript, all fields are optional
voices: Array<{
id: string // Use as voice_1 … voice_3 in POST /videos/omni (or use name)
name: string // Voice name, e.g. "Emma"
source: 'USER' | 'TTS_OFFICIAL' // USER = your saved voice, TTS_OFFICIAL = Kling's official voice
audioUrl: string // Voice sample
coverUrl?: string // Cover image
emotions?: Array<{
name: string
key: string
enable: boolean
}>
}>
}
Examples
-
curl -X GET "https://api.useapi.net/v1/kling/videos/[email protected]" \ -H "Authorization: Bearer ..." -
const token = "API token"; const email = "Previously configured account email"; const apiUrl = "https://api.useapi.net/v1/kling/videos/voices"; const response = await fetch(`${apiUrl}?email=${email}`, { method: "GET", headers: { "Authorization": `Bearer ${token}`, } }); const result = await response.json(); console.log("response", {response, result}); -
import requests token = "API token" email = "Previously configured account email" apiUrl = "https://api.useapi.net/v1/kling/videos/voices" headers = { "Authorization" : f"Bearer {token}" } params = { "email": email } response = requests.get(apiUrl, headers=headers, params=params) print(response, response.json())