Nano Banana Pro API
Generate one image asynchronously per request. Supports text-to-image and image-to-image generation with your Seevio API key.
POST https://api.seevio.ai/v1/images/generationsМожливості
| Функція | Допустимі значення |
|---|---|
| Режими генерації | text-to-image, image-to-image |
| Роздільна здатність відео | 1K, 2K, 4K |
| Співвідношення сторін | auto, 1:1, 9:16, 16:9, 3:4, 4:3, 3:2, 2:3, 5:4, 4:5, 21:9 |
| Референсні зображення | Public HTTPS PNG / JPEG / WebP URLs. Image-to-image requires 1–8 images, each up to 30 MB. Text-to-image requires an empty array. |
| Промпт | Required non-empty prompt, up to 10000 characters. |
| Формат виводу | png, jpg |
Тарифи та кредити
Each image costs 4 credits, including all supported resolutions and formats. Credits are reserved on acceptance, settled on success and refunded on failure. Generation times out after 30 minutes; refund_failed means refund recovery is pending.
Request idempotency is not supported. Each valid POST creates a new billable task. If a submission outcome is uncertain, query the returned taskId; retrying POST can create another task.
Автентифікація
Створіть ключ API у панелі керування. Повний ключ відображається лише один раз. Зберігайте його на своєму сервері та надсилайте як Bearer-токен у кожному запиті.
Базовий URL
https://api.seevio.aiAuthorization: Bearer sk_live_your_api_key
Content-Type: application/jsonЗадайте змінну середовища SEEVIO_API_KEY перед запуском цих прикладів. Приклади на JavaScript виконуються на вашому сервері за допомогою Node.js; приклади на Python використовують бібліотеку requests.
Тіло запиту
| Поле | Тип | Обов’язково | Опис та обмеження |
|---|---|---|---|
model | string | Так | Ідентифікатор моделі. Щоб використовувати Nano Banana Pro, установіть для цього поля значення nano-banana-pro. |
callback_url | string | Ні | Публічна адреса HTTPS для отримання POST-запитів про завершення роботи або помилку. Приватні мережі та localhost не підтримуються. Приклад: https://example.com/webhooks/seevio |
input | object | Так | Налаштування генерації. Має містити непусті вказівки (prompt). |
Вхідні параметри
| Поле | Тип | Обов’язково | За замовчуванням | Опис та обмеження |
|---|---|---|---|---|
input.prompt | string | Так | — | Required non-empty prompt, up to 10000 characters. Приклад: A minimalist ceramic teapot on a stone pedestal, soft studio lighting |
input.generation_type | string | Ні | text-to-image | For image editing, set generation_type to image-to-image and provide image_urls. All other parameters use the same contract. Допустимі значення text-to-image | image-to-image |
input.image_urls | string[] | Залежно від умов | [] | Public HTTPS PNG / JPEG / WebP URLs. Image-to-image requires 1–8 images, each up to 30 MB. Text-to-image requires an empty array. Приклад: ["https://example.com/teapot.png"] |
input.aspect_ratio | string | Ні | auto | Співвідношення сторін Допустимі значення auto | 1:1 | 9:16 | 16:9 | 3:4 | 4:3 | 3:2 | 2:3 | 5:4 | 4:5 | 21:9Приклад: 1:1 |
input.resolution | string | Ні | 2K | Використовуйте одну з підтримуваних роздільних здатностей готового зображення, наведених тут. Допустимі значення 1K | 2K | 4KПриклад: 2K |
input.output_format | string | Ні | png | Допустимі значення png | jpgПриклад: png |
Aspect ratio defaults to auto. Unknown fields, including output quantity, are rejected. Each request generates exactly one image.
Швидкий старт
Надішліть цей мінімальний запит, збережіть отриманий taskId, а потім використайте приклад запиту статусу, наведений нижче. Значення credits у відповіді на створення — це зарезервована сума кредитів.
curl --fail-with-body https://api.seevio.ai/v1/images/generations \
-H "Authorization: Bearer $SEEVIO_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"model": "nano-banana-pro",
"input": {
"prompt": "A minimalist ceramic teapot on a stone pedestal, soft studio lighting",
"aspect_ratio": "1:1",
"resolution": "2K",
"output_format": "png",
"generation_type": "text-to-image"
}
}'Приклад відповіді на запит створення завдання
{
"taskId": "3f2aK9mR7xQp4TnZ8bLc6YwH",
"credits": 4
}З тексту в зображення
Generate one image asynchronously per request. Supports text-to-image and image-to-image generation with your Seevio API key.
curl --fail-with-body https://api.seevio.ai/v1/images/generations \
-H "Authorization: Bearer $SEEVIO_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"model": "nano-banana-pro",
"input": {
"prompt": "A minimalist ceramic teapot on a stone pedestal, soft studio lighting",
"aspect_ratio": "1:1",
"resolution": "2K",
"output_format": "png",
"generation_type": "text-to-image"
}
}'Із зображення в зображення
For image editing, set generation_type to image-to-image and provide image_urls. All other parameters use the same contract.
Замініть адреси медіафайлів example.com на власні загальнодоступні HTTPS-файли. Приклади URL-адрес наведено лише для ілюстрації структури запиту, вони не є тестовими файлами для завантаження.
curl --fail-with-body https://api.seevio.ai/v1/images/generations \
-H "Authorization: Bearer $SEEVIO_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"model": "nano-banana-pro",
"input": {
"prompt": "Change the teapot to matte sage green. Preserve its shape and the studio lighting.",
"aspect_ratio": "1:1",
"resolution": "2K",
"output_format": "png",
"generation_type": "image-to-image",
"image_urls": [
"https://example.com/teapot.png"
]
}
}'Запит статусу завдання
GET https://api.seevio.ai/v1/tasks/{taskId}Замініть ID з прикладу на taskId, отриманий під час створення. Запити повертають лише ті завдання, які належать користувачеві ключа API; до невідомих або недоступних ID повертається помилка HTTP 404.
Для початку опитуйте статус кожні 10–20 секунд, за умов помилки HTTP 429 збільшуйте інтервал і зупиняйтеся, коли статус зміниться на completed або failed. Для продакшену краще використовувати вебхуки. Кожен приклад коду нижче виконує один запит.
curl --fail-with-body https://api.seevio.ai/v1/tasks/3f2aK9mR7xQp4TnZ8bLc6YwH \
-H "Authorization: Bearer $SEEVIO_API_KEY"| Статус | Allowed values and requirements |
|---|---|
| queued | Прийнято й очікує на запуск. |
| generating | Генерація триває. |
| completed | Успішно завершено. Завантажте файли з data.results до закінчення терміну дії. |
| failed | Помилка виконання. Перевірте failed_reason та billing_status. |
| Field | Тип | Allowed values and requirements |
|---|---|---|
| id | string | Ідентифікатор завдання. Це taskId з відповіді на створення. |
| created_at | number | Час створення завдання в секундах Unix. |
| model | string | Публічний ID моделі, використаний для цього завдання. |
| billing_status | string | Статус оплати: reserved, charged, refunded або refund_failed. |
| credits | number | Кредити, зарезервовані для цього завдання. Це значення зберігається після повернення коштів; перевіряйте billing_status для визначення остаточного статусу розрахунку. |
| failed_reason | string | null | Причина помилки для неуспішних завдань; в інших випадках — null. Відповіді на запити для неуспішних завдань не містять об’єкта data. |
| data | object | Міститься у запитах успішних завдань. Передає результат та деталі обробки. |
| data.results | string[] | Масив URL зображень; порожній до завершення та після закінчення строку. |
| data.image_expires_at | string | null | Строк дії зображень у форматі ISO 8601 або null, якщо ще невідомий. |
| data.processing_time | number | null | Час обробки провайдером у секундах (якщо доступно), інакше — null. |
У черзі
{
"id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
"created_at": 1789171200,
"model": "nano-banana-pro",
"credits": 4,
"status": "queued",
"billing_status": "reserved",
"failed_reason": null,
"data": {
"results": [],
"image_expires_at": null,
"processing_time": null
}
}Завершено
{
"id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
"created_at": 1789171200,
"model": "nano-banana-pro",
"credits": 4,
"status": "completed",
"billing_status": "charged",
"failed_reason": null,
"data": {
"results": [
"https://cdn.seevio.ai/api/images/example.png"
],
"image_expires_at": "2026-10-12T00:00:00.000Z",
"processing_time": 12
}
}Помилка
Коли запит повертає статус status=failed, це означає, що генерація завершилася помилкою. Причину збою вказано в полі failed_reason, а результат повернення коштів — у billing_status. У цьому прикладі статус refunded означає, що кредити було повернено. У полі credits залишається початкова зарезервована сума, а об'єкт data у відповіді відсутній.
{
"id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
"created_at": 1789171200,
"model": "nano-banana-pro",
"credits": 4,
"status": "failed",
"billing_status": "refunded",
"failed_reason": "Image generation failed."
}Result links are provided for 30 days after storage. After expiry, results is empty.
Вебхуки
Вкажіть callback_url у запиті на створення, щоб отримувати POST-запит JSON після успішного виконання або помилки завдання. Поверніть відповідь 2xx протягом 15 секунд. У разі невдалої доставки запити повторюються; налаштуйте ідемпотентну обробку повторних запитів за ID завдання.
Ваша кінцева точка зворотного виклику (callback endpoint) має приймати запити POST із тілом запиту у форматі JSON (Content-Type: application/json).
Створення завдання з вебхуком
curl --fail-with-body https://api.seevio.ai/v1/images/generations \
-H "Authorization: Bearer $SEEVIO_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"model": "nano-banana-pro",
"input": {
"prompt": "A minimalist ceramic teapot on a stone pedestal, soft studio lighting",
"aspect_ratio": "1:1",
"resolution": "2K",
"output_format": "png",
"generation_type": "text-to-image"
},
"callback_url": "https://example.com/webhooks/seevio"
}'Callbacks use the task query response structure; refunded failure notifications also include top-level credits_refunded. Use id to identify the task and status to distinguish completed from failed. Notifications may repeat: process them idempotently by id and status. Callbacks are unsigned; verify the task with the authenticated query endpoint. Delivery failure does not refund a successful task.
Завдання виконано: дані успішного зворотного виклику
created_at — час створення події, task_created_at — час створення завдання, у секундах Unix. Приклади показують рекомендовані поля; відповідь може містити додаткові поля.
{
"id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
"created_at": 1789171212,
"model": "nano-banana-pro",
"credits": 4,
"status": "completed",
"billing_status": "charged",
"failed_reason": null,
"data": {
"results": [
"https://cdn.seevio.ai/api/images/example.png"
],
"image_expires_at": "2026-10-12T00:00:00.000Z",
"processing_time": 12
},
"task_created_at": 1789171200
}Помилка завдання: дані зворотного виклику про збій
{
"id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
"created_at": 1789171212,
"model": "nano-banana-pro",
"credits": 4,
"status": "failed",
"billing_status": "refunded",
"failed_reason": "Image generation failed.",
"task_created_at": 1789171200,
"credits_refunded": 4
}Приклад обробника
export async function POST(request: Request) {
const callbackData = await request.json();
if (callbackData.status === "completed") {
const imageUrls = callbackData.data.results;
// Save the image URLs and mark this task as completed in your application.
console.log(callbackData.id, imageUrls);
}
if (callbackData.status === "failed") {
const { failed_reason, credits_refunded } = callbackData;
// Record the failure reason and refunded credits for this task.
console.error(callbackData.id, failed_reason, credits_refunded);
}
return new Response(null, { status: 200 });
}Цей приклад для Next.js зчитує тіло зворотного виклику в JSON та безпосередньо обробляє успішно виконані й невдалі завдання. Додайте у свій додаток збереження даних та дедуплікацію за ID завдань; додавайте тривалі процеси в чергу, перш ніж підтверджувати отримання зворотного виклику.
Помилки
Помилки HTTP містять об’єкт error із кодом (code) та повідомленням (message). Завдання, успішно прийняте в роботу, все одно може завершитися помилкою згодом; опитуйте статус або обробляйте вебхук про помилку.
{
"error": {
"code": "invalid_request",
"message": "input.prompt is required."
}
}| HTTP | Поле | Що робити |
|---|---|---|
| 400 | invalid_request | Виправте структуру JSON, додайте prompt, перевірте ліміти параметрів або URL-адреси медіа перед повторною спробою. |
| 401 | invalid_api_key | Перевірте Bearer-токен та переконайтеся, що ключ API активний. |
| 402 | insufficient_credits | Поповніть баланс або зменште вартість завдання. Відповідь може містити необхідну та доступну кількість кредитів. |
| 403 | forbidden | Перевірте обмеження на рівні облікового запису, описані в повідомленні про помилку. |
| 404 | not_found | Перевірте ID завдання та переконайтеся, що ключ належить користувачеві, який створив це завдання. |
| 429 | rate_limited | Зачекайте інтервал, указаний у Retry-After, перед повторним запитом. |
| 500 | internal_error | Перевірте повідомлення про помилку та логи API. Повторюйте запити обережно: повторне надсилання запиту на створення може створити ще одне платне завдання. |
Errors use error.code and error.message: 400 invalid_request, 401 invalid_api_key, 402 insufficient_credits, 403 forbidden, 404 not_found, 429 rate_limited, 500 internal_error. Insufficient provider balance is not a customer 402 error.
Ліміти запитів
Створення завдань: за замовчуванням для кожного ключа API дозволено до 100 запитів на хвилину. Індивідуальні ліміти запитів наразі недоступні.
Запити щодо завдань: за замовчуванням для кожного ключа API дозволено до 120 запитів на хвилину. Запити на отримання інформації та запити на створення завдань враховуються окремо.
Image and video creation requests share the same API key rate limit.
Помилка HTTP 429 містить заголовок Retry-After: 60 для створення завдань та Retry-After: 5 для запитів статусу. Використовуйте експоненційне збільшення інтервалів та уникайте занадто частого опитування.
HTTP/1.1 429 Too Many Requests
Content-Type: application/json
Retry-After: 60{
"error": {
"code": "rate_limited",
"message": "Rate limit exceeded."
}
}