Создаёт изображения по текстовому описанию - от реалистичных сцен до иллюстраций и рекламных макетов. Цена - 3 ₽ за 1 изображение, 6 ₽ за 2, 9 ₽ за 3, до 36 ₽ за 12.
Общая документация Public API · API-ключ можно создать в настройках аккаунта
Grok Image 2.0 от xAI рисует картинки по текстовому заданию: иллюстрации к постам, обложки, предметные сцены, афиши и рекламные макеты с надписями. Входных изображений модель не принимает - только текст.
За один запуск можно получить от 1 до 12 вариантов одной идеи. Это удобно, когда задание ещё сырое и хочется сразу выбрать лучший кадр: платите за каждое изображение, а все ссылки приходят одним массивом.
Каждый вызов создаёт асинхронную операцию. После запуска сохраните её id и проверяйте статус отдельным запросом.
POST /api/v1/operationsAuthorization: Bearer brth_...id и стартовый статус queued.Сценарий один - генерация по тексту. Меняются только число вариантов n и пропорции кадра size.
{
"tool": "grok-image-2-0",
"input": {
"prompt": "...",
"n": 1,
"size": "1:1"
}
}
tool - slug нейросети, всегда "grok-image-2-0".input - параметры запуска. Все поля передаются прямо внутри этого объекта, без дополнительной вложенности.| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
prompt | string | Да | Описание картинки: кто или что в кадре, фон, свет, ракурс, стиль. Минимум 1 символ. Можно писать по-русски. Текст для надписи в кадре лучше взять в кавычки. |
n | number | Да | Сколько изображений создать за один запуск. Целое число от 1 до 12. Если не передать, будет 1. Цена растёт пропорционально. |
size | enum | Да | Соотношение сторон результата. Варианты: 1:1 - квадрат для постов и аватарок, 2:3 и 3:4 - вертикальные, 3:2 и 4:3 - горизонтальные, 9:16 - сторис и вертикальные экраны, 16:9 - обложки и презентации. Если не передать, будет 1:1. |
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "grok-image-2-0",
"input": {
"prompt": "Уютная кофейня на углу старой улицы осенним вечером, тёплый свет из окон, мокрая брусчатка, реалистичное фото",
"n": 1,
"size": "3:2"
}
}'
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-image-2-0',
input: {
prompt:
'Уютная кофейня на углу старой улицы осенним вечером, тёплый свет из окон, мокрая брусчатка, реалистичное фото',
n: 1,
size: '3:2',
},
}),
})
const data = await response.json()
console.log(data.id, data.status)
import requests
response = requests.post(
'https://bratuha.ru/api/v1/operations',
headers={
'Authorization': 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
json={
'tool': 'grok-image-2-0',
'input': {
'prompt': 'Уютная кофейня на углу старой улицы осенним вечером, тёплый свет из окон, мокрая брусчатка, реалистичное фото',
'n': 1,
'size': '3:2',
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
Четыре вертикальных варианта обложки. Стоимость - 12 ₽, в результате придёт массив из четырёх ссылок.
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "grok-image-2-0",
"input": {
"prompt": "Обложка подкаста о путешествиях: рюкзак и старая карта на деревянном столе, сверху крупная надпись «В дороге», тёплые цвета",
"n": 4,
"size": "9:16"
}
}'
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-image-2-0',
input: {
prompt:
'Обложка подкаста о путешествиях: рюкзак и старая карта на деревянном столе, сверху крупная надпись «В дороге», тёплые цвета',
n: 4,
size: '9:16',
},
}),
})
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': 'grok-image-2-0',
'input': {
'prompt': 'Обложка подкаста о путешествиях: рюкзак и старая карта на деревянном столе, сверху крупная надпись «В дороге», тёплые цвета',
'n': 4,
'size': '9:16',
},
},
timeout=30,
)
print(response.json())
{
"id": "op_uuid-123",
"status": "queued",
"tool": "grok-image-2-0",
"cost": 3,
"balance_after": 495,
"created_at": "2026-09-30T12:45:51.977587+00:00"
}
{
"id": "op_uuid-123",
"status": "completed",
"tool": "grok-image-2-0",
"cost": 3,
"created_at": "2026-09-30T12:45:51.977587+00:00",
"completed_at": "2026-09-30T12:46:24.357539+00:00",
"result": {
"type": "image",
"urls": [
"https://storage.bratuha.ru/results/grok-image-2-0/image-1.jpg"
]
},
"error_message": null
}
{
"id": "op_uuid-123",
"status": "failed",
"tool": "grok-image-2-0",
"cost": 3,
"created_at": "2026-09-30T12:45:51.977587+00:00",
"completed_at": "2026-09-30T12:46:40.102311+00:00",
"result": null,
"error_message": "Произошла ошибка, сервис временно недоступен. Попробуйте повторить запрос позже."
}
Сохраните id из ответа на создание и запрашивайте статус операции по нему:
GET /api/v1/operations/{id}
curl -H "Authorization: Bearer brth_ваш_ключ" \
https://bratuha.ru/api/v1/operations/op_uuid-123
async function waitForResult(id: string) {
while (true) {
const response = await fetch(`https://bratuha.ru/api/v1/operations/${id}`, {
headers: { Authorization: 'Bearer brth_ваш_ключ' },
})
const operation = await response.json()
if (operation.status === 'completed' || operation.status === 'failed') {
return operation
}
await new Promise((resolve) => setTimeout(resolve, 5000))
}
}
Статус меняется с queued на processing, а затем на completed или failed. Обычно картинка готова за 30-40 секунд. Опрашивать одну операцию можно не чаще раза в секунду, разумный интервал - 3-5 секунд.
{
"type": "image",
"urls": [
"https://storage.bratuha.ru/results/grok-image-2-0/image-1.jpg",
"https://storage.bratuha.ru/results/grok-image-2-0/image-2.jpg"
]
}
type - всегда "image".urls - массив ссылок на готовые изображения в JPG. Ссылок столько, сколько вы указали в n: при n: 1 - одна, при n: 4 - четыре.Размер картинки зависит от size: например, при 3:2 получается 1728×1152 пикселей.
Цена - 3 ₽ за каждое изображение. Итог считается как n × 3 ₽ и не зависит от пропорций и длины задания.
n | Цена |
|---|---|
| 1 | 3 ₽ |
| 2 | 6 ₽ |
| 3 | 9 ₽ |
| 4 | 12 ₽ |
| 6 | 18 ₽ |
| 8 | 24 ₽ |
| 10 | 30 ₽ |
| 12 | 36 ₽ |
Стоимость списывается при создании операции и приходит в поле cost ответа.
POST /api/v1/operations не идемпотентен: каждый повторный запрос создаёт новую оплаченную операцию. Если ответ потерялся, не повторяйте запрос вслепую.queued, результат забирается по id.n и выбрать лучший.