Генерирует изображения по текстовому описанию и редактирует загруженные фото с помощью подсказок обычными словами. Цена - от 1 до 2 рублей за изображение.
Общая документация Public API · API-ключ можно создать в настройках аккаунта
Nano Banana создаёт изображения по текстовому описанию и редактирует загруженные изображения по текстовой инструкции.
Основные сценарии:
Каждый вызов создаёт асинхронную операцию. После запуска нужно отдельно проверять статус по id.
POST /api/v1/operationsAuthorization: Bearer brth_...id и стартовый статус операции.Режим работы определяется параметром mode:
normal - обычный режим, быстрее и дороже.cheap - дешёвый режим, медленнее и дешевле.{
"tool": "nano-banana",
"input": {
"...": "..."
}
}
tool - slug нейросети, всегда "nano-banana".input - параметры запуска. Все поля передаются напрямую внутри этого объекта.| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
mode | enum | Да | Режим работы. Варианты: normal (Обычный - быстро и стабильно), cheap (Дешёвый - медленный). |
prompt | string | Да | Текстовое описание результата или правки изображения. Максимум 20 000 символов. |
image_urls | string[] (url) | Нет | Массив внешних URL изображений для редактирования. Можно передать от 1 до 10 ссылок. Если поле не передано или массив пустой, запускается генерация без входных изображений. |
output_format | enum | Да | Формат результата. Варианты: png, jpeg. |
image_size | enum | Да | Соотношение сторон результата. Варианты: 1:1, 9:16, 16:9, 3:4, 4:3, 3:2, 2:3, 5:4, 4:5, 21:9, auto. |
Для image_urls разрешены только внешние http/https URL. Поддерживаются jpg, jpeg, png, webp. Форматы heic/heif, которые работают при загрузке файлов через UI, в Public API по URL не поддерживаются.
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "nano-banana",
"input": {
"mode": "normal",
"prompt": "Сюрреалистичная картина гигантского банана в космосе, яркие цвета, высокая детализация",
"output_format": "jpeg",
"image_size": "1:1"
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'nano-banana',
input: {
mode: 'normal',
prompt: 'Сюрреалистичная картина гигантского банана в космосе, яркие цвета, высокая детализация',
output_format: 'jpeg',
image_size: '1:1',
},
}),
})
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': 'nano-banana',
'input': {
'mode': 'normal',
'prompt': 'Сюрреалистичная картина гигантского банана в космосе, яркие цвета, высокая детализация',
'output_format': 'jpeg',
'image_size': '1:1',
},
},
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": "nano-banana",
"input": {
"mode": "normal",
"prompt": "Преврати это изображение в акварельную иллюстрацию",
"image_urls": [
"https://cdn.example.com/source-image-1.jpg",
"https://cdn.example.com/source-image-2.jpg"
],
"output_format": "png",
"image_size": "auto"
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'nano-banana',
input: {
mode: 'normal',
prompt: 'Преврати это изображение в акварельную иллюстрацию',
image_urls: [
'https://cdn.example.com/source-image-1.jpg',
'https://cdn.example.com/source-image-2.jpg',
],
output_format: 'png',
image_size: 'auto',
},
}),
})
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': 'nano-banana',
'input': {
'mode': 'normal',
'prompt': 'Преврати это изображение в акварельную иллюстрацию',
'image_urls': [
'https://cdn.example.com/source-image-1.jpg',
'https://cdn.example.com/source-image-2.jpg',
],
'output_format': 'png',
'image_size': 'auto',
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
{
"id": "op_uuid-123",
"status": "queued",
"tool": "nano-banana",
"cost": 2,
"balance_after": 495,
"created_at": "2026-03-13T12:00:00Z"
}
{
"id": "op_uuid-123",
"status": "completed",
"tool": "nano-banana",
"cost": 2,
"created_at": "2026-03-13T12:00:00Z",
"completed_at": "2026-03-13T12:00:24Z",
"result": {
"type": "image",
"urls": [
"https://storage.bratuha.ru/results/nano-banana/image-1.jpg"
]
},
"error_message": null
}
После создания операции сохраните id из ответа и проверяйте статус отдельным запросом:
GET /api/v1/operations/{id}
curl -H "Authorization: Bearer brth_ваш_ключ" \
https://bratuha.ru/api/v1/operations/op_uuid-123
После завершения Nano Banana возвращает:
{
"type": "image",
"urls": [
"https://storage.bratuha.ru/results/nano-banana/image-1.jpg"
]
}
type - всегда "image".urls - массив ссылок на готовые изображения.Если операция завершилась с ошибкой, result будет null, а текст ошибки вернётся в error_message.
Цена зависит от mode:
| Режим | Цена |
|---|---|
normal | 2 ₽ |
cheap | 1 ₽ |
cheap стоит дешевле, но обычно работает медленнее.image_urls не передан или передан как пустой массив, будет выполнена генерация без входных изображений.image_urls разрешены только внешние http/https URL с расширениями jpg, jpeg, png, webp.POST /api/v1/operations не идемпотентен: повторный запрос создаёт новую операцию.queued, затем проверяете статус по id.