Генерирует короткие видео по текстовому описанию или оживляет загруженную картинку, добавляя движение и (по желанию) звук. Стоимость от 50 до 200 рублей за видео - зависит от длительности (5/10 сек) и включённого звука.
Общая документация Public API · API-ключ можно создать в настройках аккаунта
Kling 2.6 создаёт короткие видео двумя способами:
Это удобно, когда нужно быстро получить короткий ролик для соцсетей, рекламы, превью продукта или концепта сцены. В режиме по тексту вы описываете кадр и движение камеры. В режиме по изображению передаёте готовую картинку и получаете анимированную версию.
Каждый вызов создаёт асинхронную операцию. Сразу после запроса API возвращает id и стартовый статус, а готовый результат нужно забирать отдельной проверкой статуса.
POST /api/v1/operationsAuthorization: Bearer brth_...id, стартовый статус и стоимость запуска.Kling 2.6 поддерживает два режима:
kling-2.6/text-to-video - генерация видео из текста;kling-2.6/image-to-video - генерация видео по изображению.Базовая форма запроса:
{
"tool": "kling-2-6",
"input": {
"...": "..."
}
}
tool - slug нейросети. Для этой модели всегда используйте "kling-2-6".input - параметры конкретного запуска.input зависит от выбранного model.| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
model | enum | Да | Режим запуска. Варианты: kling-2.6/text-to-video - видео из текста, kling-2.6/image-to-video - видео из изображения. |
prompt | string | Да | Текстовое описание сцены, движения камеры и желаемого результата. Если включён звук, сюда можно добавить пожелания по речи, шумам или атмосфере. Максимум 2500 символов. |
image_urls | string[] (url) | Да, для kling-2.6/image-to-video | Массив с одним внешним URL изображения. Поле нужно только для режима генерации по изображению. Разрешены только http/https ссылки. Максимум 1 файл. Допустимые расширения: .jpg, .jpeg, .png, .webp. |
sound | boolean | Нет | Если true, модель пытается сгенерировать видео со звуком. Это влияет на итоговую цену. |
aspect_ratio | enum | Да, для kling-2.6/text-to-video | Соотношение сторон для режима генерации из текста. Варианты: 1:1, 16:9, 9:16. Для режима по изображению это поле не нужно. |
duration | enum | Да | Длительность ролика. Варианты: 5, 10. Влияет на цену. |
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "kling-2-6",
"input": {
"model": "kling-2.6/text-to-video",
"prompt": "Ночной город после дождя, камера медленно движется вперёд по пустой улице, в лужах отражаются неоновые вывески, лёгкий туман и реалистичное освещение",
"aspect_ratio": "16:9",
"duration": "5",
"sound": true
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'kling-2-6',
input: {
model: 'kling-2.6/text-to-video',
prompt:
'Ночной город после дождя, камера медленно движется вперёд по пустой улице, в лужах отражаются неоновые вывески, лёгкий туман и реалистичное освещение',
aspect_ratio: '16:9',
duration: '5',
sound: true,
},
}),
})
const data = await response.json()
console.log(data)
import requests
response = requests.post(
"https://bratuha.ru/api/v1/operations",
headers={
"Authorization": "Bearer brth_ваш_ключ",
"Content-Type": "application/json",
},
json={
"tool": "kling-2-6",
"input": {
"model": "kling-2.6/text-to-video",
"prompt": "Ночной город после дождя, камера медленно движется вперёд по пустой улице, в лужах отражаются неоновые вывески, лёгкий туман и реалистичное освещение",
"aspect_ratio": "16:9",
"duration": "5",
"sound": True,
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "kling-2-6",
"input": {
"model": "kling-2.6/image-to-video",
"prompt": "Девушка стоит у окна, камера плавно приближается, волосы и занавеска слегка движутся от ветра, мягкий кинематографичный свет",
"image_urls": [
"https://cdn.example.com/source-image-1.jpg"
],
"duration": "10",
"sound": false
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'kling-2-6',
input: {
model: 'kling-2.6/image-to-video',
prompt:
'Девушка стоит у окна, камера плавно приближается, волосы и занавеска слегка движутся от ветра, мягкий кинематографичный свет',
image_urls: ['https://cdn.example.com/source-image-1.jpg'],
duration: '10',
sound: false,
},
}),
})
const data = await response.json()
console.log(data)
import requests
response = requests.post(
"https://bratuha.ru/api/v1/operations",
headers={
"Authorization": "Bearer brth_ваш_ключ",
"Content-Type": "application/json",
},
json={
"tool": "kling-2-6",
"input": {
"model": "kling-2.6/image-to-video",
"prompt": "Девушка стоит у окна, камера плавно приближается, волосы и занавеска слегка движутся от ветра, мягкий кинематографичный свет",
"image_urls": ["https://cdn.example.com/source-image-1.jpg"],
"duration": "10",
"sound": False,
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
{
"id": "op_uuid-123",
"status": "queued",
"tool": "kling-2-6",
"cost": 100,
"balance_after": 495,
"created_at": "2026-03-27T12:00:00Z"
}
{
"id": "op_uuid-123",
"status": "completed",
"tool": "kling-2-6",
"cost": 100,
"created_at": "2026-03-27T12:00:00Z",
"completed_at": "2026-03-27T12:00:41Z",
"result": {
"type": "video",
"urls": [
"https://storage.bratuha.ru/results/kling-2-6/result.mp4"
]
},
"error_message": null
}
После создания операции сохраните id и проверяйте её отдельным запросом:
GET /api/v1/operations/{id}id возвращается сразу после POST /api/v1/operations.curl -H "Authorization: Bearer brth_ваш_ключ" \
https://bratuha.ru/api/v1/operations/op_uuid-123
const response = await fetch(
'https://bratuha.ru/api/v1/operations/op_uuid-123',
{
headers: {
Authorization: 'Bearer brth_ваш_ключ',
},
},
)
const data = await response.json()
console.log(data)
После успешного завершения Kling 2.6 возвращает результат в поле result:
{
"type": "video",
"urls": [
"https://storage.bratuha.ru/results/kling-2-6/result.mp4"
]
}
Что важно знать:
type всегда "video";urls - массив ссылок на готовые mp4-файлы;Базовая ставка начинается от 50 ₽.
Итоговая цена зависит от двух параметров:
duration;sound.Текущая матрица цен:
| Длительность | Со звуком | Цена |
|---|---|---|
5 | false | 50 ₽ |
10 | false | 100 ₽ |
5 | true | 100 ₽ |
10 | true | 200 ₽ |
Практически это означает:
text-to-video или image-to-video цену не меняет, если duration и sound одинаковые.POST /api/v1/operations не идемпотентен: каждый повторный запрос создаёт новую операцию.queued, затем отдельно проверяете статус по id.image_urls подходят только внешние http/https URL. localhost, private IP и внутренние ссылки не принимаются.image_urls, для Kling 2.6 сюда нужно передавать только одно изображение.image_urls используйте только файлы .jpg, .jpeg, .png, .webp. Форматы HEIC/HEIF, которые могут встречаться в UI-загрузке, для внешних URL здесь не документируются.kling-2.6/text-to-video передавайте aspect_ratio и не передавайте image_urls.kling-2.6/image-to-video передавайте image_urls и не добавляйте aspect_ratio.GET /api/v1/operations/{id} слишком часто. Практически безопасно проверять статус примерно раз в секунду.