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.

Available models and prices

Built from the live GET /v1/models price list: prices include our margin, in rubles and in dollars at the internal rate. Anything missing is temporarily not served by the gateway.

ModelUnit₽$Cost examplesEndpoint
gemini-image-2recommendedalso: nano-banana-2, gemini-3-flashper image2.4 ₽$0.027
1 generation: 2.4 ₽ · $0.027
10 generations: 24 ₽ · $0.267
/v1/images/generations
gemini-image-prorecommendedalso: nano-banana-pro, gemini-3-proper image2.64 ₽$0.029
1 generation: 2.64 ₽ · $0.029
10 generations: 26.4 ₽ · $0.293
/v1/images/generations
gemini-imagerecommendedalso: nano-banana, unspecifiedper image0.96 ₽$0.011
1 generation: 0.96 ₽ · $0.011
10 generations: 9.6 ₽ · $0.107
/v1/images/generations
nano-banana-2-literecommendedper image1.2 ₽$0.013
1 generation: 1.2 ₽ · $0.013
10 generations: 12 ₽ · $0.133
/v1/images/generations
nano-banana-pro-viprecommendedper image9.6 ₽$0.107
1 generation: 9.6 ₽ · $0.107
10 generations: 96 ₽ · $1.07
/v1/images/generations

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.

First request

One zc-sk-… key, the x-api-key header (or Authorization: Bearer), base URL https://zerocoder.com/api/v1. Samples are generated from the real route contracts.

1

Create a key

Account → API: top up the balance in rubles and create a zc-sk-… key

2

Send a request

Copy the sample below — the model id is already taken from the price list.

3

Check the charge

GET /v1/balance shows the balance; the call price comes back in the response.

model: gemini-3-flash
curl https://zerocoder.com/api/v1/images/generations \
  -H "x-api-key: zc-sk-…" -H "content-type: application/json" \
  -d '{"model": "gemini-3-flash", "prompt": "Studio photo of a ceramic coffee mug on a walnut table, soft window light", "aspect": "1:1"}'
# → {"created":…,"data":[{"url":"https://…"}]}   (the URL is temporary — download it)
import requests

r = requests.post("https://zerocoder.com/api/v1/images/generations",
    headers={"x-api-key": "zc-sk-…"},
    json={"model": "gemini-3-flash", "prompt": "Studio photo of a ceramic coffee mug on a walnut table, soft window light", "aspect": "1:1"})
r.raise_for_status()
print(r.json()["data"][0]["url"])
const r = await fetch("https://zerocoder.com/api/v1/images/generations", {
  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 coffee mug on a walnut table, soft window light", aspect: "1:1" }),
});
const { data } = await r.json();
console.log(data[0].url);

Image editing (/images/edits)

# JSON — image(s) by https URL or data URI, up to 4
curl https://zerocoder.com/api/v1/images/edits \
  -H "x-api-key: zc-sk-…" -H "content-type: application/json" \
  -d '{"model": "gemini-3-flash", "prompt": "Make it a night scene", "image": "https://example.com/photo.jpg", "aspect": "16:9"}'

# 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 prompt="Make it a night scene" -F aspect=16:9 \
  -F "image[]=@photo1.jpg" -F "image[]=@photo2.jpg"

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

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

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'

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 p87
Используя прикреплённое референс-фото только как основу для лица, сохрани 100% с29
Любительское вечернее фото в помещении, ощущение спонтанного кадра. Девушка сиди22
Ультраблизкий гиперреалистичный портрет, фотореализм, документальная подача, све13
Используя прикреплённое референс-фото только как основу для лица, сохрани 100% с32
Реалистичное ночное фото с телефона, 9:16. Камера находится сзади чёрного Merced25
Не меняя внешности мужчины с фото ни на 1% Кинематографичный снимок привлекатель15
Фотореалистичная черно-белая спортивная фотография в профессиональном боксерском9
ModelDateLikesPrompt
Nano Banana 24 September 202687Ultra-realistic black and white studio portrait of the uploaded man, wearing a perfectly tailored black suit, white dress shirt and black ti
Nano Banana23 July 202632Используя прикреплённое референс-фото только как основу для лица, сохрани 100% сходство внешности. В кадре ровно четыре человека: один задер
Nano Banana30 July 202629Используя прикреплённое референс-фото только как основу для лица, сохрани 100% сходство внешности без изменений. Парень идёт в сторону полно
Nano Banana 212 August 202625Реалистичное ночное фото с телефона, 9:16. Камера находится сзади чёрного Mercedes-Benz G63 AMG и направлена сверху вниз через открытое води
Nano Banana 22 September 202622Любительское вечернее фото в помещении, ощущение спонтанного кадра. Девушка сидит на полу или низком пуфе среди больших роскошных букетов ро
Nano Banana9 August 202615Не меняя внешности мужчины с фото ни на 1% Кинематографичный снимок привлекательного мужчины одет в брюки и рубашку мультикам без татуировок
Nano Banana 29 August 202613Ультраблизкий гиперреалистичный портрет, фотореализм, документальная подача, сверхдетализация кожи, глаз, ресниц и текстуры ткани Черно- бел
Nano Banana 228 August 20269Фотореалистичная черно-белая спортивная фотография в профессиональном боксерском зале. Современный ринг, канаты на заднем плане, индустриаль

FAQ

How is Nano Banana Pro different from the standard model?

Pro is the larger model: it follows complex prompts more precisely, renders text and fine detail better and costs more per image. The standard and Lite tiers are for bulk generation and drafts.

Can I edit my own photos through the Nano Banana API?

Yes — via /api/v1/images/edits: send one or more images (https URLs, data URIs or multipart) plus an instruction. The model keeps the composition and character and changes only what you asked.

How do I get a Nano Banana API key?

Sign up at Zerocoder, open the API section of your account and create a zc-sk-… key. The same key unlocks Nano Banana and every other model in the catalogue — no separate Nano Banana key needed.

How is Nano Banana API billed?

Top up the API balance in rubles (Russian bank card or invoice for companies). Usage is charged per Nano Banana image at the price returned by GET /v1/models; Nano Banana prices already include our margin, there are no hidden fees.

What if Nano Banana fails to generate the image?

If the provider fails a Nano Banana generation, the charge is refunded automatically and the response carries refunded: true. You only pay for a finished image.

What are the Nano Banana API rate limits?

A shared limit of 30 requests per minute per key across all generation endpoints, Nano Banana included. Above that you get 429 rate_limit_error; for higher Nano Banana volumes contact us and we raise it individually.

Do I need a VPN or a foreign card for Nano Banana API?

No. Nano Banana requests go to zerocoder.com, payment is in rubles, and accounting documents are available on request.

Can I try Nano Banana without code?

Yes: Nano Banana is available in the Zerocoder studio and in the free tools catalogue — check the quality by hand, then wire up the Nano Banana API.

AI API for your product

70% cheaper than the official APIs — one key for GPT, Claude, Gemini, images and video