Kling 3.0
Создавайте видео длительностью 3–15 секунд на уровне std или pro по тексту либо одному-двум кадрам, с многосценной раскадровкой и повторно используемыми элементами. Оплата посекундная.
- Асинхронная обработка: запрос создания возвращает ID задачи. Видео будет доступно после её успешного завершения.
- Три варианта ввода: только текст, первый кадр либо первый и последний кадры. Модель не принимает референсные изображения, видео или аудио.
resolutionзадаёт уровень:stdгенерирует в 720p,proпо умолчанию — в 1080p.- Многосценный режим: до пяти сцен с собственными промптами и длительностью по одному первому кадру. Сумма длительностей сцен должна равняться
duration. - Элементы: до трёх именованных объектов, которые один раз задаются через
elements. - Оплата за секунду видео по тарифу выбранного уровня. Задача, завершившаяся ошибкой, не оплачивается.
Открывает модель в API Explorer. Введите свой API-ключ BeatAPI, чтобы создать задачу. Это настоящий запрос: его стоимость спишется с вашего баланса.
Адрес API и авторизация
POST https://api.beatapi.io/v1/videos/tasks
Authorization
string
Обязательно
Передавайте API-ключ BeatAPI как Bearer <BEATAPI_API_KEY>. Создать ключ можно в панели управления. Храните ключи на сервере, а не в коде браузерного или мобильного приложения.
Передавайте тело запроса в JSON с заголовком Content-Type: application/json. Idempotency-Key необязателен. Для каждого логического запроса используйте уникальное значение длиной не более 255 символов и повторно используйте его только для отправки точно такого же тела. В течение 24 часов повтор с тем же ключом и телом возвращает первый ответ с заголовком Idempotent-Replayed: true. Тот же ключ с другим телом возвращает 409 idempotency_conflict. Ответы, отличные от 2xx, не сохраняются, поэтому повтор после 400 или 402 выполняется заново.
Как выполняется запрос
Создайте задачу
Отправьте перечисленные ниже параметры методом POST на указанный адрес. Ответ 201 означает, что задача принята, а её стоимость зарезервирована на балансе. Обработка идёт в фоновом режиме. Сохраните data.id.
Дождитесь завершения
Вызывайте GET /v1/tasks/{task_id}, выдерживая между вызовами data.poll_after_seconds (5 с для изображений, 8 с для видео), пока status не станет succeeded или failed. Можно также настроить вебхук для событий task.succeeded и task.failed. Сохраняйте опрос как резервный способ проверки: задача, остановленная по тайм-ауту обработки, не отправляет событие.
Сохраните результат
При succeeded скачайте файлы по всем ссылкам data.output.media[].url и сохраните нужные результаты у себя. BeatAPI не гарантирует срок доступности этих ссылок. При failed прочитайте data.error_code и data.error_message: зарезервированная сумма возвращена на баланс, а data.retryable показывает, может ли повтор того же запроса завершиться успешно.
Режимы ввода
Параметры запроса
model
string
Обязательно
Модель, которую нужно вызвать.
Значение: kling-v3
Если значение неверно
- Поле отсутствует:
"model" is required - На этот адрес API отправлена модель изображений:
"model" nano-banana-2 is served by POST /v1/images/tasks, not this endpoint
prompt
string
Обязательно
Что должно происходить в видео: объект, действие, движение камеры и стиль.
Длина: 1–5000 символов
- Длина измеряется в символах. Иероглиф CJK считается одним символом.
- Обязателен во всех режимах, включая многосценный, где у каждой сцены также есть свой промпт в
multi_prompt.
Если значение неверно
- Поле отсутствует:
"prompt" is required - Пустое значение или превышена допустимая длина:
"prompt" has an unsupported length
images
string[]
Необязательно
Первый кадр либо первый и последний кадры.
Число элементов: 1–2
Каждый элемент — общедоступная ссылка https://. Если файл находится на вашем устройстве, сначала загрузите его через POST /v1/files, затем передайте полученный data.url.
- Одна ссылка: видео начинается с этого изображения. Две ссылки:
images[0]задаёт первый кадр,images[1]— последний. - Многосценный режим (
multi_shots: true) принимает ровно одно изображение. - Полей для референсных изображений у модели нет. Изображения объекта передаются в
elements.
Если значение неверно
- Больше двух ссылок:
"images" accepts at most 2 items - Пустой массив:
"images" requires at least 1 item - Ссылка не начинается с https://:
"images[0]" must be a public HTTPS URL multi_shots: trueбез изображения или с двумя изображениями:Kling V3 multi-shot mode requires exactly one image
duration
integer
НеобязательноПо умолчанию: 5
Длительность видео в секундах, целое число. Именно эта длительность оплачивается.
По умолчанию: 5
Диапазон: 3–15
- Если параметр не указан, используется и оплачивается
5. - При
multi_shots: trueсумма значенийdurationсцен вmulti_promptдолжна точно равняться этому числу. Если общаяdurationне задана, сумма должна быть равна 5.
Если значение неверно
- Число вне диапазона, нецелое число либо строка вместо числа:
"duration" is outside its supported range - Сумма длительностей сцен не равна
duration:Kling V3 shot durations must sum to duration
aspect_ratio
string
НеобязательноПо умолчанию: 16:9
Соотношение ширины и высоты видео.
Допустимые значения: 16:9, 9:16, 1:1
По умолчанию: 16:9
- По умолчанию —
16:9.
Если значение неверно
- Значение отсутствует в списке допустимых:
"aspect_ratio" must be one of: [16:9 9:16 1:1]
resolution
string
НеобязательноПо умолчанию: pro
Уровень качества: std генерирует в 720p, pro — в 1080p. Секунда в режиме pro стоит дороже. Используются имена std и pro, а не размеры в пикселях.
Допустимые значения: std, pro
По умолчанию: pro
- Если параметр не указан, используется и оплачивается
pro. 4K,720pи1080pне принимаются: передайтеstdилиpro.
Если значение неверно
- Недопустимое значение, например
720pили4K:"resolution" must be one of: [std pro]
sound
boolean
Необязательно
Нужно ли генерировать звуковую дорожку.
- Если параметр не указан, звук зависит от
multi_shots: включён для многосценного запроса и выключен в остальных случаях. Передайтеtrueилиfalse, чтобы выбрать явно.
Если значение неверно
- Значение не равно true или false:
"sound" must be a boolean
multi_shots
boolean
НеобязательноПо умолчанию: false
Включает режим раскадровки: видео состоит из сцен, перечисленных в multi_prompt. По умолчанию — false.
По умолчанию: false
- Требуется ровно одно изображение в
imagesиmulti_promptс суммой длительностей сцен, равнойduration. Безmulti_shots: trueполеmulti_promptотклоняется. - Проверки выполняются по порядку: одно изображение, наличие
multi_prompt, затем длительности.
Если значение неверно
- Значение не равно true или false:
"multi_shots" must be a boolean - Нет изображения или передано больше одного:
Kling V3 multi-shot mode requires exactly one image - Отсутствует
multi_prompt:Kling V3 multi-shot mode requires multi_prompt - Сумма длительностей сцен не равна
duration:Kling V3 shot durations must sum to duration
multi_prompt
object[]
Необязательно
Сцены многосценного видео по порядку: от одного до пяти объектов с собственными промптами и длительностью.
Число элементов: 1–5
- Каждая сцена — объект с двумя обязательными полями. Другие поля не принимаются:
multi_prompt[].prompt(string, обязательно): что происходит в этой сцене, от 1 до 500 символов.multi_prompt[].duration(integer, обязательно): длительность сцены в целых секундах, от 1 до 12.- Сумма длительностей сцен должна равняться
durationзапроса, либо 5, еслиdurationне задана. Общая длительность — не более 15 секунд. - Допускается только при
multi_shots: true.
Если значение неверно
- Передано без
multi_shots: true:"multi_prompt" requires multi_shots=true - Больше пяти сцен:
"multi_prompt" accepts at most 5 items - Пустой массив:
"multi_prompt" requires at least 1 item - У сцены нет
prompt:"prompt" is required in "multi_prompt[0]" - У сцены нет
duration:"duration" is required in "multi_prompt[0]" - Промпт сцены пустой или длиннее 500 символов:
"multi_prompt[0].prompt" has an unsupported length - Длительность сцены вне диапазона 1–12 или не является целым числом:
"multi_prompt[0].duration" is outside its supported range - Поле, отличное от
promptиduration:field "name" is not supported in "multi_prompt[0]" - Сумма длительностей сцен не равна
duration:Kling V3 shot durations must sum to duration
elements
object[]
Необязательно
До трёх именованных объектов — персонажей, товаров или предметов. Каждый один раз задаётся изображениями.
Число элементов: ≤ 3
- Массив из не более трёх объектов. Каждый объект принимает только следующие поля:
elements[].name(string, обязательно): имя элемента, не менее 1 символа.elements[].description(string, необязательно): описание элемента. Если не задано, в качестве описания используетсяname.elements[].element_input_urls(массив строк, обязательно): 1–4 общедоступные HTTPS-ссылки с изображениями элемента.elements[].element_input_audio_urls(массив строк, необязательно): ровно одна общедоступная HTTPS-ссылка на аудио элемента.elements[].start_timeиelements[].end_time(целые числа, необязательно): время в миллисекундах, каждое значение от 0 до 30000. Передайте оба поля либо ни одного.end_timeдолжно быть большеstart_time, а разностьend_time - start_time— от 3000 до 8000 (3–8 секунд).- Лимиты ссылок применяются отдельно к каждому элементу: у каждого может быть до четырёх изображений и одна аудиоссылка.
Если значение неверно
- Больше трёх элементов:
"elements" accepts at most 3 items - Элемент не является объектом:
"elements[0]" must be an object - У элемента нет
name:"name" is required in "elements[0]" - У элемента нет
element_input_urls:"element_input_urls" is required in "elements[0]" - Пустое
name:"elements[0].name" has an unsupported length - Больше четырёх ссылок:
"elements[0].element_input_urls" accepts at most 4 items - Пустой массив
element_input_urls:"elements[0].element_input_urls" requires at least 1 item - Ссылка не начинается с https://:
"elements[0].element_input_urls[1]" must be a public HTTPS URL - Больше одной аудиоссылки:
"elements[0].element_input_audio_urls" accepts at most 1 items start_timeилиend_timeвне диапазона 0–30000 либо не является целым числом:"elements[0].start_time" is outside its supported range- Поле, которое элемент не принимает:
field "color" is not supported in "elements[0]" - Передано только одно из
start_timeиend_time,end_timeне большеstart_timeлибо фрагмент короче 3 с или длиннее 8 с:Kling V3 element segment must provide a 3-8 second start_time/end_time range
Ограничения входных материалов
До создания задачи шлюз проверяет каждый входной материал. Если ограничение нарушено, возвращается 400 bad_request с указанием материала. Средства не списываются.
- Шлюз проверяет только общедоступность HTTPS-ссылок на изображения, материалы элементов и аудио. До создания задачи не измеряются размер файла, формат или размеры изображения. Поэтому неподходящий для модели материал вызывает ошибку после отправки. Сообщение укажет, что изменить, а вся зарезервированная сумма вернётся.
- Файл находится на вашем устройстве? Загрузите его через
POST /v1/filesи передайте полученныйdata.url.
Правила многосценного режима
Проверки выполняются при создании задачи в указанном порядке. Нарушающий правило запрос отклоняется с 400 bad_request без списания средств.
- Многосценный режим только по тексту недоступен: такое видео всегда начинается с одного изображения.
- Многосценный запрос оплачивается за
durationсекунд — сумму длительностей его сцен.
Параметры, которые модель не принимает
Эти параметры не игнорируются, а отклоняются до списания средств:
reference_images,reference_videos,reference_audios,generate_audio,seed,quality,watermark,task_type,output_format→field "reference_images" is not supported by model kling-v3(с именем переданного поля).- Любое другое неизвестное поле →
unknown field: <name>.
Примеры запросов
Видео по тексту
Ролик со звуком длительностью 5 секунд на уровне pro (1080p).
Первый кадр
Видео начинается с переданного изображения.
Первый и последний кадры
Видео переходит от первого изображения ко второму на более дешёвом уровне std (720p).
Многосценный режим
Две сцены по 3 секунды из одного первого кадра. Сумма длительностей (3 + 3) равна duration (6).
Повторно используемый элемент
Один именованный элемент задаётся двумя изображениями. Его имя — product; описание необязательно.
Ответы
Создание задачи (201)
Объект задачи. Поле output равно null, пока задача не завершится успешно. Поля с пометкой «во время выполнения» исчезают после завершения задачи.
Успешно завершённая задача
GET /v1/tasks/{task_id} возвращает HTTP 200 со status: "succeeded" и результатом в data.output.
Поля результата
Задача, завершившаяся ошибкой
Если задача завершилась ошибкой, GET /v1/tasks/{task_id} всё равно возвращает HTTP 200: сведения об ошибке находятся в теле ответа. Зарезервированная сумма возвращается полностью, поэтому списания нет.
Полный пример
Создайте задачу, дождитесь её завершения с интервалом опроса, указанным сервером, и выведите ссылки на результаты. Задайте BEATAPI_API_KEY в переменной окружения и установите requests.
Оплата
soundне влияет на цену: она зависит только отdurationиresolution. Тарифы одинаковы со звуком и без него.- Цена указана за секунду видео на выбранном уровне. В таблице ниже приведены 8-секундные ролики: разделите цену на 8, чтобы получить тариф — примерно 0.13 для
pro. - Число секунд задаётся
duration, либо равно 5, если параметр не указан. Для многосценного запроса это сумма длительностей сцен, равнаяduration. Значение указано вusage.billable_duration_secondsзадачи. - Цена резервируется при создании задачи и окончательно списывается, когда видео готово. Если задача завершилась ошибкой, в том числе из-за модерации после отправки, средства возвращаются полностью.
Частые ошибки
Краткий справочник HTTP-ошибок
Ошибки до создания задачи возвращаются с HTTP-статусом, отличным от 2xx, без списания средств. Обрабатывайте error.code или error.retryable; причина указана в message. Полный список и правила повторов приведены в разделе ошибок.
Аутентификация
Передавайте API-ключ в виде Authorization: Bearer <BEATAPI_API_KEY>.
Заголовки
Передавайте тело запроса в JSON с заголовком Content-Type: application/json. Idempotency-Key необязателен. Для каждого логического запроса используйте уникальное значение длиной не более 255 символов и повторно используйте его только для отправки точно такого же тела. В течение 24 часов повтор с тем же ключом и телом возвращает первый ответ с заголовком Idempotent-Replayed: true. Тот же ключ с другим телом возвращает 409 idempotency_conflict. Ответы, отличные от 2xx, не сохраняются, поэтому повтор после 400 или 402 выполняется заново.
Запрос
Модель, которую нужно вызвать.
Значение: kling-v3
Если значение неверно
- Поле отсутствует:
"model" is required - На этот адрес API отправлена модель изображений:
"model" nano-banana-2 is served by POST /v1/images/tasks, not this endpoint
Что должно происходить в видео: объект, действие, движение камеры и стиль.
Длина: 1–5000 символов
- Длина измеряется в символах. Иероглиф CJK считается одним символом.
- Обязателен во всех режимах, включая многосценный, где у каждой сцены также есть свой промпт в
multi_prompt.
Если значение неверно
- Поле отсутствует:
"prompt" is required - Пустое значение или превышена допустимая длина:
"prompt" has an unsupported length
Соотношение ширины и высоты видео.
Допустимые значения: 16:9, 9:16, 1:1
По умолчанию: 16:9
- По умолчанию —
16:9.
Если значение неверно
- Значение отсутствует в списке допустимых:
"aspect_ratio" must be one of: [16:9 9:16 1:1]
Длительность видео в секундах, целое число. Именно эта длительность оплачивается.
По умолчанию: 5
Диапазон: 3–15
- Если параметр не указан, используется и оплачивается
5. - При
multi_shots: trueсумма значенийdurationсцен вmulti_promptдолжна точно равняться этому числу. Если общаяdurationне задана, сумма должна быть равна 5.
Если значение неверно
- Число вне диапазона, нецелое число либо строка вместо числа:
"duration" is outside its supported range - Сумма длительностей сцен не равна
duration:Kling V3 shot durations must sum to duration
До трёх именованных объектов — персонажей, товаров или предметов. Каждый один раз задаётся изображениями.
Число элементов: ≤ 3
- Массив из не более трёх объектов. Каждый объект принимает только следующие поля:
elements[].name(string, обязательно): имя элемента, не менее 1 символа.elements[].description(string, необязательно): описание элемента. Если не задано, в качестве описания используетсяname.elements[].element_input_urls(массив строк, обязательно): 1–4 общедоступные HTTPS-ссылки с изображениями элемента.elements[].element_input_audio_urls(массив строк, необязательно): ровно одна общедоступная HTTPS-ссылка на аудио элемента.elements[].start_timeиelements[].end_time(целые числа, необязательно): время в миллисекундах, каждое значение от 0 до 30000. Передайте оба поля либо ни одного.end_timeдолжно быть большеstart_time, а разностьend_time - start_time— от 3000 до 8000 (3–8 секунд).- Лимиты ссылок применяются отдельно к каждому элементу: у каждого может быть до четырёх изображений и одна аудиоссылка.
Если значение неверно
- Больше трёх элементов:
"elements" accepts at most 3 items - Элемент не является объектом:
"elements[0]" must be an object - У элемента нет
name:"name" is required in "elements[0]" - У элемента нет
element_input_urls:"element_input_urls" is required in "elements[0]" - Пустое
name:"elements[0].name" has an unsupported length - Больше четырёх ссылок:
"elements[0].element_input_urls" accepts at most 4 items - Пустой массив
element_input_urls:"elements[0].element_input_urls" requires at least 1 item - Ссылка не начинается с https://:
"elements[0].element_input_urls[1]" must be a public HTTPS URL - Больше одной аудиоссылки:
"elements[0].element_input_audio_urls" accepts at most 1 items start_timeилиend_timeвне диапазона 0–30000 либо не является целым числом:"elements[0].start_time" is outside its supported range- Поле, которое элемент не принимает:
field "color" is not supported in "elements[0]" - Передано только одно из
start_timeиend_time,end_timeне большеstart_timeлибо фрагмент короче 3 с или длиннее 8 с:Kling V3 element segment must provide a 3-8 second start_time/end_time range
Первый кадр либо первый и последний кадры.
Число элементов: 1–2
Каждый элемент — общедоступная ссылка https://. Если файл находится на вашем устройстве, сначала загрузите его через POST /v1/files, затем передайте полученный data.url.
- Одна ссылка: видео начинается с этого изображения. Две ссылки:
images[0]задаёт первый кадр,images[1]— последний. - Многосценный режим (
multi_shots: true) принимает ровно одно изображение. - Полей для референсных изображений у модели нет. Изображения объекта передаются в
elements.
Если значение неверно
- Больше двух ссылок:
"images" accepts at most 2 items - Пустой массив:
"images" requires at least 1 item - Ссылка не начинается с https://:
"images[0]" must be a public HTTPS URL multi_shots: trueбез изображения или с двумя изображениями:Kling V3 multi-shot mode requires exactly one image
Сцены многосценного видео по порядку: от одного до пяти объектов с собственными промптами и длительностью.
Число элементов: 1–5
- Каждая сцена — объект с двумя обязательными полями. Другие поля не принимаются:
multi_prompt[].prompt(string, обязательно): что происходит в этой сцене, от 1 до 500 символов.multi_prompt[].duration(integer, обязательно): длительность сцены в целых секундах, от 1 до 12.- Сумма длительностей сцен должна равняться
durationзапроса, либо 5, еслиdurationне задана. Общая длительность — не более 15 секунд. - Допускается только при
multi_shots: true.
Если значение неверно
- Передано без
multi_shots: true:"multi_prompt" requires multi_shots=true - Больше пяти сцен:
"multi_prompt" accepts at most 5 items - Пустой массив:
"multi_prompt" requires at least 1 item - У сцены нет
prompt:"prompt" is required in "multi_prompt[0]" - У сцены нет
duration:"duration" is required in "multi_prompt[0]" - Промпт сцены пустой или длиннее 500 символов:
"multi_prompt[0].prompt" has an unsupported length - Длительность сцены вне диапазона 1–12 или не является целым числом:
"multi_prompt[0].duration" is outside its supported range - Поле, отличное от
promptиduration:field "name" is not supported in "multi_prompt[0]" - Сумма длительностей сцен не равна
duration:Kling V3 shot durations must sum to duration
Включает режим раскадровки: видео состоит из сцен, перечисленных в multi_prompt. По умолчанию — false.
По умолчанию: false
- Требуется ровно одно изображение в
imagesиmulti_promptс суммой длительностей сцен, равнойduration. Безmulti_shots: trueполеmulti_promptотклоняется. - Проверки выполняются по порядку: одно изображение, наличие
multi_prompt, затем длительности.
Если значение неверно
- Значение не равно true или false:
"multi_shots" must be a boolean - Нет изображения или передано больше одного:
Kling V3 multi-shot mode requires exactly one image - Отсутствует
multi_prompt:Kling V3 multi-shot mode requires multi_prompt - Сумма длительностей сцен не равна
duration:Kling V3 shot durations must sum to duration
Уровень качества: std генерирует в 720p, pro — в 1080p. Секунда в режиме pro стоит дороже. Используются имена std и pro, а не размеры в пикселях.
Допустимые значения: std, pro
По умолчанию: pro
- Если параметр не указан, используется и оплачивается
pro. 4K,720pи1080pне принимаются: передайтеstdилиpro.
Если значение неверно
- Недопустимое значение, например
720pили4K:"resolution" must be one of: [std pro]
Нужно ли генерировать звуковую дорожку.
- Если параметр не указан, звук зависит от
multi_shots: включён для многосценного запроса и выключен в остальных случаях. Передайтеtrueилиfalse, чтобы выбрать явно.
Если значение неверно
- Значение не равно true или false:
"sound" must be a boolean
Ответ
Объект задачи. Поле output равно null, пока задача не завершится успешно. Поля с пометкой «во время выполнения» исчезают после завершения задачи.

