API документация Nano Banana 2

Введение

Nano Banana 2 предоставляет REST API для генерации изображений через искусственный интеллект, управления балансом и просмотра истории. API позволяет интегрировать генерацию изображений в ваши приложения, боты и скрипты.

Базовый URL

https://nanobanana.expert/api/v1

Чтобы получить API ключ, перейдите в Dashboard → вкладка API.

Аутентификация

Все запросы к API должны содержать заголовок Authorization с вашим API ключом в формате Bearer токена. Ключи начинаются с префикса nb_.

HTTP
Authorization: Bearer nb_your_api_key_here

Каждый запрос использует баланс бананов вашего аккаунта. Ключ привязан к аккаунту — не передавайте его третьим лицам.

Баланс

Возвращает текущий баланс вашего аккаунта.

GET
/api/v1/balance

Получить баланс бананов и купонов

Ответ

JSON
{
  "bananas": 1250,
  "generation_coupons": 2
}

Примеры

cURL
curl -H "Authorization: Bearer nb_your_key" \
  https://nanobanana.expert/api/v1/balance
JavaScript
const res = await fetch('https://nanobanana.expert/api/v1/balance', {
  headers: { 'Authorization': 'Bearer nb_your_key' }
});
const { bananas, generation_coupons } = await res.json();
console.log(`Balance: ${bananas} bananas`);

Генерация изображения

Генерирует изображение по текстовому описанию. Стоимость списывается с баланса.

POST
/api/v1/generate

Создать изображение по промпту

Тело запроса

ПараметрТипОписание
promptstringОбязательный. Текстовое описание изображения.
aspect_ratiostringНеобязательный. Например: "16:9", "1:1", "9:16". По умолчанию: "1:1".
resolutionstringНеобязательный. "0.5k" | "1k" | "2k" | "4k". По умолчанию: "1k".
output_formatstringНеобязательный. "png" | "jpeg" | "webp". По умолчанию: "png".
seednumberНеобязательный. Seed для воспроизводимости результата.

Ответ

JSON
{
  "image_url": "https://...",
  "bananas_spent": 42,
  "used_coupon": false,
  "seed": 1234567890,
  "generation_id": "uuid"
}

Примеры

cURL
curl -X POST https://nanobanana.expert/api/v1/generate \
  -H "Authorization: Bearer nb_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "a banana in space, cinematic lighting",
    "aspect_ratio": "16:9",
    "resolution": "1k",
    "output_format": "png"
  }'
JavaScript
const res = await fetch('https://nanobanana.expert/api/v1/generate', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer nb_your_key',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    prompt: 'a banana in space, cinematic lighting',
    aspect_ratio: '16:9',
    resolution: '1k',
  }),
});
const { image_url, bananas_spent } = await res.json();
console.log('Generated:', image_url);

История генераций

Возвращает список ваших генераций в обратном хронологическом порядке.

GET
/api/v1/history

Получить историю генераций

Параметры запроса

ПараметрОписание
limitКол-во записей (макс. 100, по умолчанию 20)
offsetСмещение для пагинации (по умолчанию 0)

Ответ

JSON
{
  "generations": [
    {
      "id": "uuid",
      "prompt": "a banana in space",
      "image_url": "https://...",
      "model": "fal-ai/nano-banana-2",
      "seed": 1234567890,
      "created_at": "2026-03-04T12:00:00Z"
    }
  ],
  "total": 42,
  "limit": 20,
  "offset": 0
}
cURL
curl "https://nanobanana.expert/api/v1/history?limit=10&offset=0" \
  -H "Authorization: Bearer nb_your_key"

Управление ключами через API

Вы можете управлять API ключами программно через сам API.

GET
/api/v1/keys

Получить список активных ключей

POST
/api/v1/keys

Создать новый ключ (возвращается один раз)

DELETE
/api/v1/keys?id=uuid

Отозвать ключ по ID

cURL — create key
curl -X POST https://nanobanana.expert/api/v1/keys \
  -H "Authorization: Bearer nb_your_key" \
  -H "Content-Type: application/json" \
  -d '{"name": "My Bot"}'
cURL — revoke key
curl -X DELETE "https://nanobanana.expert/api/v1/keys?id=key-uuid-here" \
  -H "Authorization: Bearer nb_your_key"

Коды ошибок

КодЗначениеРешение
401UnauthorizedПроверьте заголовок Authorization: Bearer nb_...
402Insufficient fundsПополните баланс бананов на /dashboard
400Bad RequestПроверьте обязательные параметры запроса
403ForbiddenАккаунт заблокирован
429Too Many RequestsСлишком много запросов, подождите
500Internal ErrorВнутренняя ошибка сервера
503Service UnavailableСервис временно недоступен

Все ошибки возвращаются в формате { "error": "message" }.