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/generationsFunksjoner
| Funksjon | Støttede verdier |
|---|---|
| Genereringsmoduser | text-to-image, image-to-image |
| Utgangsoppløsning | 1K, 2K, 4K |
| Skjermformat | auto, 1:1, 9:16, 16:9, 3:4, 4:3, 3:2, 2:3, 5:4, 4:5, 21:9 |
| Referansebilder | 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. |
| Instruksjon | Required non-empty prompt, up to 10000 characters. |
| Utdataformat | png, jpg |
Priser og kreditter
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.
Autentisering
Opprett en API-nøkkel i dashbordet. Den fullstendige nøkkelen vises bare én gang. Oppbevar den trygt på serveren din, og send den med som et Bearer-token i alle forespørsler.
Base-URL
https://api.seevio.aiAuthorization: Bearer sk_live_your_api_key
Content-Type: application/jsonDefiner miljøvariabelen SEEVIO_API_KEY før du kjører disse eksemplene. Eksemplene i JavaScript kjøres på serveren din med Node.js, mens Python-eksemplene bruker requests-pakken.
Forespørselstekst (body)
| Felt | Type | Påkrevd | Beskrivelse og begrensninger |
|---|---|---|---|
model | string | Ja | Modell-ID. For å bruke Nano Banana Pro, setter du dette feltet til nano-banana-pro. |
callback_url | string | Nei | Offentlig HTTPS-endepunkt for POST-tilbakemeldinger ved fullført eller feilet oppgave. Interne nettverk og localhost er ikke tillatt. Eksempel: https://example.com/webhooks/seevio |
input | object | Ja | Genereringsinnstillinger. Må inneholde en prompt som ikke er tom. |
Inndataparametere
| Felt | Type | Påkrevd | Standardverdi | Beskrivelse og begrensninger |
|---|---|---|---|---|
input.prompt | string | Ja | — | Required non-empty prompt, up to 10000 characters. Eksempel: A minimalist ceramic teapot on a stone pedestal, soft studio lighting |
input.generation_type | string | Nei | text-to-image | For image editing, set generation_type to image-to-image and provide image_urls. All other parameters use the same contract. Støttede verdier text-to-image | image-to-image |
input.image_urls | string[] | Betinget | [] | 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. Eksempel: ["https://example.com/teapot.png"] |
input.aspect_ratio | string | Nei | auto | Skjermformat Støttede verdier auto | 1:1 | 9:16 | 16:9 | 3:4 | 4:3 | 3:2 | 2:3 | 5:4 | 4:5 | 21:9Eksempel: 1:1 |
input.resolution | string | Nei | 2K | Bruk en av de støttede oppløsningene som er oppført her. Støttede verdier 1K | 2K | 4KEksempel: 2K |
input.output_format | string | Nei | png | Støttede verdier png | jpgEksempel: png |
Aspect ratio defaults to auto. Unknown fields, including output quantity, are rejected. Each request generates exactly one image.
Hurtigstart
Send inn denne minimale forespørselen, ta vare på returnert taskId, og bruk deretter eksempelet for statusspørring nedenfor. Verdien for kreditter i opprettelsesresponsen er det reserverte beløpet.
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"
}
}'Eksempel på svar ved opprettelse av oppgave
{
"taskId": "3f2aK9mR7xQp4TnZ8bLc6YwH",
"credits": 4
}Tekst til bilde
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"
}
}'Bilde til bilde
For image editing, set generation_type to image-to-image and provide image_urls. All other parameters use the same contract.
Erstatt medie-URL-ene fra example.com med dine egne offentlig tilgjengelige HTTPS-filer. Eksempel-URL-ene illustrerer kun forespørselens struktur og er ikke nedlastbare filer.
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"
]
}
}'Spør om en oppgave
GET https://api.seevio.ai/v1/tasks/{taskId}Erstatt eksempel-ID-en med den taskId du fikk ved opprettelse. Statusspørringer returnerer kun oppgaver som tilhører brukeren av den gitte API-nøkkelen; utilgjengelige eller ukjente ID-er returnerer HTTP 404.
Start med å gjøre en spørring (poll) hvert 10.–20. sekund. Ved HTTP 429 bør du øke intervallet, og stoppe når statusen er completed eller failed. Vi anbefaler webhooks i produksjon. Hvert kodeeksempel nedenfor utfører én enkelt spørring.
curl --fail-with-body https://api.seevio.ai/v1/tasks/3f2aK9mR7xQp4TnZ8bLc6YwH \
-H "Authorization: Bearer $SEEVIO_API_KEY"| Status | Allowed values and requirements |
|---|---|
| queued | Mottatt og venter på å bli sendt til behandling. |
| generating | Generering pågår. |
| completed | Fullført med suksess. Last ned data.results før filene utløper. |
| failed | Feilet. Undersøk failed_reason og billing_status. |
| Field | Type | Allowed values and requirements |
|---|---|---|
| id | string | Oppgave-ID. Dette tilsvarer taskId fra opprettelsesresponsen. |
| created_at | number | Tidspunkt for opprettelse av oppgaven, oppgitt i Unix-sekunder. |
| model | string | Den offentlige modell-ID-en som ble brukt for denne oppgaven. |
| billing_status | string | reserved, charged, refunded eller refund_failed. |
| credits | number | Kreditter reservert for denne oppgaven. Denne verdien beholdes etter en refusjon; sjekk billing_status for å se det endelige faktureringsresultatet. |
| failed_reason | string | null | Årsak til feilen på oppgaver som har feilet; ellers null. Svar på statusspørringer som har feilet, utelater data. |
| data | object | Inkludert på vellykkede statusspørringer. Inneholder detaljer om resultat og behandling. |
| data.results | string[] | Liste med bilde-URL-er; tom før fullføring og etter utløp. |
| data.image_expires_at | string | null | Bildenes utløpstid i ISO 8601-format, eller null hvis utilgjengelig. |
| data.processing_time | number | null | Leverandørens behandlingstid i sekunder når tilgjengelig, ellers null. |
I kø
{
"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
}
}Fullført
{
"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
}
}Mislyktes
Når statusforespørselen returnerer status=failed, ble ikke genereringen fullført. Se failed_reason for årsaken, og billing_status for refusjonsstatusen. I dette eksempelet betyr refunded at kredittene har blitt refundert. credits viser det opprinnelige reserverte beløpet, og svaret inneholder ikke 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.
Webhooks
Angi callback_url i opprettelsesforespørselen for å motta en JSON POST når oppgaven er fullført eller feiler. Returner en 2xx-respons innen 15 sekunder. Meldinger som ikke blir levert, prøves på nytt; håndter gjentatte leveringer idempotent basert på oppgave-ID.
Ditt endepunkt for tilbakesending må godta POST-forespørsler med en JSON-meldingskropp (Content-Type: application/json).
Opprett en oppgave med callback
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.
Oppgave fullført: payload for vellykket tilbakesending
created_at er hendelsens opprettelsestid; task_created_at er oppgavens opprettelsestid, i Unix-sekunder. Eksemplene viser anbefalte felt; svar kan inneholde flere felt.
{
"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
}Oppgave mislyktes: payload for mislykket tilbakesending
{
"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
}Eksempel på mottaker (receiver)
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 });
}Dette Next.js-eksempelet leser JSON-tilbakesendingskroppen og håndterer fullførte og mislykkede oppgaver direkte. Legg til datalagring og deduplisering av oppgave-ID-er i applikasjonen din, og legg tidkrevende oppgaver i kø før tilbakesendingen bekreftes.
Feilmeldinger
HTTP-feil returnerer et error-objekt med code og message. En oppgave som ble mottatt uten feil, kan fortsatt mislykkes senere; sjekk status på oppgaven eller håndter feil via callback.
{
"error": {
"code": "invalid_request",
"message": "input.prompt is required."
}
}| HTTP | Felt | Løsning |
|---|---|---|
| 400 | invalid_request | Rett opp feil i JSON-strukturen, manglende prompt, feil parameterverdier eller ugyldige medie-URL-er før du prøver igjen. |
| 401 | invalid_api_key | Kontroller Bearer-tokenet og sjekk om API-nøkkelen er aktiv. |
| 402 | insufficient_credits | Fyll på kreditter eller reduser kostnaden for oppgaven. Svaret kan inneholde opplysninger om nødvendig og tilgjengelig saldo. |
| 403 | forbidden | Sjekk kontobegrensningen som er beskrevet i feilmeldingen. |
| 404 | not_found | Kontroller oppgave-ID-en og at nøkkelen tilhører eieren av oppgaven. |
| 429 | rate_limited | Vent i tidsrommet angitt i Retry-After før du prøver igjen. |
| 500 | internal_error | Undersøk feilmeldingen og API-loggene. Prøv igjen med forsiktighet; en ny innsending av forespørselen kan opprette en ny, betalbar oppgave. |
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.
Grenser for forespørsler (rate limits)
Opprett oppgaver: Hver API-nøkkel tillater som standard opptil 100 forespørsler i minuttet. Skreddersydde ratebegrensninger er foreløpig ikke tilgjengelig.
Hent oppgaver: Hver API-nøkkel tillater som standard opptil 120 forespørsler i minuttet. Forespørsler om opphenting og oppretting av oppgaver telles hver for seg.
Image and video creation requests share the same API key rate limit.
HTTP 429 inkluderer Retry-After: 60 for opprettelse og Retry-After: 5 for statusspørringer. Bruk gradvis økende ventetid (backoff) og unngå unødvendig hyppig polling.
HTTP/1.1 429 Too Many Requests
Content-Type: application/json
Retry-After: 60{
"error": {
"code": "rate_limited",
"message": "Rate limit exceeded."
}
}