Общая документация Public API · API-ключ можно создать в настройках аккаунта
Runway 4 Turbo делает короткие видео на 5 или 10 секунд: оживляет загруженную картинку или снимает сцену по текстовому описанию. Модель быстрая и предсказуемая, хорошо держит движение камеры и физику: брызги, дым, ткань, листья, свет. Подходит для рекламных роликов, анимации постеров и иллюстраций, коротких сцен для сторис.
Через API доступны два сценария:
imageUrl и описываете движение;prompt в выбранном формате кадра.Продление готового видео доступно только в форме на сайте. Каждый вызов создаёт асинхронную операцию: вы получаете id, а результат забираете отдельным запросом статуса.
POST /api/v1/operationsAuthorization: Bearer brth_...id и стартовый статус queued.Сценарии, которые поддерживает модель:
runway_generation_type: "image" - видео из изображения, нужен imageUrl.runway_generation_type: "text" - видео из текста, нужен aspectRatio.{
"tool": "runway-4-turbo",
"input": {
"...": "..."
}
}
tool - slug нейросети, здесь всегда "runway-4-turbo".input - параметры конкретного запуска.input, без дополнительного вложенного объекта input.| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
runway_generation_type | enum | Нет | Режим: image (видео из изображения, по умолчанию) или text (видео из текста). |
prompt | string | Да | Что должно происходить в кадре, от 2 до 1800 символов. Опишите движение объектов, движение камеры и атмосферу. Для режима image описывайте только то, что должно измениться относительно исходного кадра. |
imageUrl | string (url) | Да, в режиме image | Внешний URL исходного изображения. Формат кадра берётся из него. Только http/https, форматы .jpg, .jpeg, .png, .webp. |
aspectRatio | enum | Да, в режиме text | Формат кадра для видео из текста: 16:9, 4:3, 1:1, 3:4, 9:16. По умолчанию 1:1. В режиме image не учитывается. |
duration | enum | Нет | Длительность: "5" (по умолчанию) или "10" секунд. Передаётся строкой. 10 секунд доступны только в 720p. |
quality | enum | Нет | Разрешение: 720p (по умолчанию) или 1080p. |
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "runway-4-turbo",
"input": {
"runway_generation_type": "image",
"prompt": "Спортивный автомобиль проносится по мокрой дороге, брызги из-под колёс, туман расступается, камера следует за машиной",
"imageUrl": "https://cdn.example.com/source-image-1.jpg",
"duration": "5",
"quality": "1080p"
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'runway-4-turbo',
input: {
runway_generation_type: 'image',
prompt:
'Спортивный автомобиль проносится по мокрой дороге, брызги из-под колёс, туман расступается, камера следует за машиной',
imageUrl: 'https://cdn.example.com/source-image-1.jpg',
duration: '5',
quality: '1080p',
},
}),
})
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': 'runway-4-turbo',
'input': {
'runway_generation_type': 'image',
'prompt': 'Спортивный автомобиль проносится по мокрой дороге, брызги из-под колёс, туман расступается, камера следует за машиной',
'imageUrl': 'https://cdn.example.com/source-image-1.jpg',
'duration': '5',
'quality': '1080p',
},
},
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": "runway-4-turbo",
"input": {
"runway_generation_type": "text",
"prompt": "Токийская улица ночью под дождём, неоновые вывески, люди с зонтами, камера медленно едет вперёд, кинематографично",
"aspectRatio": "16:9",
"duration": "10",
"quality": "720p"
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'runway-4-turbo',
input: {
runway_generation_type: 'text',
prompt:
'Токийская улица ночью под дождём, неоновые вывески, люди с зонтами, камера медленно едет вперёд, кинематографично',
aspectRatio: '16:9',
duration: '10',
quality: '720p',
},
}),
})
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': 'runway-4-turbo',
'input': {
'runway_generation_type': 'text',
'prompt': 'Токийская улица ночью под дождём, неоновые вывески, люди с зонтами, камера медленно едет вперёд, кинематографично',
'aspectRatio': '16:9',
'duration': '10',
'quality': '720p',
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
{
"id": "op_uuid-123",
"status": "queued",
"tool": "runway-4-turbo",
"cost": 15,
"balance_after": 495,
"created_at": "2026-09-17T12:00:00Z"
}
{
"id": "op_uuid-123",
"status": "completed",
"tool": "runway-4-turbo",
"cost": 15,
"created_at": "2026-09-17T12:00:00Z",
"completed_at": "2026-09-17T12:01:30Z",
"result": {
"type": "video",
"urls": [
"https://storage.bratuha.ru/results/runway-4-turbo/result.mp4"
]
},
"error_message": null
}
{
"id": "op_uuid-123",
"status": "failed",
"tool": "runway-4-turbo",
"cost": 15,
"created_at": "2026-09-17T12:00:00Z",
"completed_at": "2026-09-17T12:00:20Z",
"result": null,
"error_message": "Загруженное изображение не соответствует требованиям, пожалуйста, замените его и попробуйте снова."
}
После создания операции сохраните id и проверяйте её статус запросом:
GET /api/v1/operations/{id}
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()
Пока ролик создаётся, status будет queued или processing. Опрашивайте статус раз в 5-10 секунд.
После успешного завершения result содержит одно видео:
{
"type": "video",
"urls": [
"https://storage.bratuha.ru/results/runway-4-turbo/result.mp4"
]
}
type всегда равен "video".urls содержит одну ссылку на MP4.Цена зависит от длительности и разрешения и не зависит от режима:
| Разрешение | 5 секунд | 10 секунд |
|---|---|---|
720p | 15 ₽ | 30 ₽ |
1080p | 30 ₽ | недоступно |
cost ответа.POST /api/v1/operations не идемпотентен: каждый повторный запрос создаёт новую операцию и списывает деньги.queued проверяйте статус по id.imageUrl подходят только внешние http/https ссылки, без localhost и приватных адресов; форматы .jpg, .jpeg, .png, .webp. HEIC/HEIF принимаются только при загрузке через форму сайта, по URL в API - нет.duration: "10" работает только с quality: "720p"; запрос на 10 секунд в 1080p получит validation_error.extend) через API недоступен: значение вернёт validation_error.image описывайте в prompt только движение и изменения: композицию, стиль и персонажей модель берёт из кадра. Одно чёткое действие и одно движение камеры дают более стабильный результат, чем длинное перечисление.