Kling V2.1 Master Text-to-Video
curl --request POST \
--url https://api.myrouter.ai/v3/async/kling-v2.1-t2v-master \
--header 'Authorization: <authorization>' \
--header 'Content-Type: <content-type>' \
--data '
{
"prompt": "<string>",
"duration": "<string>",
"aspect_ratio": "<string>",
"guidance_scale": 123,
"negative_prompt": "<string>"
}
'import requests
url = "https://api.myrouter.ai/v3/async/kling-v2.1-t2v-master"
payload = {
"prompt": "<string>",
"duration": "<string>",
"aspect_ratio": "<string>",
"guidance_scale": 123,
"negative_prompt": "<string>"
}
headers = {
"Content-Type": "<content-type>",
"Authorization": "<authorization>"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': '<content-type>', Authorization: '<authorization>'},
body: JSON.stringify({
prompt: '<string>',
duration: '<string>',
aspect_ratio: '<string>',
guidance_scale: 123,
negative_prompt: '<string>'
})
};
fetch('https://api.myrouter.ai/v3/async/kling-v2.1-t2v-master', 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://api.myrouter.ai/v3/async/kling-v2.1-t2v-master",
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' => '<string>',
'duration' => '<string>',
'aspect_ratio' => '<string>',
'guidance_scale' => 123,
'negative_prompt' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"Content-Type: <content-type>"
],
]);
$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.myrouter.ai/v3/async/kling-v2.1-t2v-master"
payload := strings.NewReader("{\n \"prompt\": \"<string>\",\n \"duration\": \"<string>\",\n \"aspect_ratio\": \"<string>\",\n \"guidance_scale\": 123,\n \"negative_prompt\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "<content-type>")
req.Header.Add("Authorization", "<authorization>")
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.myrouter.ai/v3/async/kling-v2.1-t2v-master")
.header("Content-Type", "<content-type>")
.header("Authorization", "<authorization>")
.body("{\n \"prompt\": \"<string>\",\n \"duration\": \"<string>\",\n \"aspect_ratio\": \"<string>\",\n \"guidance_scale\": 123,\n \"negative_prompt\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.myrouter.ai/v3/async/kling-v2.1-t2v-master")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = '<content-type>'
request["Authorization"] = '<authorization>'
request.body = "{\n \"prompt\": \"<string>\",\n \"duration\": \"<string>\",\n \"aspect_ratio\": \"<string>\",\n \"guidance_scale\": 123,\n \"negative_prompt\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"task_id": "<string>"
}Video
Kling V2.1 Master Text-to-Video
POST
/
v3
/
async
/
kling-v2.1-t2v-master
Kling V2.1 Master Text-to-Video
curl --request POST \
--url https://api.myrouter.ai/v3/async/kling-v2.1-t2v-master \
--header 'Authorization: <authorization>' \
--header 'Content-Type: <content-type>' \
--data '
{
"prompt": "<string>",
"duration": "<string>",
"aspect_ratio": "<string>",
"guidance_scale": 123,
"negative_prompt": "<string>"
}
'import requests
url = "https://api.myrouter.ai/v3/async/kling-v2.1-t2v-master"
payload = {
"prompt": "<string>",
"duration": "<string>",
"aspect_ratio": "<string>",
"guidance_scale": 123,
"negative_prompt": "<string>"
}
headers = {
"Content-Type": "<content-type>",
"Authorization": "<authorization>"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': '<content-type>', Authorization: '<authorization>'},
body: JSON.stringify({
prompt: '<string>',
duration: '<string>',
aspect_ratio: '<string>',
guidance_scale: 123,
negative_prompt: '<string>'
})
};
fetch('https://api.myrouter.ai/v3/async/kling-v2.1-t2v-master', 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://api.myrouter.ai/v3/async/kling-v2.1-t2v-master",
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' => '<string>',
'duration' => '<string>',
'aspect_ratio' => '<string>',
'guidance_scale' => 123,
'negative_prompt' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"Content-Type: <content-type>"
],
]);
$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.myrouter.ai/v3/async/kling-v2.1-t2v-master"
payload := strings.NewReader("{\n \"prompt\": \"<string>\",\n \"duration\": \"<string>\",\n \"aspect_ratio\": \"<string>\",\n \"guidance_scale\": 123,\n \"negative_prompt\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "<content-type>")
req.Header.Add("Authorization", "<authorization>")
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.myrouter.ai/v3/async/kling-v2.1-t2v-master")
.header("Content-Type", "<content-type>")
.header("Authorization", "<authorization>")
.body("{\n \"prompt\": \"<string>\",\n \"duration\": \"<string>\",\n \"aspect_ratio\": \"<string>\",\n \"guidance_scale\": 123,\n \"negative_prompt\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.myrouter.ai/v3/async/kling-v2.1-t2v-master")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = '<content-type>'
request["Authorization"] = '<authorization>'
request.body = "{\n \"prompt\": \"<string>\",\n \"duration\": \"<string>\",\n \"aspect_ratio\": \"<string>\",\n \"guidance_scale\": 123,\n \"negative_prompt\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"task_id": "<string>"
}Kling V2.1 Text-to-Video is the latest generation text-to-video model developed by the Kuaishou AI team, capable of generating high-quality, cinematic short videos from text input. Compared to Kling 2.0, version 2.1 achieves significant breakthroughs in motion smoothness, visual consistency, and prompt comprehension.
This is an async API that only returns the task_id of the async task. Use the task_id to call the Get Async Task Result API to retrieve the generated result.
Request Headers
string
required
Enum:
application/jsonstring
required
Bearer authentication format: Bearer {{API Key}}.
Request Body
string
required
Positive text prompt to guide generation. Must not exceed 2500 characters.
string
default:"5"
Duration of the generated video (in seconds).Possible values:
5, 10string
default:"16:9"
Aspect ratio of the output video.Possible values:
16:9, 9:16, 1:1number
Guidance scale parameter that controls how closely the generated content adheres to the prompt.Range: 0 to 1
Step: 0.1
Step: 0.1
string
Negative prompt to specify content to avoid in the generation. Must not exceed 2500 characters.
Response
string
required
The task_id of the async task. Use the task_id to call the Get Async Task Result API to retrieve the generated result.