Google · Images · API

Nano Banana API — ruble pricing and a 5-minute setup

Nano Banana API (Gemini Image) with ruble billing: image generation and editing through one Zerocoder key. Per-image pricing, OpenAI Images, samples, limits.

What Nano Banana is

Nano Banana is Google's (Gemini) image family for generation and editing. Through Zerocoder you call it as a plain HTTP API: send a prompt, get back an image URL. The family covers five tiers, from a fast cheap model to a pro vip tier, so you pick quality versus cost per request.

The family is strong at following detailed prompts, handling edits on existing images (up to four references in one call), and producing clean results across common aspect ratios for web, social and product shots.

What Zerocoder adds

  • One API key that works for every model in the catalog, not just Nano Banana
  • A single ruble wallet shared across models, separate from studio credits
  • Payment by Russian bank card or company invoice — no foreign card or VPN needed
  • Docs and a key management cabinet on the site
  • Request and response shapes that match common SDK conventions, so existing HTTP client code needs minimal changes

How a request works

You send a POST request with your prompt, the model id, and either a size or an aspect ratio. For edits, you also attach one or more source images. The API replies with a short JSON object containing a URL to the generated image.

That URL is temporary — fetch and store the file right after the response arrives. Every image is billed at the moment of the request; if the provider itself fails, the charge is refunded automatically in the same response.

Models and prices

The live GET /v1/models price list in rubles and dollars. Where we are cheaper, the vendor's official price for the same unit is struck through. Endpoint: /v1/images/generations

Model prices in rubles and dollars; where we are cheaper, the vendor's official price for the same unit is struck through
ModelPriceUnitDiscount
Nano Banana 2recommendedgemini-image-2 · Googlealso: nano-banana-2, gemini-3-flash
Official price: 6.03 ₽, Zerocoder price: 2.4 ₽$0.027per imageofficial: $0.067 · 1K-60%
Nano Banana Progemini-image-pro · Googlealso: nano-banana-pro, gemini-3-pro
Official price: 12.1 ₽, Zerocoder price: 2.64 ₽$0.029per imageofficial: $0.134 · 1K/2K-78%
Nano Bananagemini-image · Googlealso: nano-banana, unspecified
Official price: 3.51 ₽, Zerocoder price: 0.96 ₽$0.011per imageofficial: $0.039 · 1024×1024-72%
Nano Banana 2 Litenano-banana-2-lite · Google
Official price: 3.02 ₽, Zerocoder price: 1.2 ₽$0.013per imageofficial: $0.0336 · 1K-60%
Nano Banana Pro VIPnano-banana-pro-vip · Google
Official price: 12.1 ₽, Zerocoder price: 9.6 ₽$0.107per imageofficial: $0.134 · 1K/2K-20%
Nano Banana 2.1nano-banana-2.1 · Google
2.4 ₽$0.027per image—
Struck-through prices are the vendors’ official rates from their own pages: Google — checked 4 October 2026. Dollars at the internal rate 1 $ = 90 ₽; the Zerocoder price includes ruble billing and no-VPN access.

Cost calculator

Pick a model and a volume — the calculator uses the same formulas as API billing.

per image2.4 ₽ $0.027
per month · 1024 ₽ $0.267

Prices from GET /v1/models, internal exchange rate. Failed generations are not charged.

  1. Get a keyin the API dashboard
  2. Top up the walletin rubles: card, SBP or invoice
  3. Make the callPOST /v1/images/generations, model gemini‑3‑flash
First request

Connect the Nano Banana API: a key and one POST

An OpenAI-Images-style request: POST /v1/images/generations with model, prompt and aspect. One image per call (n = 1); the response is a link in data[0].url, not b64_json — download the file right away. Photo edits go to POST /v1/images/edits.

Base URL
https://zerocoder.com/api/v1

Key — in the x-api-key or Authorization: Bearer header

Model in the samples — gemini-3-flash; any model from the table works

import requests URL = "https://zerocoder.com/api/v1/images/generations"H = {"x-api-key": "zc-sk-…"} r = requests.post(URL, headers=H, json={    "model": "gemini-3-flash",    "prompt": "Studio photo of a ceramic mug, soft light",    "aspect": "1:1",  # or 16:9 / 9:16 / 4:3 / 3:4})r.raise_for_status()# n=1: one image per call, as a URL (no b64_json)print(r.json()["data"][0]["url"])
const endpoint =  "https://zerocoder.com/api/v1/images/generations";const r = await fetch(endpoint, {  method: "POST",  headers: {    "x-api-key": "zc-sk-…",    "content-type": "application/json",  },  body: JSON.stringify({    model: "gemini-3-flash",    prompt: "Studio photo of a ceramic mug, soft light",    aspect: "1:1",  }),});const out = await r.json();if (!r.ok) throw new Error(out.error.message);console.log(out.data[0].url); // n=1, a URL (no b64_json)
curl https://zerocoder.com/api/v1/images/generations \  -H "x-api-key: zc-sk-…" \  -H "content-type: application/json" \  -d '{"model": "gemini-3-flash", "aspect": "1:1",       "prompt": "Studio photo of a ceramic mug, soft light"}'# → {"created":…,"data":[{"url":"https://…"}]}# n=1: one image per call, a URL (no b64_json);# the URL is temporary — download the file right away
# JSON — image(s) by https URL or data URI, up to 4curl https://zerocoder.com/api/v1/images/edits \  -H "x-api-key: zc-sk-…" \  -H "content-type: application/json" \  -d '{"model": "gemini-3-flash", "aspect": "16:9",       "prompt": "Make it a night scene",       "image": "https://example.com/photo.jpg"}' # multipart — files from disk (≤ 8 MB each)curl https://zerocoder.com/api/v1/images/edits \  -H "x-api-key: zc-sk-…" \  -F model=gemini-3-flash -F aspect=16:9 \  -F prompt="Make it a night scene" \  -F "image[]=@photo1.jpg" -F "image[]=@photo2.jpg"
// Live price comparisongemini-3-flash · per image
  • Zerocoder-60%$0.027
  • Official API$0.067

Google list price (Nano Banana 2 (Gemini 3.1 Flash Image), 1K); checked 4 October 2026

How to connect the Nano Banana API: first request in 5 minutes

From a key to production — six steps based on the real /api/v1 contracts. Each step links to the relevant docs section.

  1. 1

    Get a key in your account

    Sign up, open the API section of your account, top up the balance in rubles and create a zc-sk-… key. One key unlocks Nano Banana and every other model in the catalogue.

    Read more →
  2. 2

    Send the first request

    POST /v1/images/generations with model, prompt and aspect or size — the response has data[0].url with the finished Nano Banana image.

    Read more →
  3. 3

    Save the result and try edits

    The image URL is temporary — download the file to your own storage right away. For edits use /v1/images/edits: up to four source images by https URL, data URI or multipart, up to 8 MB each.

    Read more →
  4. 4

    Handle limits and errors

    30 requests per minute per key: on 429 wait and retry with a growing pause; 402 — top up the balance; 400 — check model against GET /v1/models. Failed generations are not charged, so retrying is safe.

    Read more →
  5. 5

    Watch the budget

    GET /v1/balance returns the balance and 30-day spend; every call's price comes back in the response — write it to your logs and set an alert threshold in your own monitoring.

    Read more →
  6. 6

    Ship to production

    Keep the key in server secrets, never in the frontend. For high Nano Banana volumes contact us — the limit is raised individually and companies can pay by invoice. Check the observed stability on the status page.

    Read more →

No code

Any tool that can make an HTTP request can call our API: one POST with the x-api-key header.
HTTP Requestn8n

HTTP Request node: POST to the /api/v1 endpoint, x-api-key header and a JSON body built from workflow fields. For video add a Wait node and a second HTTP Request on GET ?id= in a loop until completed.

HTTP → Make a requestMake

HTTP “Make a request” module: POST, Body type JSON, x-api-key header. The response is parsed automatically — the image url or the answer text flows into the next modules.

Webhooks by ZapierZapier

Webhooks by Zapier → Custom Request action: POST, Data — JSON with model and prompt, Headers — x-api-key. Response fields are available to the following Zap steps.

Apps ScriptGoogle Sheets

In Apps Script use UrlFetchApp.fetch with method post, contentType application/json and a payload from the cells: prompts in one column, results written to the next one.

any bot frameworkTelegram bot

A bot on aiogram, grammY or Telegraf calls the same HTTP API: user message → model request → reply in the chat. For video — poll the status and send the file from the finished URL.

OpenAI-compatible base URLPython / Node SDK

For text models the official OpenAI and Anthropic SDKs work with a swapped base URL and our key — your application code stays the same. Images and video are a plain HTTP call from any language.

For business

We'll help bring AI into your business

More than a key: we help wire Nano Banana and other models into your workflows — from audit to production, with invoice payment.

  • Process auditWe find where AI pays off in your workflows: support, sales, content, documents — and name specific scenarios and models.
  • Integration into CRM, website, Telegram, n8nWired through our API or ready no-code scenarios; one key and a shared balance for every model.
  • Ruble payment by invoiceCompanies get an invoice for bank transfer, accounting documents and a top-up of the API balance.
  • Support and limitsHelp with prompts and architecture, request limits raised individually for your load.

Inputs, limits and refunds

  • Generation: prompt + aspect 1:1 / 16:9 / 9:16 / 4:3 / 3:4 or size 1024x1024 / 1792x1024 / 1024x1792
  • Editing: up to 4 images — https URLs, data URIs or multipart
  • Up to 8 MB per file, 48 MB per request (413 otherwise)
  • The result URL is temporary — save the file right away
  • Provider failure — nothing is charged
  • 30 requests per minute per key (all endpoints combined)

Error responses and refunds

# 401 {"type":"error","error":{"type":"authentication_error","message":"Invalid or revoked API key."}}
# 402 {"type":"error","error":{"type":"billing_error","message":"Not enough API balance: …"}}
# 429 {"type":"error","error":{"type":"rate_limit_error","message":"…"}}   ← 30 requests/min per key
# 400 {"type":"error","error":{"type":"invalid_request_error","message":"Unknown model \"…\". See GET /v1/models."}}
# 413 {"type":"error","error":{"type":"invalid_request_error","message":"…"}}   ← > 8 MB per file / > 48 MB body
# 502 {"type":"error","error":{"type":"api_error","message":"…"}}                ← provider failed → nothing charged

Observed stability of the API and image generation

Numbers come from the public /status summary: the share of successful requests over a period for the whole API and for the category as a whole (the summary has no per-model breakdown), no SLA promises. Failed generations are not charged, so retrying is safe.

Developer APIoperational

—now (2 h window)
78.5%last 30 days
78.5%last 90 days

Image generationoperational

—now (2 h window)
91.5%last 30 days
90.5%last 90 days

Refunds and charges

  • Provider failure — nothing is charged
  • Oversized file — 413 before any charge
  • The result URL is temporary — save the file right away

Tracking since Aug 6, 2026.

Use cases

1

Generate product mockups on demand inside an e-commerce admin panel

2

Build a Telegram bot that turns user prompts into illustrations

3

Batch-create blog cover images in a CMS publishing pipeline

4

Let a design tool edit uploaded photos based on short text instructions

5

Automate marketing banner variants for A/B testing in an internal tool

6

Swap backgrounds or outfits in user avatars for a social app feature

Real results

Works by Zerocoder users made with this model: preview, resolution, duration and date. Nothing was generated specifically for this page.

Ultra-realistic black and white studio portrait of the uploaded man, wearing a p102
Используя прикреплённое референс-фото только как основу для лица, сохрани 100% с38
Используя прикреплённое референс-фото только как основу для лица, сохрани 100% с30
Не меняя внешности мужчины с фото ни на 1% Кинематографичный снимок привлекатель15
Любительское вечернее фото в помещении, ощущение спонтанного кадра. Девушка сиди40
Реалистичное ночное фото с телефона, 9:16. Камера находится сзади чёрного Merced33
Ультраблизкий гиперреалистичный портрет, фотореализм, документальная подача, све16
сделай лицо более размытым, как будто сфотографировали в движении13
ModelDateLikesPrompt
Nano Banana 24 September 2026102Ultra-realistic black and white studio portrait of the uploaded man, wearing a perfectly tailored black suit, white dress shirt and black ti
Nano Banana 22 September 202640Любительское вечернее фото в помещении, ощущение спонтанного кадра. Девушка сидит на полу или низком пуфе среди больших роскошных букетов ро
Nano Banana23 July 202638Используя прикреплённое референс-фото только как основу для лица, сохрани 100% сходство внешности. В кадре ровно четыре человека: один задер
Nano Banana 212 August 202633Реалистичное ночное фото с телефона, 9:16. Камера находится сзади чёрного Mercedes-Benz G63 AMG и направлена сверху вниз через открытое води
Nano Banana30 July 202630Используя прикреплённое референс-фото только как основу для лица, сохрани 100% сходство внешности без изменений. Парень идёт в сторону полно
Nano Banana 29 August 202616Ультраблизкий гиперреалистичный портрет, фотореализм, документальная подача, сверхдетализация кожи, глаз, ресниц и текстуры ткани Черно- бел
Nano Banana9 August 202615Не меняя внешности мужчины с фото ни на 1% Кинематографичный снимок привлекательного мужчины одет в брюки и рубашку мультикам без татуировок
Nano Banana 227 August 202613сделай лицо более размытым, как будто сфотографировали в движении

Prompting tips

  • Describe framing and composition explicitly: subject position, camera angle, foreground versus background
  • Name materials and style directly — matte plastic, brushed metal, watercolor, flat vector — instead of vague adjectives
  • State the light source and mood: soft window light, harsh noon sun, neon backlight, overcast
  • Pick aspect to match the placement: 16:9 for banners, 9:16 for stories, 1:1 for avatars, 4:3 or 3:4 for print-like crops
  • For edits, say exactly what to change and what to keep, e.g. 'change the jacket color, keep the face and pose'

Ready-made prompts for Nano Banana

Copy the prompt and the parameters into the request body — the fields are named exactly as in the /api/v1 contract. Replace the angle-bracket placeholders with your material.

Product card on white

Studio product photo of a ceramic coffee mug on a pure white background, soft shadows, centered, e-commerce catalog style
aspect: 1:1

Lifestyle scene for the same product

The same ceramic mug on a wooden cafe table next to a croissant, morning window light, shallow depth of field
aspect: 4:3

Background swap (edits)

Replace the background with a sunlit kitchen counter, keep the product, its shadows and colors unchanged
endpoint: /v1/images/editsimage: https://…/photo.jpgaspect: 1:1

Combine two references (edits)

Put the sneaker from the first image on the model from the second image, match lighting and perspective
endpoint: /v1/images/editsimage: [url1, url2]

Up to four source images per request.

Infographic

Clean isometric infographic of a three-step delivery process: warehouse, truck, doorstep, flat colors, empty label areas for text
aspect: 16:9

Profile avatar

Friendly illustrated avatar of a smiling person with short curly hair and round glasses, soft gradient background, vector style
aspect: 1:1

Who the Nano Banana API is for

Industries where this kind of generation becomes part of the workflow rather than an experiment.

E-commerceCards on white and lifestyle scenes without a studio — Nano Banana from your admin panel.
Marketplaces & retailPromo banners, product infographics, variants for every channel.
Media & socialCovers and post illustrations in one consistent brand style.
EdTechLesson illustrations, diagrams and task cards.
Agencies & designMoodboards, concepts and dozens of options in minutes before manual polish.
Real estate & autoBackground swaps and clean-ups with Nano Banana edits — tidy listing photos.

FAQ

How much does the Nano Banana API cost per image?

Nano Banana is billed per finished image — each version has its own per-image price in the table above and in GET /v1/models, in rubles. Generation and editing via /v1/images/edits cost the same for a given version; a batch is the price times the number of images. The calculator on this page shows the total up front.

How do I generate an image with the Nano Banana API from Python?

The request is OpenAI-Images-compatible: POST /v1/images/generations with the x-api-key header and a body of model, prompt and aspect — the response carries data[0].url with the finished image. Use the official OpenAI SDK with base_url set to zerocoder.com/api/v1, or plain requests. The Nano Banana sample is in the “First request” block above.

What are the Nano Banana API limits on image size and format?

The aspect ratio is set with aspect — 1:1, 16:9, 9:16, 4:3 or 3:4 — or with size such as 1024x1024, 1792x1024, 1024x1792. One request produces one Nano Banana image (n above one is not supported). Editing accepts up to 4 images of 8 MB each. The shared key limit is 30 requests per minute.

How do I choose a Nano Banana version and its id?

All Nano Banana versions are listed in the table and in GET /v1/models. Pro is for complex prompts, legible lettering and fine detail; the standard version is the all-round choice for product cards and illustrations; Lite is for bulk drafts at the lowest per-image price. If the model field is omitted, the default version from the price list is used.

Am I charged if Nano Banana does not return an image?

No. If the provider fails to generate or edit the picture, Nano Banana charges nothing — the request ends with an error and the balance is unchanged. Only responses with a finished link in data[0].url are paid for. If the link expires before you download the file, a repeat request is a new paid generation — save the result immediately.

Can a business pay for the Nano Banana API by invoice?

Yes. A legal entity requests an invoice in the API account, pays by bank transfer, and the amount is credited to the API balance — the key for Nano Banana and other models stays the same. Russian bank cards top up the balance instantly; accounting documents are available on request. No Google account or dollar payments needed.

Are there free generations in the Nano Banana API?

The API itself has no free images: the wallet starts with a minimum first top-up and every Nano Banana generation is charged at the list price. You can check for free how the model handles your prompts and photo edits in the Zerocoder studio and the Nano Banana tool in the catalogue — then repeat the same requests via the API.

How do I edit photos with the Nano Banana API and keep the character?

Send POST /v1/images/edits: the source as an https URL, a data URI or a multipart file, the instruction in prompt as one phrase (“make it evening light”). Nano Banana changes only what you asked while keeping the composition and the person's look; up to 4 references in images[] are merged into one scene — handy for carrying a character across images.

AI API for your product

Up to -78% vs the official API · ruble billing, no VPN