Kling
Kling Text To Audio
Use DeerAPI to call the Kling Text To Audio endpoint with request details, response details, examples, and an OpenAPI playground.
POST
/
kling
/
v1
/
audio
/
text-to-audio
cURL
curl https://api.deerapi.com/kling/v1/audio/text-to-audio \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $DEERAPI_KEY" \
-d '{
"prompt": "Soft ambient ocean waves at sunrise.",
"duration": 5
}'
import os
import requests
url = "https://api.deerapi.com/kling/v1/audio/text-to-audio"
headers = {
"Authorization": "Bearer " + os.environ["DEERAPI_KEY"],
"Content-Type": "application/json",
}
payload = {
"prompt": "Soft ambient ocean waves at sunrise.",
"duration": 5
}
response = requests.post(url, headers=headers, json=payload)
print(response.json())
const response = await fetch("https://api.deerapi.com/kling/v1/audio/text-to-audio", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.DEERAPI_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"prompt": "Soft ambient ocean waves at sunrise.",
"duration": 5
}),
});
console.log(await response.json());
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.deerapi.com/kling/v1/audio/text-to-audio",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'prompt' => 'Soft ambient ocean waves at sunrise.',
'duration' => 5
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.deerapi.com/kling/v1/audio/text-to-audio"
payload := strings.NewReader("{\n \"prompt\": \"Soft ambient ocean waves at sunrise.\",\n \"duration\": 5\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.deerapi.com/kling/v1/audio/text-to-audio")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"prompt\": \"Soft ambient ocean waves at sunrise.\",\n \"duration\": 5\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.deerapi.com/kling/v1/audio/text-to-audio")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"prompt\": \"Soft ambient ocean waves at sunrise.\",\n \"duration\": 5\n}"
response = http.request(request)
puts response.read_body{
"code": 0,
"message": "SUCCEED",
"data": {
"task_id": "861254119619698760",
"task_status": "submitted",
"task_info": {},
"created_at": 1773367502225,
"updated_at": 1773367502225
}
}Overview
Use this endpoint to call the Kling Text To Audio workflow through DeerAPI. The API reference on this page shows the request schema, response schema, authentication requirements, and runnable examples for the configured endpoint.Before you start
Use the DeerAPI base URL and pass your API Key in theAuthorization header:
https://api.deerapi.com
Authorization: Bearer $DEERAPI_KEY
Model selection
Choose a current model ID from the live pricing page. Model availability changes over time, so avoid copying a model ID from an old project without checking the live list first.Implementation notes
- Use the OpenAPI playground for the exact request fields accepted by this endpoint.
- Keep API Keys on the server side when you build production applications.
- Log the request ID from failed calls so support can investigate the request.
- Retry
429,500, and503responses with exponential backoff.
Authorizations
Use a DeerAPI API Key as a Bearer token.
Body
application/json
Text prompt describing the audio to generate. Max 200 characters.
Duration of the generated audio in seconds. Range: 3.0–10.0, supports one decimal place.
Optional user-defined task ID for your own tracking. Does not replace the system-generated task ID. Must be unique per account.
Webhook URL for task status notifications. The server sends a callback when the task status changes.
⌘I
cURL
curl https://api.deerapi.com/kling/v1/audio/text-to-audio \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $DEERAPI_KEY" \
-d '{
"prompt": "Soft ambient ocean waves at sunrise.",
"duration": 5
}'
import os
import requests
url = "https://api.deerapi.com/kling/v1/audio/text-to-audio"
headers = {
"Authorization": "Bearer " + os.environ["DEERAPI_KEY"],
"Content-Type": "application/json",
}
payload = {
"prompt": "Soft ambient ocean waves at sunrise.",
"duration": 5
}
response = requests.post(url, headers=headers, json=payload)
print(response.json())
const response = await fetch("https://api.deerapi.com/kling/v1/audio/text-to-audio", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.DEERAPI_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"prompt": "Soft ambient ocean waves at sunrise.",
"duration": 5
}),
});
console.log(await response.json());
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.deerapi.com/kling/v1/audio/text-to-audio",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'prompt' => 'Soft ambient ocean waves at sunrise.',
'duration' => 5
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.deerapi.com/kling/v1/audio/text-to-audio"
payload := strings.NewReader("{\n \"prompt\": \"Soft ambient ocean waves at sunrise.\",\n \"duration\": 5\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.deerapi.com/kling/v1/audio/text-to-audio")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"prompt\": \"Soft ambient ocean waves at sunrise.\",\n \"duration\": 5\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.deerapi.com/kling/v1/audio/text-to-audio")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"prompt\": \"Soft ambient ocean waves at sunrise.\",\n \"duration\": 5\n}"
response = http.request(request)
puts response.read_body{
"code": 0,
"message": "SUCCEED",
"data": {
"task_id": "861254119619698760",
"task_status": "submitted",
"task_info": {},
"created_at": 1773367502225,
"updated_at": 1773367502225
}
}