curl --request POST \
--url https://ai.cubeuaeai.com/kling/v1/videos/text2video \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"prompt": "A cat walking through a sunflower field at golden sunset",
"model_name": "kling-v3",
"negative_prompt": "<string>",
"mode": "std",
"duration": "5",
"aspect_ratio": "16:9",
"cfg_scale": 0.5,
"multi_shot": false,
"multi_prompt": [
{
"index": 123,
"prompt": "<string>",
"duration": "<string>"
}
],
"sound": "off",
"camera_control": {
"config": {
"horizontal": 123,
"vertical": 123,
"pan": 123,
"tilt": 123,
"roll": 123,
"zoom": 123
}
},
"watermark_info": {
"enabled": true
},
"callback_url": "<string>",
"external_task_id": "<string>"
}
'import requests
url = "https://ai.cubeuaeai.com/kling/v1/videos/text2video"
payload = {
"prompt": "A cat walking through a sunflower field at golden sunset",
"model_name": "kling-v3",
"negative_prompt": "<string>",
"mode": "std",
"duration": "5",
"aspect_ratio": "16:9",
"cfg_scale": 0.5,
"multi_shot": False,
"multi_prompt": [
{
"index": 123,
"prompt": "<string>",
"duration": "<string>"
}
],
"sound": "off",
"camera_control": { "config": {
"horizontal": 123,
"vertical": 123,
"pan": 123,
"tilt": 123,
"roll": 123,
"zoom": 123
} },
"watermark_info": { "enabled": True },
"callback_url": "<string>",
"external_task_id": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
prompt: 'A cat walking through a sunflower field at golden sunset',
model_name: 'kling-v3',
negative_prompt: '<string>',
mode: 'std',
duration: '5',
aspect_ratio: '16:9',
cfg_scale: 0.5,
multi_shot: false,
multi_prompt: [{index: 123, prompt: '<string>', duration: '<string>'}],
sound: 'off',
camera_control: {
config: {horizontal: 123, vertical: 123, pan: 123, tilt: 123, roll: 123, zoom: 123}
},
watermark_info: {enabled: true},
callback_url: '<string>',
external_task_id: '<string>'
})
};
fetch('https://ai.cubeuaeai.com/kling/v1/videos/text2video', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://ai.cubeuaeai.com/kling/v1/videos/text2video",
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' => 'A cat walking through a sunflower field at golden sunset',
'model_name' => 'kling-v3',
'negative_prompt' => '<string>',
'mode' => 'std',
'duration' => '5',
'aspect_ratio' => '16:9',
'cfg_scale' => 0.5,
'multi_shot' => false,
'multi_prompt' => [
[
'index' => 123,
'prompt' => '<string>',
'duration' => '<string>'
]
],
'sound' => 'off',
'camera_control' => [
'config' => [
'horizontal' => 123,
'vertical' => 123,
'pan' => 123,
'tilt' => 123,
'roll' => 123,
'zoom' => 123
]
],
'watermark_info' => [
'enabled' => true
],
'callback_url' => '<string>',
'external_task_id' => '<string>'
]),
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://ai.cubeuaeai.com/kling/v1/videos/text2video"
payload := strings.NewReader("{\n \"prompt\": \"A cat walking through a sunflower field at golden sunset\",\n \"model_name\": \"kling-v3\",\n \"negative_prompt\": \"<string>\",\n \"mode\": \"std\",\n \"duration\": \"5\",\n \"aspect_ratio\": \"16:9\",\n \"cfg_scale\": 0.5,\n \"multi_shot\": false,\n \"multi_prompt\": [\n {\n \"index\": 123,\n \"prompt\": \"<string>\",\n \"duration\": \"<string>\"\n }\n ],\n \"sound\": \"off\",\n \"camera_control\": {\n \"config\": {\n \"horizontal\": 123,\n \"vertical\": 123,\n \"pan\": 123,\n \"tilt\": 123,\n \"roll\": 123,\n \"zoom\": 123\n }\n },\n \"watermark_info\": {\n \"enabled\": true\n },\n \"callback_url\": \"<string>\",\n \"external_task_id\": \"<string>\"\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://ai.cubeuaeai.com/kling/v1/videos/text2video")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"prompt\": \"A cat walking through a sunflower field at golden sunset\",\n \"model_name\": \"kling-v3\",\n \"negative_prompt\": \"<string>\",\n \"mode\": \"std\",\n \"duration\": \"5\",\n \"aspect_ratio\": \"16:9\",\n \"cfg_scale\": 0.5,\n \"multi_shot\": false,\n \"multi_prompt\": [\n {\n \"index\": 123,\n \"prompt\": \"<string>\",\n \"duration\": \"<string>\"\n }\n ],\n \"sound\": \"off\",\n \"camera_control\": {\n \"config\": {\n \"horizontal\": 123,\n \"vertical\": 123,\n \"pan\": 123,\n \"tilt\": 123,\n \"roll\": 123,\n \"zoom\": 123\n }\n },\n \"watermark_info\": {\n \"enabled\": true\n },\n \"callback_url\": \"<string>\",\n \"external_task_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://ai.cubeuaeai.com/kling/v1/videos/text2video")
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\": \"A cat walking through a sunflower field at golden sunset\",\n \"model_name\": \"kling-v3\",\n \"negative_prompt\": \"<string>\",\n \"mode\": \"std\",\n \"duration\": \"5\",\n \"aspect_ratio\": \"16:9\",\n \"cfg_scale\": 0.5,\n \"multi_shot\": false,\n \"multi_prompt\": [\n {\n \"index\": 123,\n \"prompt\": \"<string>\",\n \"duration\": \"<string>\"\n }\n ],\n \"sound\": \"off\",\n \"camera_control\": {\n \"config\": {\n \"horizontal\": 123,\n \"vertical\": 123,\n \"pan\": 123,\n \"tilt\": 123,\n \"roll\": 123,\n \"zoom\": 123\n }\n },\n \"watermark_info\": {\n \"enabled\": true\n },\n \"callback_url\": \"<string>\",\n \"external_task_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "860260753860210752",
"task_id": "860260753860210752",
"object": "video",
"model": "kling-v3",
"status": "<string>",
"progress": 0,
"created_at": 1773130665
}Kling 3.0 Text-to-Video
Generate a video from a text prompt using the kling-v3 model.
curl --request POST \
--url https://ai.cubeuaeai.com/kling/v1/videos/text2video \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"prompt": "A cat walking through a sunflower field at golden sunset",
"model_name": "kling-v3",
"negative_prompt": "<string>",
"mode": "std",
"duration": "5",
"aspect_ratio": "16:9",
"cfg_scale": 0.5,
"multi_shot": false,
"multi_prompt": [
{
"index": 123,
"prompt": "<string>",
"duration": "<string>"
}
],
"sound": "off",
"camera_control": {
"config": {
"horizontal": 123,
"vertical": 123,
"pan": 123,
"tilt": 123,
"roll": 123,
"zoom": 123
}
},
"watermark_info": {
"enabled": true
},
"callback_url": "<string>",
"external_task_id": "<string>"
}
'import requests
url = "https://ai.cubeuaeai.com/kling/v1/videos/text2video"
payload = {
"prompt": "A cat walking through a sunflower field at golden sunset",
"model_name": "kling-v3",
"negative_prompt": "<string>",
"mode": "std",
"duration": "5",
"aspect_ratio": "16:9",
"cfg_scale": 0.5,
"multi_shot": False,
"multi_prompt": [
{
"index": 123,
"prompt": "<string>",
"duration": "<string>"
}
],
"sound": "off",
"camera_control": { "config": {
"horizontal": 123,
"vertical": 123,
"pan": 123,
"tilt": 123,
"roll": 123,
"zoom": 123
} },
"watermark_info": { "enabled": True },
"callback_url": "<string>",
"external_task_id": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
prompt: 'A cat walking through a sunflower field at golden sunset',
model_name: 'kling-v3',
negative_prompt: '<string>',
mode: 'std',
duration: '5',
aspect_ratio: '16:9',
cfg_scale: 0.5,
multi_shot: false,
multi_prompt: [{index: 123, prompt: '<string>', duration: '<string>'}],
sound: 'off',
camera_control: {
config: {horizontal: 123, vertical: 123, pan: 123, tilt: 123, roll: 123, zoom: 123}
},
watermark_info: {enabled: true},
callback_url: '<string>',
external_task_id: '<string>'
})
};
fetch('https://ai.cubeuaeai.com/kling/v1/videos/text2video', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://ai.cubeuaeai.com/kling/v1/videos/text2video",
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' => 'A cat walking through a sunflower field at golden sunset',
'model_name' => 'kling-v3',
'negative_prompt' => '<string>',
'mode' => 'std',
'duration' => '5',
'aspect_ratio' => '16:9',
'cfg_scale' => 0.5,
'multi_shot' => false,
'multi_prompt' => [
[
'index' => 123,
'prompt' => '<string>',
'duration' => '<string>'
]
],
'sound' => 'off',
'camera_control' => [
'config' => [
'horizontal' => 123,
'vertical' => 123,
'pan' => 123,
'tilt' => 123,
'roll' => 123,
'zoom' => 123
]
],
'watermark_info' => [
'enabled' => true
],
'callback_url' => '<string>',
'external_task_id' => '<string>'
]),
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://ai.cubeuaeai.com/kling/v1/videos/text2video"
payload := strings.NewReader("{\n \"prompt\": \"A cat walking through a sunflower field at golden sunset\",\n \"model_name\": \"kling-v3\",\n \"negative_prompt\": \"<string>\",\n \"mode\": \"std\",\n \"duration\": \"5\",\n \"aspect_ratio\": \"16:9\",\n \"cfg_scale\": 0.5,\n \"multi_shot\": false,\n \"multi_prompt\": [\n {\n \"index\": 123,\n \"prompt\": \"<string>\",\n \"duration\": \"<string>\"\n }\n ],\n \"sound\": \"off\",\n \"camera_control\": {\n \"config\": {\n \"horizontal\": 123,\n \"vertical\": 123,\n \"pan\": 123,\n \"tilt\": 123,\n \"roll\": 123,\n \"zoom\": 123\n }\n },\n \"watermark_info\": {\n \"enabled\": true\n },\n \"callback_url\": \"<string>\",\n \"external_task_id\": \"<string>\"\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://ai.cubeuaeai.com/kling/v1/videos/text2video")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"prompt\": \"A cat walking through a sunflower field at golden sunset\",\n \"model_name\": \"kling-v3\",\n \"negative_prompt\": \"<string>\",\n \"mode\": \"std\",\n \"duration\": \"5\",\n \"aspect_ratio\": \"16:9\",\n \"cfg_scale\": 0.5,\n \"multi_shot\": false,\n \"multi_prompt\": [\n {\n \"index\": 123,\n \"prompt\": \"<string>\",\n \"duration\": \"<string>\"\n }\n ],\n \"sound\": \"off\",\n \"camera_control\": {\n \"config\": {\n \"horizontal\": 123,\n \"vertical\": 123,\n \"pan\": 123,\n \"tilt\": 123,\n \"roll\": 123,\n \"zoom\": 123\n }\n },\n \"watermark_info\": {\n \"enabled\": true\n },\n \"callback_url\": \"<string>\",\n \"external_task_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://ai.cubeuaeai.com/kling/v1/videos/text2video")
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\": \"A cat walking through a sunflower field at golden sunset\",\n \"model_name\": \"kling-v3\",\n \"negative_prompt\": \"<string>\",\n \"mode\": \"std\",\n \"duration\": \"5\",\n \"aspect_ratio\": \"16:9\",\n \"cfg_scale\": 0.5,\n \"multi_shot\": false,\n \"multi_prompt\": [\n {\n \"index\": 123,\n \"prompt\": \"<string>\",\n \"duration\": \"<string>\"\n }\n ],\n \"sound\": \"off\",\n \"camera_control\": {\n \"config\": {\n \"horizontal\": 123,\n \"vertical\": 123,\n \"pan\": 123,\n \"tilt\": 123,\n \"roll\": 123,\n \"zoom\": 123\n }\n },\n \"watermark_info\": {\n \"enabled\": true\n },\n \"callback_url\": \"<string>\",\n \"external_task_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "860260753860210752",
"task_id": "860260753860210752",
"object": "video",
"model": "kling-v3",
"status": "<string>",
"progress": 0,
"created_at": 1773130665
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Positive text prompt. Maximum 2500 characters.
2500"A cat walking through a sunflower field at golden sunset"
Model name
kling-v3 "kling-v3"
Negative text prompt. Maximum 2500 characters.
2500std: standard mode (better value). pro: professional mode (higher quality).
std, pro Video duration in seconds, 3-15.
3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 "5"
Aspect ratio of the generated video (width:height).
16:9, 9:16, 1:1 "16:9"
Prompt adherence (0-1). Higher values give the model less freedom. Not supported by kling-v2.x models.
0 <= x <= 1Whether to generate a multi-shot video. When true, prompt is ignored and multi_prompt must be used.
Storyboard mode. Required when multi_shot is true.
customize, intelligence Storyboard shots (1-6). Required when multi_shot is true and shot_type is customize.
Show child attributes
Show child attributes
Whether to generate sound effects at the same time. Supported on V2.6 and later.
on, off Camera movement parameters.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Callback URL for task status notifications
Custom task ID. Must be unique within the same account.