Mage API · Image model

Nano Banana 2 API

Crisp, readable text, up to 4K

Get an API keyTry Nano Banana 2 in the playground
POST https://api.mage.space/v1/nano_banana_v2/generate

At a glance

The Nano Banana 2 API runs Nano Banana 2 through Mage at POST https://api.mage.space/v1/nano_banana_v2/generate. A request at the default settings costs 68 Gems (about $0.068), with no subscription. Nano Banana 2 takes saved characters, references by @handle in the prompt.

Overview

What the Nano Banana 2 API does

Google's image model for graphics and marketing content with legible text. Generates or edits from up to 14 reference images at up to 4K. Google's safety filter applies.

Google's Nano Banana 2, for graphics with readable text and edits from up to 14 reference images, up to 4K. Google's safety filter applies.

It accepts image, additional_images as inputs.

Quick start

Call the Nano Banana 2 API

Set MAGE_API_KEY, submit to /nano_banana_v2/generate, and poll status_url until the request completes.

cURL
STATUS_URL=$(curl --request POST 'https://api.mage.space/v1/nano_banana_v2/generate' \
  --header "Authorization: Bearer $MAGE_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{
  "prompt": "Editorial portrait in soft daylight, 35mm film look",
  "aspect_ratio": "1:1",
  "model_id": "nano-banana-v2"
}' | jq -r '.status_url')

# Repeat until status is "completed"; result.url is the file
curl "$STATUS_URL" --header "Authorization: Bearer $MAGE_API_KEY"
Python
import os, time, requests

headers = {"Authorization": f"Bearer {os.environ['MAGE_API_KEY']}"}
request = requests.post(
    "https://api.mage.space/v1/nano_banana_v2/generate",
    headers=headers,
    json={
      "prompt": "Editorial portrait in soft daylight, 35mm film look",
      "aspect_ratio": "1:1",
      "model_id": "nano-banana-v2"
    },
).json()

while request["status"] in ("queued", "in_progress"):
    time.sleep(3)
    request = requests.get(request["status_url"], headers=headers).json()

print(request["status"], request["result"] and request["result"]["url"])
JavaScript
const headers = {
  Authorization: `Bearer ${process.env.MAGE_API_KEY}`,
  'Content-Type': 'application/json',
};
let request = await fetch('https://api.mage.space/v1/nano_banana_v2/generate', {
  method: 'POST',
  headers,
  body: JSON.stringify({
    "prompt": "Editorial portrait in soft daylight, 35mm film look",
    "aspect_ratio": "1:1",
    "model_id": "nano-banana-v2"
  }),
}).then((response) => response.json());

while (['queued', 'in_progress'].includes(request.status)) {
  await new Promise((resolve) => setTimeout(resolve, 3000));
  request = await fetch(request.status_url, { headers }).then((r) => r.json());
}

console.log(request.status, request.result?.url);

Models

Nano Banana 2 model_id values

Send model_id to pick a variant. A request without one runs the default.

model_idNameDefault
nano-banana-v2Nano Banana 2Yes

Options

Nano Banana 2 parameters

Allowed values across all variants; a variant may offer fewer. The docs list the options per variant.

FieldValues
aspect_ratio1:1, 3:2, 2:3, 3:4, 4:1, 4:3, 4:5, 5:4, 8:1, 9:16, 16:9, 21:9
resolution512, 1K, 2K, 4K

Inputs

Media inputs Nano Banana 2 accepts

Send each as an https URL, a data URL, or an upload of up to 100 MB.

FieldRole
imageThe reference image.
additional_imagesAdditional reference images.

More image models

Other image generation APIs on Mage

Image · from 15 Gems

SDXL Plus API

SDXL with faces and hands fixed

Image · from 10 Gems

Stable Diffusion v1.5 API

The classic, on a budget

Image · from 10 Gems

Stable Diffusion v3.5 Large API

The Stable Diffusion that listens best

Image · from 10 Gems

Stable Diffusion XL API

Photoreal-tuned SDXL

Image · from 10 Gems

Z-Image API

The fastest image model on Mage

Image · from 20 Gems

Anima API

Purpose-built for anime

FAQ

Frequently asked questions

How much does the Nano Banana 2 API cost?

A Nano Banana 2 request at the default settings (Nano Banana 2) costs 68 Gems, about $0.068. Other resolutions, durations, and variants change the price; the response reports the exact charge. A generation that fails is refunded; one Mage's content policy blocks is not.

What is the Nano Banana 2 API endpoint?

POST https://api.mage.space/v1/nano_banana_v2/generate with an Authorization: Bearer header carrying your Mage API key. The response includes a status_url to poll for the result.

Which Nano Banana 2 models can I call?

nano-banana-v2. The default is Nano Banana 2.

Does Nano Banana 2 support reference images or characters?

Nano Banana 2 accepts image, additional_images. Nano Banana 2 takes saved characters, references by @handle in the prompt.

Can I use Nano Banana 2 from Claude or ChatGPT?

Yes. Connect the Mage MCP server to Claude, ChatGPT, Claude Code, Grok, or Cursor and ask for Nano Banana 2 by name. Your assistant reads its options with get_model and quotes the price before it generates.

How long are Nano Banana 2 results kept?

Results and inputs are kept for 30 days. Download anything you want to keep to your own storage.

Start building with Mage

One account, one Gems balance, every model. Pay only for what you generate.

Get an API keyTry Nano Banana 2 in the playground

Related