curl --request POST \
--url https://ai.cubeuaeai.com/kling/v1/videos/omni-video \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model_name": "kling-v3-omni",
"prompt": "A cat walking gracefully through a sunlit garden",
"mode": "pro",
"aspect_ratio": "16:9",
"duration": "5",
"multi_shot": false,
"shot_type": "customize",
"multi_prompt": [
{
"index": 123,
"prompt": "<string>",
"duration": "<string>"
}
],
"image_list": [
{
"image_url": "<string>"
}
],
"element_list": [
{
"element_id": 123
}
],
"video_list": [
{
"video_url": "<string>",
"refer_type": "base"
}
],
"sound": "off",
"watermark_info": {
"enabled": true
},
"callback_url": "<string>",
"external_task_id": "<string>"
}
'import requests
url = "https://ai.cubeuaeai.com/kling/v1/videos/omni-video"
payload = {
"model_name": "kling-v3-omni",
"prompt": "A cat walking gracefully through a sunlit garden",
"mode": "pro",
"aspect_ratio": "16:9",
"duration": "5",
"multi_shot": False,
"shot_type": "customize",
"multi_prompt": [
{
"index": 123,
"prompt": "<string>",
"duration": "<string>"
}
],
"image_list": [{ "image_url": "<string>" }],
"element_list": [{ "element_id": 123 }],
"video_list": [
{
"video_url": "<string>",
"refer_type": "base"
}
],
"sound": "off",
"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({
model_name: 'kling-v3-omni',
prompt: 'A cat walking gracefully through a sunlit garden',
mode: 'pro',
aspect_ratio: '16:9',
duration: '5',
multi_shot: false,
shot_type: 'customize',
multi_prompt: [{index: 123, prompt: '<string>', duration: '<string>'}],
image_list: [{image_url: '<string>'}],
element_list: [{element_id: 123}],
video_list: [{video_url: '<string>', refer_type: 'base'}],
sound: 'off',
watermark_info: {enabled: true},
callback_url: '<string>',
external_task_id: '<string>'
})
};
fetch('https://ai.cubeuaeai.com/kling/v1/videos/omni-video', 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/omni-video",
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([
'model_name' => 'kling-v3-omni',
'prompt' => 'A cat walking gracefully through a sunlit garden',
'mode' => 'pro',
'aspect_ratio' => '16:9',
'duration' => '5',
'multi_shot' => false,
'shot_type' => 'customize',
'multi_prompt' => [
[
'index' => 123,
'prompt' => '<string>',
'duration' => '<string>'
]
],
'image_list' => [
[
'image_url' => '<string>'
]
],
'element_list' => [
[
'element_id' => 123
]
],
'video_list' => [
[
'video_url' => '<string>',
'refer_type' => 'base'
]
],
'sound' => 'off',
'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/omni-video"
payload := strings.NewReader("{\n \"model_name\": \"kling-v3-omni\",\n \"prompt\": \"A cat walking gracefully through a sunlit garden\",\n \"mode\": \"pro\",\n \"aspect_ratio\": \"16:9\",\n \"duration\": \"5\",\n \"multi_shot\": false,\n \"shot_type\": \"customize\",\n \"multi_prompt\": [\n {\n \"index\": 123,\n \"prompt\": \"<string>\",\n \"duration\": \"<string>\"\n }\n ],\n \"image_list\": [\n {\n \"image_url\": \"<string>\"\n }\n ],\n \"element_list\": [\n {\n \"element_id\": 123\n }\n ],\n \"video_list\": [\n {\n \"video_url\": \"<string>\",\n \"refer_type\": \"base\"\n }\n ],\n \"sound\": \"off\",\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/omni-video")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model_name\": \"kling-v3-omni\",\n \"prompt\": \"A cat walking gracefully through a sunlit garden\",\n \"mode\": \"pro\",\n \"aspect_ratio\": \"16:9\",\n \"duration\": \"5\",\n \"multi_shot\": false,\n \"shot_type\": \"customize\",\n \"multi_prompt\": [\n {\n \"index\": 123,\n \"prompt\": \"<string>\",\n \"duration\": \"<string>\"\n }\n ],\n \"image_list\": [\n {\n \"image_url\": \"<string>\"\n }\n ],\n \"element_list\": [\n {\n \"element_id\": 123\n }\n ],\n \"video_list\": [\n {\n \"video_url\": \"<string>\",\n \"refer_type\": \"base\"\n }\n ],\n \"sound\": \"off\",\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/omni-video")
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 \"model_name\": \"kling-v3-omni\",\n \"prompt\": \"A cat walking gracefully through a sunlit garden\",\n \"mode\": \"pro\",\n \"aspect_ratio\": \"16:9\",\n \"duration\": \"5\",\n \"multi_shot\": false,\n \"shot_type\": \"customize\",\n \"multi_prompt\": [\n {\n \"index\": 123,\n \"prompt\": \"<string>\",\n \"duration\": \"<string>\"\n }\n ],\n \"image_list\": [\n {\n \"image_url\": \"<string>\"\n }\n ],\n \"element_list\": [\n {\n \"element_id\": 123\n }\n ],\n \"video_list\": [\n {\n \"video_url\": \"<string>\",\n \"refer_type\": \"base\"\n }\n ],\n \"sound\": \"off\",\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-omni",
"status": "<string>",
"progress": 0,
"created_at": 1773130665
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}kling-v3-omni
Create an Omni video generation task. The Omni model can combine a prompt with elements, images, videos, and more.
curl --request POST \
--url https://ai.cubeuaeai.com/kling/v1/videos/omni-video \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model_name": "kling-v3-omni",
"prompt": "A cat walking gracefully through a sunlit garden",
"mode": "pro",
"aspect_ratio": "16:9",
"duration": "5",
"multi_shot": false,
"shot_type": "customize",
"multi_prompt": [
{
"index": 123,
"prompt": "<string>",
"duration": "<string>"
}
],
"image_list": [
{
"image_url": "<string>"
}
],
"element_list": [
{
"element_id": 123
}
],
"video_list": [
{
"video_url": "<string>",
"refer_type": "base"
}
],
"sound": "off",
"watermark_info": {
"enabled": true
},
"callback_url": "<string>",
"external_task_id": "<string>"
}
'import requests
url = "https://ai.cubeuaeai.com/kling/v1/videos/omni-video"
payload = {
"model_name": "kling-v3-omni",
"prompt": "A cat walking gracefully through a sunlit garden",
"mode": "pro",
"aspect_ratio": "16:9",
"duration": "5",
"multi_shot": False,
"shot_type": "customize",
"multi_prompt": [
{
"index": 123,
"prompt": "<string>",
"duration": "<string>"
}
],
"image_list": [{ "image_url": "<string>" }],
"element_list": [{ "element_id": 123 }],
"video_list": [
{
"video_url": "<string>",
"refer_type": "base"
}
],
"sound": "off",
"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({
model_name: 'kling-v3-omni',
prompt: 'A cat walking gracefully through a sunlit garden',
mode: 'pro',
aspect_ratio: '16:9',
duration: '5',
multi_shot: false,
shot_type: 'customize',
multi_prompt: [{index: 123, prompt: '<string>', duration: '<string>'}],
image_list: [{image_url: '<string>'}],
element_list: [{element_id: 123}],
video_list: [{video_url: '<string>', refer_type: 'base'}],
sound: 'off',
watermark_info: {enabled: true},
callback_url: '<string>',
external_task_id: '<string>'
})
};
fetch('https://ai.cubeuaeai.com/kling/v1/videos/omni-video', 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/omni-video",
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([
'model_name' => 'kling-v3-omni',
'prompt' => 'A cat walking gracefully through a sunlit garden',
'mode' => 'pro',
'aspect_ratio' => '16:9',
'duration' => '5',
'multi_shot' => false,
'shot_type' => 'customize',
'multi_prompt' => [
[
'index' => 123,
'prompt' => '<string>',
'duration' => '<string>'
]
],
'image_list' => [
[
'image_url' => '<string>'
]
],
'element_list' => [
[
'element_id' => 123
]
],
'video_list' => [
[
'video_url' => '<string>',
'refer_type' => 'base'
]
],
'sound' => 'off',
'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/omni-video"
payload := strings.NewReader("{\n \"model_name\": \"kling-v3-omni\",\n \"prompt\": \"A cat walking gracefully through a sunlit garden\",\n \"mode\": \"pro\",\n \"aspect_ratio\": \"16:9\",\n \"duration\": \"5\",\n \"multi_shot\": false,\n \"shot_type\": \"customize\",\n \"multi_prompt\": [\n {\n \"index\": 123,\n \"prompt\": \"<string>\",\n \"duration\": \"<string>\"\n }\n ],\n \"image_list\": [\n {\n \"image_url\": \"<string>\"\n }\n ],\n \"element_list\": [\n {\n \"element_id\": 123\n }\n ],\n \"video_list\": [\n {\n \"video_url\": \"<string>\",\n \"refer_type\": \"base\"\n }\n ],\n \"sound\": \"off\",\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/omni-video")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model_name\": \"kling-v3-omni\",\n \"prompt\": \"A cat walking gracefully through a sunlit garden\",\n \"mode\": \"pro\",\n \"aspect_ratio\": \"16:9\",\n \"duration\": \"5\",\n \"multi_shot\": false,\n \"shot_type\": \"customize\",\n \"multi_prompt\": [\n {\n \"index\": 123,\n \"prompt\": \"<string>\",\n \"duration\": \"<string>\"\n }\n ],\n \"image_list\": [\n {\n \"image_url\": \"<string>\"\n }\n ],\n \"element_list\": [\n {\n \"element_id\": 123\n }\n ],\n \"video_list\": [\n {\n \"video_url\": \"<string>\",\n \"refer_type\": \"base\"\n }\n ],\n \"sound\": \"off\",\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/omni-video")
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 \"model_name\": \"kling-v3-omni\",\n \"prompt\": \"A cat walking gracefully through a sunlit garden\",\n \"mode\": \"pro\",\n \"aspect_ratio\": \"16:9\",\n \"duration\": \"5\",\n \"multi_shot\": false,\n \"shot_type\": \"customize\",\n \"multi_prompt\": [\n {\n \"index\": 123,\n \"prompt\": \"<string>\",\n \"duration\": \"<string>\"\n }\n ],\n \"image_list\": [\n {\n \"image_url\": \"<string>\"\n }\n ],\n \"element_list\": [\n {\n \"element_id\": 123\n }\n ],\n \"video_list\": [\n {\n \"video_url\": \"<string>\",\n \"refer_type\": \"base\"\n }\n ],\n \"sound\": \"off\",\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-omni",
"status": "<string>",
"progress": 0,
"created_at": 1773130665
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Model name
kling-v3-omni "kling-v3-omni"
Text prompt. Supports positive and negative descriptions. Use <<<element_1>>>、<<<image_1>>>、<<<video_1>>> to reference elements/images/videos. Required when multi_shot is false.
2500"A cat walking gracefully through a sunlit garden"
Video generation mode. std: standard mode (better value). pro: professional mode (higher quality).
std, pro "pro"
Aspect ratio of the generated video (width:height). Required when no first-frame reference or video editing is used.
16:9, 9:16, 1:1 "16:9"
Video duration in seconds, 3–15.
3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 "5"
Whether to generate a multi-shot video. When true, the prompt parameter is ignored and multi_prompt must be used.
Storyboard mode. Required when multi_shot is true.
customize Storyboard shots (1–6). Required when multi_shot is true and shot_type is customize .
Show child attributes
Show child attributes
Reference image list. Supports first/last frame, scene, and style references. Format .jpg/.jpeg/.png, ≤10MB, minimum 300px, aspect ratio 1:2.5–2.5:1。
Show child attributes
Show child attributes
Reference element list, based on element IDs from the Kling element library.
Show child attributes
Show child attributes
Reference video list. MP4/MOV only, ≥3 seconds, 720px–2160px, 24–60fps, ≤200MB.
Show child attributes
Show child attributes
Whether to generate sound effects together with the video. Must be off when a reference video is provided.
on, off Watermark configuration
Show child attributes
Show child attributes
Callback URL for task status changes
Custom task ID. Must be unique within the same account.
Response
Task created successfully