Общая документация Public API · API-ключ можно создать в настройках аккаунта
POST /api/v1/operationsAuthorization: Bearer brth_...id и стартовый статус.{
"tool": "kling-3-0",
"input": {
"kling_generation_type": "reference",
"prompt": "Портрет человека в неоновом городе, мягкий свет, высокая детализация",
"shot_mode": "single",
"reference_image_urls": [
"https://cdn.example.com/reference-image-1.jpg",
"https://cdn.example.com/reference-image-2.jpg"
],
"duration": 5,
"resolution": "720p",
"audio": false,
"aspect_ratio_standard": "16:9"
}
}
Параметры передаются напрямую внутри объекта input. Дополнительный вложенный объект input не нужен.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
kling_generation_type | enum | Да | Варианты: reference (Видео по референсам), image (Видео из изображений), text (Видео из текста), transformation (Трансформация) |
prompt | string | Да | Можно ссылаться на загруженные референсы: напишите @image1 или @video1 либо введите @ и выберите файл из меню. |
shot_mode | enum | Да | Можно оставить один общий ролик, доверить планирование сцен или задать сцены вручную. Варианты: single (Один ролик), smart (Умное планирование), custom (Свои сцены) |
multi_prompt | object[] | Да | Массив объектов. Минимум элементов: 1. Максимум элементов: 6. Поля элемента: prompt string обязательное, duration number обязательное. |
reference_image_urls | string[] (url) | Да | Массив внешних URL изображений. Разрешены только http/https ссылки. Максимум файлов: 7. Допустимые расширения: .jpg, .jpeg, .png. |
image_frame_urls | string[] (url) | Да | Массив внешних URL изображений. Разрешены только http/https ссылки. Максимум файлов: 1. Допустимые расширения: .jpg, .jpeg, .png. |
transform_video_urls | string[] (url) | Да | Массив внешних URL видео. Разрешены только http/https ссылки. Максимум файлов: 1. Допустимые расширения: .mp4, .mov. |
use_transform_images | boolean | Нет | Включите, если нужно дополнить исходное видео изображениями стиля или персонажа. |
transform_image_urls | string[] (url) | Да | Массив внешних URL изображений. Разрешены только http/https ссылки. Максимум файлов: 4. Допустимые расширения: .jpg, .jpeg, .png. |
elements | object[] | Нет | Массив объектов. Используйте для отдельных персонажей или объектов, которые нужно сохранить узнаваемыми в ролике. Минимум элементов: 0. Максимум элементов: 3. Поля элемента: frontal_image_url string (url) обязательное, reference_image_urls string[] (url). |
duration | number | Да | Итоговая длительность ролика от 3 до 15 секунд. Цена считается за каждую секунду. |
resolution | enum | Да | Чем выше разрешение, тем выше детализация и стоимость. Варианты: 720p (720p), 1080p (1080p), 4k (4K) |
audio | boolean | Нет | Добавляет звук, сгенерированный вместе с видео. Влияет на стоимость. |
aspect_ratio_standard | enum | Да | Формат итогового видео. Варианты: 16:9 (16:9), 9:16 (9:16), 1:1 (1:1) |
aspect_ratio_image | enum | Да | Для обычного режима по первому кадру используется автоформат. Выбор доступен при своих сценах. Варианты: 16:9 (16:9), 9:16 (9:16), 1:1 (1:1) |
aspect_ratio_transform | enum | Да | При трансформации только видео используется автоформат. Выбор доступен при добавленных изображениях. Варианты: 16:9 (16:9), 9:16 (9:16), 1:1 (1:1) |
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "kling-3-0",
"input": {
"kling_generation_type": "reference",
"prompt": "Портрет человека в неоновом городе, мягкий свет, высокая детализация",
"shot_mode": "single",
"reference_image_urls": [
"https://cdn.example.com/reference-image-1.jpg",
"https://cdn.example.com/reference-image-2.jpg"
],
"duration": 5,
"resolution": "720p",
"audio": false,
"aspect_ratio_standard": "16:9"
}
}'
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-3-0",
"input": {
"kling_generation_type": "reference",
"prompt": "Портрет человека в неоновом городе, мягкий свет, высокая детализация",
"shot_mode": "single",
"reference_image_urls": [
"https://cdn.example.com/reference-image-1.jpg",
"https://cdn.example.com/reference-image-2.jpg"
],
"duration": 5,
"resolution": "720p",
"audio": false,
"aspect_ratio_standard": "16:9"
}
}),
})
const data = await response.json()
import requests
response = requests.post(
'https://bratuha.ru/api/v1/operations',
headers={
'Authorization': 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
json={
"tool": "kling-3-0",
"input": {
"kling_generation_type": "reference",
"prompt": "Портрет человека в неоновом городе, мягкий свет, высокая детализация",
"shot_mode": "single",
"reference_image_urls": [
"https://cdn.example.com/reference-image-1.jpg",
"https://cdn.example.com/reference-image-2.jpg"
],
"duration": 5,
"resolution": "720p",
"audio": false,
"aspect_ratio_standard": "16:9"
}
},
timeout=30,
)
print(response.status_code)
print(response.json())
{
"id": "op_uuid-123",
"status": "queued",
"tool": "kling-3-0",
"cost": 11,
"balance_after": 495,
"created_at": "2026-03-13T12:00:00Z"
}
{
"id": "op_uuid-123",
"status": "completed",
"tool": "kling-3-0",
"cost": 11,
"created_at": "2026-03-13T12:00:00Z",
"completed_at": "2026-03-13T12:00:24Z",
"result": {
"type": "file",
"files": [
{
"url": "https://storage.bratuha.ru/results/kling-3-0/result.zip",
"name": "result.zip"
}
]
},
"error_message": null
}
curl -H "Authorization: Bearer brth_ваш_ключ" \
https://bratuha.ru/api/v1/operations/op_uuid-123
Возможные типы результата зависят от конфигурации инструмента.
Ставка умножается на значение поля единица. Округление: ceil. Минимум: 3. Максимум: 16.
| Разрешение | Нативное аудио | Ставка |
|---|---|---|
| 720p | Нет | 11 ₽ |
| 720p | Да | 14 ₽ |
| 1080p | Нет | 14 ₽ |
| 1080p | Да | 18 ₽ |
| 4K | Нет | 50 ₽ |
| 4K | Да | 50 ₽ |
POST /api/v1/operations не идемпотентен: повторный запрос создаёт новую операцию.queued, затем проверяете статус по id.http/https ссылки без localhost, loopback и private IP.validation_error.HEIC/HEIF, которые поддерживаются при загрузке файлов в UI, к Public API по URL не относятся. Для API используйте JPG, JPEG, PNG или WebP.