# Nano Banana API

> Google's Nano Banana (Gemini 2.5 Flash Image) — fast, high-fidelity image generation and editing.

- **Provider**: Google
- **Model id**: `google-nano-banana-edit`
- **Modality**: image
- **Price**: 3.02 credits

## Overview

Nano Banana is called in two steps: create a generation task, then poll the task until the result is ready.

## Authentication

All requests require a Bearer Token in the request header:

```
Authorization: Bearer YOUR_API_KEY
```

## Create Task

`POST https://you.bot/api/v1/generate`

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| modelId | string | Yes | Model id: `google-nano-banana-edit` |
| input | object | Yes | Input parameters object (see below) |
| callbackUrl | string | No | https URL we POST the finished task to. Signed with `X-Webhook-Signature` once you create a webhook signing key in Dashboard → Settings |

### input object parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| prompt | string | Yes | The prompt for image editing Max 20000 characters. (example: Create a 1:1 marketplace listing image from the uploaded photo. Keep the subject, its shape and its label text exactly as uploaded; replace only the background… — full value in the request example) |
| image_urls | string[] | Yes | List of URLs of input images for editing,up to 10 images. (image URL) |
| output_format | string | No | Output format for the images (options: png \| jpeg) (default: png) |
| aspect_ratio | string | No | Radio description (options: 1:1 \| 9:16 \| 16:9 \| 3:4 \| 4:3 \| 3:2 \| 2:3 \| 5:4 \| 4:5 \| 21:9 \| auto) (default: 1:1) |
| nsfw_checker | boolean | No | A configurable parameter. Defaults to true in the Playground. (true/false) (default: true) |

### Request example

```json
{
  "modelId": "google-nano-banana-edit",
  "input": {
    "prompt": "Create a 1:1 marketplace listing image from the uploaded photo. Keep the subject, its shape and its label text exactly as uploaded; replace only the background with a seamless warm-grey studio sweep. Even softbox light, one soft contact shadow under the subject, no colour cast. Straighten the subject, centre it with generous margins, and clean up dust and scuffs without smoothing real texture. Catalogue-ready commercial retouching. No added props, no watermark, no text, no people.",
    "image_urls": [
      "https://you.bot/examples/grok-imagine-text-to-image.jpg"
    ],
    "output_format": "png",
    "aspect_ratio": "1:1",
    "nsfw_checker": true
  }
}
```

### Response example

```json
{
  "taskId": "281e5b0…f39b9",
  "creditsCharged": 3.02
}
```

## Query Task

`GET https://you.bot/api/v1/task/{taskId}?model=google-nano-banana-edit`

When `state` is `success`, the output is in `resultUrls`: `{ "state": "success", "resultUrls": [ ... ] }`. (Text models return inline in the create response.)

## Error Codes

| Code | Description |
|------|-------------|
| 200 | Request successful |
| 400 | Invalid request parameters |
| 401 | Authentication failed — check API Key |
| 402 | Insufficient account balance |
| 403 | IP not allowed for this key, or the key is restricted to other models |
| 404 | Task not found, or it has expired |
| 409 | Duplicate request — an identical submit arrived moments ago. Nothing was charged; retry is safe |
| 413 | Payload too large — see the character and file-size limits for this model |
| 429 | Rate limit exceeded — retry after the Retry-After header |
| 500 | Internal server error |
| 504 | Upstream timed out — nothing was delivered; retry is safe |
