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/generationsOminaisuudet
| Ominaisuus | Tuetut arvot |
|---|---|
| Luontitilat | text-to-image, image-to-image |
| Tulostarkkuus | 1K, 2K, 4K |
| Kuvasuhde | auto, 1:1, 9:16, 16:9, 3:4, 4:3, 3:2, 2:3, 5:4, 4:5, 21:9 |
| Viitekuvat | 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. |
| Kehote | Required non-empty prompt, up to 10000 characters. |
| Tulostusmuoto | png, jpg |
Hinnoittelu ja krediitit
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.
Autentikointi
Luo API-avain hallintapaneelissa. Täydellinen avain näytetään vain kerran. Säilytä se turvallisesti palvelimellasi ja lähetä se Bearer-tokenina jokaisen pyynnön yhteydessä.
Perus-URL
https://api.seevio.aiAuthorization: Bearer sk_live_your_api_key
Content-Type: application/jsonAseta SEEVIO_API_KEY-ympäristömuuttuja ennen näiden esimerkkien suorittamista. JavaScript-esimerkit ajetaan palvelimellasi Node.js-ympäristössä; Python-esimerkeissä käytetään requests-kirjastoa.
Pyyntörunko
| Kenttä | Tyyppi | Pakollinen | Kuvaus ja rajoitukset |
|---|---|---|---|
model | string | Kyllä | Mallitunnus. Jos haluat käyttää mallia Nano Banana Pro, määritä tämän kentän arvoksi nano-banana-pro. |
callback_url | string | Ei | Julkinen HTTPS-päätepiste onnistuneille ja epäonnistuneille POST-kutsuille. Yksityisiä verkkoja tai localhost-osoitteita ei sallita. Esimerkki: https://example.com/webhooks/seevio |
input | object | Kyllä | Luontiasetukset. Pitää sisältää prompt-tekstisyöte, joka ei ole tyhjä. |
Syöteparametrit
| Kenttä | Tyyppi | Pakollinen | Oletus | Kuvaus ja rajoitukset |
|---|---|---|---|---|
input.prompt | string | Kyllä | — | Required non-empty prompt, up to 10000 characters. Esimerkki: A minimalist ceramic teapot on a stone pedestal, soft studio lighting |
input.generation_type | string | Ei | text-to-image | For image editing, set generation_type to image-to-image and provide image_urls. All other parameters use the same contract. Tuetut arvot text-to-image | image-to-image |
input.image_urls | string[] | Ehdollinen | [] | 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. Esimerkki: ["https://example.com/teapot.png"] |
input.aspect_ratio | string | Ei | auto | Kuvasuhde Tuetut arvot auto | 1:1 | 9:16 | 16:9 | 3:4 | 4:3 | 3:2 | 2:3 | 5:4 | 4:5 | 21:9Esimerkki: 1:1 |
input.resolution | string | Ei | 2K | Käytä jotain tässä luetelluista tuetuista kuvasuhteista. Tuetut arvot 1K | 2K | 4KEsimerkki: 2K |
input.output_format | string | Ei | png | Tuetut arvot png | jpgEsimerkki: png |
Aspect ratio defaults to auto. Unknown fields, including output quantity, are rejected. Each request generates exactly one image.
Pika-aloitus
Lähetä tämä minimipyyntö, tallenna palautettu taskId ja käytä alla olevaa tehtäväkyselyn esimerkkiä. Luontivastauksessa näkyvä krediittisumma on varattu enimmäismäärä.
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"
}
}'Esimerkki tehtävän luonnin vastauksesta
{
"taskId": "3f2aK9mR7xQp4TnZ8bLc6YwH",
"credits": 4
}Tekstistä kuvaksi
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"
}
}'Kuvasta kuvaksi
For image editing, set generation_type to image-to-image and provide image_urls. All other parameters use the same contract.
Korvaa example.com-esimerkkiosoitteet omilla julkisilla HTTPS-tiedostoillasi. Esimerkki-URL-osoitteet on tarkoitettu havainnollistamaan pyynnön rakennetta, eivätkä ne ole ladattavia esimerkkiversioita.
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"
]
}
}'Tehtävän kysely
GET https://api.seevio.ai/v1/tasks/{taskId}Korvaa esimerkkitunnus luonnin yhteydessä palautetulla taskId-tunnuksella. Kyselyt palauttavat vain ne tehtävät, jotka kuuluvat kyseisen API-avaimen käyttäjälle; tuntemattomat tunnukset palauttavat virheen HTTP 404.
Tee kyselyitä aluksi 10–20 sekunnin välein, hidasta tahtia, jos saat virheen HTTP 429, ja lopeta kyselyt, kun tilaksi vaihtuu completed tai failed. Suosi webhookeja tuotantoympäristössä. Jokainen alla oleva koodiesimerkki tekee yhden kyselyn.
curl --fail-with-body https://api.seevio.ai/v1/tasks/3f2aK9mR7xQp4TnZ8bLc6YwH \
-H "Authorization: Bearer $SEEVIO_API_KEY"| Tila | Allowed values and requirements |
|---|---|
| queued | Hyväksytty ja odottaa käsittelyä jonossa. |
| generating | Kuvan luominen on käynnissä. |
| completed | Valmis (onnistunut). Lataa tulokset osoitteesta data.results ennen niiden vanhenemista. |
| failed | Valmis (epäonnistunut). Tarkista kentät failed_reason ja billing_status. |
| Field | Tyyppi | Allowed values and requirements |
|---|---|---|
| id | string | Tehtävän tunniste. Vastaa luontivastauksen kenttää taskId. |
| created_at | number | Tehtävän luontiaika Unix-aikana (sekunteina). |
| model | string | Tässä tehtävässä käytetty julkinen mallitunnus. |
| billing_status | string | reserved, charged, refunded tai refund_failed. |
| credits | number | Tehtävälle varatut krediitit. Tämä arvo säilyy hyvityksen jälkeen; tarkista lopullinen laskutustulos kentästä billing_status. |
| failed_reason | string | null | Epäonnistumisen syy virheellisissä tehtävissä; muuten null. Epäonnistuneiden tehtävien kyselyvastauksista puuttuu data-kenttä. |
| data | object | Mukana onnistuneissa tehtäväkyselyissä. Sisältää valmiin tiedoston tiedot ja käsittelytiedot. |
| data.results | string[] | Kuvien URL-taulukko; tyhjä ennen valmistumista ja vanhenemisen jälkeen. |
| data.image_expires_at | string | null | Kuvien vanhenemisaika ISO 8601 -muodossa, tai null jos ei saatavilla. |
| data.processing_time | number | null | Palveluntarjoajan käsittelyaika sekunteina, jos saatavilla; muuten null. |
Jonossa
{
"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
}
}Valmis
{
"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
}
}Epäonnistunut
Kun kysely palauttaa arvon status=failed, luonti on epäonnistunut. Kohdasta failed_reason näet virheen syyn ja kohdasta billing_status hyvityksen tilanteen. Tässä esimerkissä tila refunded tarkoittaa, että krediitit on palautettu. credits-kentässä näkyy alkuperäinen varattu määrä, eikä vastaus sisällä data-kenttää.
{
"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.
Webhookit
Aseta callback_url-osoite luontipyyntöön vastaanottaaksesi JSON-muotoisen POST-kutsun, kun tehtävä valmistuu tai epäonnistuu. Palauta 2xx-vastaus 15 sekunnin kuluessa. Epäonnistuneita lähetyksiä yritetään uudelleen; käsittele toistuvat kutsut idempotentisti tehtävätunnuksen (task ID) perusteella.
Takaisinkutsun päätepisteen on hyväksyttävä POST-pyyntöjä, joiden runko on JSON-muotoinen (Content-Type: application/json).
Luo tehtävä webhook-paluukutsulla
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.
Tehtävä valmis: onnistuneen kutsun hyötykuorma
created_at on tapahtuman luontiaika ja task_created_at tehtävän luontiaika Unix-sekunteina. Esimerkit näyttävät suositellut kentät; vastaukset voivat sisältää lisäkenttiä.
{
"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
}Tehtävä epäonnistui: epäonnistuneen kutsun hyötykuorma
{
"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
}Esimerkki vastaanottimesta
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 });
}Tässä Next.js-esimerkissä luetaan JSON-muotoinen takaisinkutsun runko ja käsitellään onnistuneet sekä epäonnistuneet tehtävät suoraan. Lisää sovellukseesi tiedon säilytys ja tehtävätunnusten (task-ID) duplikaattien poisto. Aseta hitaat työt jonoon ennen takaisinkutsun kuittaamista.
Virheet
HTTP-virheiden yhteydessä palautetaan error-objekti, jossa on kentät code ja message. Onnistuneesti vastaanotettu tehtävä voi silti epäonnistua myöhemmin; tee tehtäväkysely tai käsittele epäonnistumisesta tuleva webhook-kutsu.
{
"error": {
"code": "invalid_request",
"message": "input.prompt is required."
}
}| HTTP | Kenttä | Toimenpide |
|---|---|---|
| 400 | invalid_request | Korjaa JSON-rakenne, puuttuva prompt-syöte, parametrien arvot tai median URL-osoite ennen uutta yritystä. |
| 401 | invalid_api_key | Tarkista Bearer-token ja varmista, että API-avain on aktiivinen. |
| 402 | insufficient_credits | Lisää krediittejä tai pienennä tehtävän kulua. Vastaus voi sisältää tiedon vaaditusta ja käytettävissä olevasta krediittimäärästä. |
| 403 | forbidden | Tarkista virheilmoituksessa mainittu tilitasoinen rajoitus. |
| 404 | not_found | Tarkista tehtävätunnus (task ID) ja varmista, että API-avain kuuluu tehtävän luoneelle käyttäjälle. |
| 429 | rate_limited | Odota Retry-After-otsikossa määritetty aika ennen kuin yrität uudelleen. |
| 500 | internal_error | Tarkista virheilmoitus ja API-logit. Yritä uudelleen harkiten; uuden luontipyynnön lähettäminen voi luoda uuden veloitettavan tehtävän. |
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.
Käyttörajat
Tehtävien luonti: kukin API-avain sallii oletusarvoisesti enintään 100 pyyntöä minuutissa. Mukautettuja pyyntörajoituksia ei ole tällä hetkellä saatavilla.
Tehtävien kyselyt: kukin API-avain sallii oletusarvoisesti enintään 120 pyyntöä minuutissa. Kyselypyynnöt ja tehtävien luontipyynnöt lasketaan erikseen.
Image and video creation requests share the same API key rate limit.
Virhe HTTP 429 sisältää otsikon Retry-After: 60 luontipyynnöille ja Retry-After: 5 kyselyille. Käytä viivästettyjä uusintayrityksiä (backoff) ja vältä tarpeettoman tiheitä kyselyitä.
HTTP/1.1 429 Too Many Requests
Content-Type: application/json
Retry-After: 60{
"error": {
"code": "rate_limited",
"message": "Rate limit exceeded."
}
}