In testing on Arena · Not officially confirmed Last updated:
Nano Banana 2.5 API
There is no Nano Banana 2.5 API. No endpoint, no model ID, no pricing. The model behind the spicy-mayo codename is only reachable through Arena's blind battles, which have no public API. If a launch follows the previous one, access would arrive through the Gemini API.
There is no endpoint, and that matters
To be specific about what does not exist: no base URL, no model ID, no rate limits, no pricing page, no waitlist run by Google, and no preview program you can apply to. The model believed to sit behind the spicy-mayo codename is reachable only through Arena's blind battles, which pair models at random and expose no API for choosing one.
This is worth stating plainly because the gap is being filled commercially. If a site is selling Nano Banana 2.5 API credits today, it is routing your prompt to a different model, or selling access to something that does not exist. There is no third option.
What the previous launch looked like
When the last banana-codenamed model shipped, it arrived as
gemini-2.5-flash-image on the standard Gemini
API — the same generateContent call shape as the
text models, with image bytes returned inline as base64 rather
than as a URL. There was no separate image API, no separate
key, and no separate SDK.
If the next one follows the same path, this is roughly the shape you would be porting to. Nothing below is a prediction about 2.5 — it is working code for the model that shipped.
curl
curl -s "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-image:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [{
"parts": [{ "text": "A studio photo of a ceramic banana on a grey backdrop" }]
}]
}' JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY });
const res = await ai.models.generateContent({
model: "gemini-2.5-flash-image",
contents: "A studio photo of a ceramic banana on a grey backdrop",
});
// Image bytes come back as inlineData parts, not as a URL.
for (const part of res.candidates[0].content.parts) {
if (part.inlineData) {
await writeFile("out.png", Buffer.from(part.inlineData.data, "base64"));
}
}
The part people trip over: the response carries image data in
inlineData parts as base64, so you decode and write
bytes rather than fetching a returned link.
What you can call today
| Option | Status | How you call it |
|---|---|---|
| Nano Banana 2.5 | Does not exist as a product | No API. Arena blind battles only, at random. |
| Gemini 2.5 Flash Image | Released | Gemini API, AI Studio, Gemini app |
| GPT-Image 2.5 | Released | Third-party providers (Flare and Sunburst endpoints) |
If you are building now, build against a model with a stable ID. Porting an image call to a new model ID later is an afternoon; waiting for an unannounced model is not a plan.
API FAQ
Is there a Nano Banana 2.5 API endpoint?
No. There is no published endpoint, no model ID, and no pricing. Any site offering you a paid Nano Banana 2.5 API key today is reselling something else or selling nothing at all.
How was the previous Nano Banana accessed?
Through the standard Gemini API, under the model ID gemini-2.5-flash-image, using the same generateContent call shape as the text models. It was also available in Google AI Studio and the Gemini app.
Can I call spicy-mayo on Arena programmatically?
No. Arena pairs models at random inside blind battles and does not expose an API for selecting a specific anonymous model. Scripting the site would also breach its terms.
What image model API can I actually use today?
Gemini 2.5 Flash Image via the Gemini API is the shipped, documented Google option. GPT-Image 2.5 is available through third-party providers. Both are real endpoints you can call now, unlike anything named 2.5 on the banana line.
Get notified at launch
Leave your email and we will send one message when spicy-mayo (or whatever it ends up being called) becomes publicly available. We do not send anything else and we do not share the list.