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/generationsSchopnosti a funkce
| Funkce | Podporované hodnoty |
|---|---|
| Režimy generování | text-to-image, image-to-image |
| Výstupní rozlišení | 1K, 2K, 4K |
| Poměr stran | auto, 1:1, 9:16, 16:9, 3:4, 4:3, 3:2, 2:3, 5:4, 4:5, 21:9 |
| Referenční obrázky | 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. |
| Prompt | Required non-empty prompt, up to 10000 characters. |
| Výstupní formát | png, jpg |
Ceny a kredity
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.
Ověření
Vytvořte si API klíč v administraci. Celý klíč se zobrazí pouze jednou. Uložte si ho na svém serveru a posílejte ho jako Bearer token v každém požadavku.
Základní URL
https://api.seevio.aiAuthorization: Bearer sk_live_your_api_key
Content-Type: application/jsonPřed spuštěním těchto příkladů nastavte proměnnou prostředí SEEVIO_API_KEY. Příklady v JavaScriptu běží na vašem serveru v prostředí Node.js; příklady v Pythonu používají knihovnu requests.
Tělo požadavku
| Pole | Typ | Povinné | Popis a omezení |
|---|---|---|---|
model | string | Ano | ID modelu. Chcete-li použít Nano Banana Pro, nastavte toto pole na nano-banana-pro. |
callback_url | string | Ne | Veřejný HTTPS koncový bod pro POST callbacky při dokončení nebo selhání. Privátní sítě a localhost nejsou povoleny. Příklad: https://example.com/webhooks/seevio |
input | object | Ano | Nastavení generování. Musí obsahovat neprázdný prompt. |
Vstupní parametry
| Pole | Typ | Povinné | Výchozí | Popis a omezení |
|---|---|---|---|---|
input.prompt | string | Ano | — | Required non-empty prompt, up to 10000 characters. Příklad: A minimalist ceramic teapot on a stone pedestal, soft studio lighting |
input.generation_type | string | Ne | text-to-image | For image editing, set generation_type to image-to-image and provide image_urls. All other parameters use the same contract. Podporované hodnoty text-to-image | image-to-image |
input.image_urls | string[] | Podmíněně | [] | 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. Příklad: ["https://example.com/teapot.png"] |
input.aspect_ratio | string | Ne | auto | Poměr stran Podporované hodnoty auto | 1:1 | 9:16 | 16:9 | 3:4 | 4:3 | 3:2 | 2:3 | 5:4 | 4:5 | 21:9Příklad: 1:1 |
input.resolution | string | Ne | 2K | Použijte jedno z podporovaných výstupních rozlišení uvedených zde. Podporované hodnoty 1K | 2K | 4KPříklad: 2K |
input.output_format | string | Ne | png | Podporované hodnoty png | jpgPříklad: png |
Aspect ratio defaults to auto. Unknown fields, including output quantity, are rejected. Each request generates exactly one image.
Rychlý start
Odešlete tento minimální požadavek, uložte si vrácené taskId a poté použijte níže uvedený příklad dotazu na stav úlohy. Hodnota credits v odpovědi na vytvoření představuje rezervovanou částku.
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"
}
}'Příklad odpovědi při vytvoření úlohy
{
"taskId": "3f2aK9mR7xQp4TnZ8bLc6YwH",
"credits": 4
}Text na obrázek
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"
}
}'Obrázek na obrázek
For image editing, set generation_type to image-to-image and provide image_urls. All other parameters use the same contract.
Nahraďte ukázkové adresy URL z example.com vlastními veřejně přístupnými soubory na HTTPS. Ukázkové adresy URL slouží pouze pro ilustraci struktury požadavku a nelze je stáhnout.
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"
]
}
}'Dotaz na stav úlohy
GET https://api.seevio.ai/v1/tasks/{taskId}Nahraďte ukázkové ID za taskId vrácené při vytvoření. Dotazy vracejí pouze úlohy patřící uživateli daného API klíče; nepřístupná nebo neznámá ID vrací HTTP 404.
Jako výchozí bod se dotazujte každých 10–20 sekund, při chybě HTTP 429 frekvenci snižte a dotazování ukončete, jakmile je stav completed nebo failed. V produkčním prostředí dejte přednost webhookům. Každá ukázka kódu níže provede jeden dotaz.
curl --fail-with-body https://api.seevio.ai/v1/tasks/3f2aK9mR7xQp4TnZ8bLc6YwH \
-H "Authorization: Bearer $SEEVIO_API_KEY"| Stav | Allowed values and requirements |
|---|---|
| queued | Přijato a čeká na zpracování. |
| generating | Generování probíhá. |
| completed | Úspěšně dokončeno. Stáhněte si data.results před vypršením platnosti. |
| failed | Trvalé selhání. Zkontrolujte failed_reason a billing_status. |
| Field | Typ | Allowed values and requirements |
|---|---|---|
| id | string | Identifikátor úlohy. Jedná se o taskId z odpovědi na vytvoření. |
| created_at | number | Čas vytvoření úlohy jako unixový čas v sekundách. |
| model | string | Veřejné ID modelu použité pro tuto úlohu. |
| billing_status | string | reserved (rezervováno), charged (zaúčtováno), refunded (vráceno) nebo refund_failed (vrácení selhalo). |
| credits | number | Kredity rezervované pro tuto úlohu. Tato hodnota zůstává zachována i po vrácení kreditů; pro zjištění konečného stavu platby zkontrolujte billing_status. |
| failed_reason | string | null | Důvod selhání u neúspěšných úloh; v ostatních případech null. Odpovědi na dotazy u selhaných úloh neobsahují objekt data. |
| data | object | Přítomno u úspěšně dotázaných úloh, které neselhaly. Obsahuje výstup a podrobnosti o zpracování. |
| data.results | string[] | Pole URL obrázků; před dokončením a po vypršení je prázdné. |
| data.image_expires_at | string | null | Čas vypršení obrázků ve formátu ISO 8601, nebo null, pokud není dostupný. |
| data.processing_time | number | null | Doba zpracování u poskytovatele v sekundách, pokud je k dispozici, jinak null. |
Ve frontě
{
"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
}
}Dokončeno
{
"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
}
}Selhalo
Pokud dotaz vrátí status=failed, generování skončilo neúspěšně. Důvod chyby najdete v failed_reason a výsledek vrácení peněz v billing_status. V tomto příkladu hodnota refunded znamená, že kredity byly vráceny. V credits zůstává původní vyhrazená částka a odpověď neobsahuje žádná 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.
Webhooky
Nastavením callback_url v požadavku na vytvoření obdržíte JSON POST požadavek při dokončení nebo selhání úlohy. Odpovězte stavovým kódem 2xx do 15 sekund. Neúspěšná doručení se opakují; opakovaná doručení zpracovávejte idempotentně podle ID úlohy.
Koncový bod pro zpětné volání (callback) musí přijímat požadavky typu POST s tělem ve formátu JSON (Content-Type: application/json).
Vytvoření úlohy s callbackem
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.
Úloha byla dokončena: callback s úspěšným výsledkem
created_at je čas vytvoření události, task_created_at čas vytvoření úlohy, v sekundách Unix. Příklady ukazují doporučená pole; odpovědi mohou obsahovat další pole.
{
"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
}Úloha selhala: callback s chybovým hlášením
{
"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
}Příklad přijímače
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 });
}Tento příklad v Next.js načítá tělo callbacku ve formátu JSON a rovnou zpracovává dokončené i neúspěšné úlohy. Do své aplikace přidejte perzistentní ukládání a deduplikaci podle ID úloh. Náročnější operace zařazujte do fronty ještě před potvrzením přijetí callbacku.
Chyby
Chyby HTTP obsahují objekt error s poli code a message. Úspěšně přijatá úloha může přesto později selhat; dotazujte se na stav úlohy nebo ošetřete callback o jejím selhání.
{
"error": {
"code": "invalid_request",
"message": "input.prompt is required."
}
}| HTTP | Pole | Co dělat |
|---|---|---|
| 400 | invalid_request | Před dalším pokusem opravte JSON, chybějící prompt, rozsah parametrů nebo URL adresu média. |
| 401 | invalid_api_key | Zkontrolujte token Bearer a zda je API klíč aktivní. |
| 402 | insufficient_credits | Dobijte si kredity nebo snižte náročnost úlohy. Odpověď může obsahovat požadované a dostupné množství kreditů. |
| 403 | forbidden | Zkontrolujte omezení na úrovni účtu popsané v chybové zprávě. |
| 404 | not_found | Zkontrolujte ID úlohy a zda klíč patří uživateli, který úlohu vytvořil. |
| 429 | rate_limited | Před dalším pokusem vyčkejte po dobu uvedenou v intervalu Retry-After. |
| 500 | internal_error | Zkontrolujte chybovou zprávu a protokoly API. Opakujte pokus opatrně; opětovné odeslání požadavku na vytvoření může vytvořit další zpoplatněnou úlohu. |
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.
Limity četnosti požadavků
Vytváření úkolů: každý API klíč standardně umožňuje až 100 požadavků za minutu. Vlastní limity četnosti v současné době nejsou k dispozici.
Dotazování na úkoly: každý API klíč standardně umožňuje až 120 požadavků za minutu. Požadavky na dotazy a požadavky na vytváření úkolů se počítají samostatně.
Image and video creation requests share the same API key rate limit.
Chyba HTTP 429 obsahuje hlavičku Retry-After: 60 pro vytváření úloh a Retry-After: 5 pro dotazy. Používejte odklad (backoff) a nedotazujte se častěji, než je nutné.
HTTP/1.1 429 Too Many Requests
Content-Type: application/json
Retry-After: 60{
"error": {
"code": "rate_limited",
"message": "Rate limit exceeded."
}
}