Генерирует короткие видео по текстовому описанию или оживляет загруженное изображение. Цена от 10 рублей за видео.
Общая документация Public API · API-ключ можно создать в настройках аккаунта
Grok Video генерирует короткие видео по текстовому описанию или оживляет загруженные изображения (до 7) по текстовой инструкции. Запрос создаёт асинхронную операцию: сначала вы получаете id и стартовый статус, а готовый mp4 забираете позже через проверку операции по id.
POST /api/v1/operationsAuthorization: Bearer brth_...id, стартовый статус и стоимость.Grok Video поддерживает два сценария:
grok-imagine/text-to-video - генерация видео из текста.grok-imagine/image-to-video - генерация видео по изображениям (до 7) и текстовой инструкции.Базовая форма запроса:
{
"tool": "grok-video",
"input": {
"...": "..."
}
}
tool - slug нейросети.input - параметры конкретного сценария.model.| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
model | string | Да | Сценарий генерации. Доступные значения: grok-imagine/text-to-video и grok-imagine/image-to-video. |
prompt | string | Да | Текстовое описание того, какое видео нужно получить. Максимум 5000 символов. |
image_urls | string[] | Да, для grok-imagine/image-to-video | Массив внешних URL изображений. Можно использовать до 7 изображений. Разрешены только http/https ссылки на файлы .jpg, .jpeg, .png, .webp. |
aspect_ratio | string | Нет, только для grok-imagine/text-to-video | Соотношение сторон итогового видео. Доступные значения: 16:9, 9:16, 1:1, 3:2, 2:3. |
duration | integer | Да | Длительность видео в секундах. Допустимые значения: от 6 до 30. |
resolution | string | Да | Разрешение видео. Доступные значения: 480p, 720p. |
mode | string | Да | Режим генерации. Доступные значения: normal, fun, spicy. Значение spicy доступно только для grok-imagine/text-to-video. |
curl -X POST https://bratuha.ru/api/v1/operations \\
-H "Authorization: Bearer brth_ваш_ключ" \\
-H "Content-Type: application/json" \\
-d '{
"tool": "grok-video",
"input": {
"model": "grok-imagine/text-to-video",
"prompt": "Ночной пролёт камеры над футуристическим городом, мокрый асфальт, неоновые вывески, кинематографичный свет",
"aspect_ratio": "16:9",
"duration": 10,
"resolution": "720p",
"mode": "normal"
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'grok-video',
input: {
model: 'grok-imagine/text-to-video',
prompt:
'Ночной пролёт камеры над футуристическим городом, мокрый асфальт, неоновые вывески, кинематографичный свет',
aspect_ratio: '16:9',
duration: 10,
resolution: '720p',
mode: 'normal',
},
}),
})
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": "grok-video",
"input": {
"model": "grok-imagine/text-to-video",
"prompt": "Ночной пролёт камеры над футуристическим городом, мокрый асфальт, неоновые вывески, кинематографичный свет",
"aspect_ratio": "16:9",
"duration": 10,
"resolution": "720p",
"mode": "normal",
},
},
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": "grok-video",
"input": {
"model": "grok-imagine/image-to-video",
"prompt": "Девушка плавно поворачивает голову к камере и улыбается, лёгкое движение волос, естественная мимика",
"image_urls": [
"https://cdn.example.com/source-image-1.jpg",
"https://cdn.example.com/source-image-2.jpg"
],
"duration": 6,
"resolution": "480p",
"mode": "fun"
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'grok-video',
input: {
model: 'grok-imagine/image-to-video',
prompt:
'Девушка плавно поворачивает голову к камере и улыбается, лёгкое движение волос, естественная мимика',
image_urls: [
'https://cdn.example.com/source-image-1.jpg',
'https://cdn.example.com/source-image-2.jpg',
],
duration: 6,
resolution: '480p',
mode: 'fun',
},
}),
})
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": "grok-video",
"input": {
"model": "grok-imagine/image-to-video",
"prompt": "Девушка плавно поворачивает голову к камере и улыбается, лёгкое движение волос, естественная мимика",
"image_urls": [
"https://cdn.example.com/source-image-1.jpg",
"https://cdn.example.com/source-image-2.jpg"
],
"duration": 6,
"resolution": "480p",
"mode": "fun",
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
{
"id": "op_8f3c2b1a",
"status": "queued",
"tool": "grok-video",
"cost": 30,
"balance_after": 470,
"created_at": "2026-03-16T12:00:00Z"
}
{
"id": "op_8f3c2b1a",
"status": "completed",
"tool": "grok-video",
"cost": 30,
"created_at": "2026-03-16T12:00:00Z",
"completed_at": "2026-03-16T12:00:38Z",
"result": {
"type": "video",
"urls": [
"https://storage.bratuha.ru/results/grok-video/result-video.mp4"
]
},
"error_message": null
}
{
"id": "op_8f3c2b1a",
"status": "failed",
"tool": "grok-video",
"cost": 20,
"created_at": "2026-03-16T12:00:00Z",
"completed_at": "2026-03-16T12:00:11Z",
"result": null,
"error_message": "Произошла ошибка, сервис временно недоступен. Попробуйте повторить запрос позже."
}
Сохраните id операции из ответа на POST /api/v1/operations, затем проверяйте статус через GET /api/v1/operations/{id}.
curl -H "Authorization: Bearer brth_ваш_ключ" \\
https://bratuha.ru/api/v1/operations/op_8f3c2b1a
const response = await fetch(
'https://bratuha.ru/api/v1/operations/op_8f3c2b1a',
{
headers: {
Authorization: 'Bearer brth_ваш_ключ',
},
}
)
const data = await response.json()
console.log(data)
После успешного завершения в result возвращается видео:
type: "video"urls - массив ссылок на готовые mp4-файлыДля Grok Video обычно возвращается одна ссылка на итоговый mp4-файл.
Цена рассчитывается по формуле: длительность (сек) × ставка за секунду.
| Разрешение | Ставка | Пример (10 сек) | Пример (30 сек) |
|---|---|---|---|
480p | 2 ₽/сек | 20 ₽ | 60 ₽ |
720p | 3 ₽/сек | 30 ₽ | 90 ₽ |
Минимальная длительность — 6 секунд, максимальная — 30 секунд.
POST /api/v1/operations не идемпотентен: каждый повторный запрос создаёт новую операцию.id.image_urls используйте только внешние http/https URL..jpg, .jpeg, .png, .webp.grok-imagine/image-to-video можно использовать до 7 изображений.aspect_ratio нужен только для grok-imagine/text-to-video.spicy нельзя использовать в grok-imagine/image-to-video.duration передаётся числом (6-30), не строкой.failed, а причина будет в error_message.