13Reference
Models and parameters
Which models are available, what resolutions and aspect ratios they support, and what an image costs. The exact list for your account is returned by GET /models.
Catalog
The price is per image and depends on the resolution. The amount is charged when the request is accepted, and a failed request is free: the amount goes straight back to your balance.
nano-banana-proImage generation and scene editing from reference images at 1K, 2K, and 4K. The aspect ratio is chosen automatically from the first reference image.
nano-banana-2Illustrations, product shots, and compositions from reference images: standard, panoramic, and elongated aspect ratios at 1K, 2K, and 4K.
nano-banana-2.1The newest Google model in the Nano Banana line: a realistic image, precise prompt following, consistent characters, and sharp text at 1K, 2K, and 4K. Up to 14 reference images in one request.
nano-banana-flashImage generation and editing at a fixed 1K resolution. It supports the standard aspect ratios and their automatic selection, for scenarios that do not need a higher resolution.
nano-banana-2-liteImage generation and editing at a fixed 1K resolution with ten explicitly set aspect ratios. Suited to scenarios with a predetermined aspect ratio and a 1K result.
gpt-image-2Image generation and editing at 1K resolution with ten standard aspect ratios. For 2K or 4K, use GPT Image 2 HD.
gpt-image-2.5Image generation and editing at 1K resolution with thirteen aspect ratios, including 9:21, 7:5, and 5:7. For 2K or 4K, use GPT Image 2.5 Sunburst or GPT Image 2.5 Flare.
The model names are identifiers for the model field. GET /models returns the models available to you and your prices: an account can have a personal price or a shorter list.
Resolution and aspect ratio
resolutionis1K,2K, or4K, case-insensitive. The allowed values depend on the model: only1Kfor Nano Banana Flash, Nano Banana 2 Lite, GPT Image 2, and GPT Image 2.5.- If
resolutionis omitted, the image is rendered at the default resolution:2Kfor Nano Banana Pro, Nano Banana 2, and Nano Banana 2.1, and1Kfor Nano Banana Flash, Nano Banana 2 Lite, and all GPT Image models. aspect_ratiois an exact value of the form16:9, with no spaces and no swapped digits. The set of ratios depends on the model.- If
aspect_ratiois omitted, it is1:1. A missing field does not meanauto. - Resolution is the model’s size level, not a number of pixels. The
widthandheightfields are not accepted; if your layout needs an exact size, check the dimensions of the file you receive.
What auto means
Nano Banana Pro, Nano Banana 2, Nano Banana 2.1, and Nano Banana Flash can choose the aspect ratio themselves: pass "aspect_ratio": "auto". With reference images, the ratio usually follows the first reference image. Without reference images the shape of the frame is not guaranteed: if your layout depends on it, set aspect_ratio explicitly. Nano Banana 2 Lite and the GPT Image models have no auto value: you set the aspect ratio.
What happens if you choose something impossible
A model that does not support the resolution or aspect ratio you ask for answers 400 before the charge. error.details.supported carries the list of allowed values, and no money is spent.
HTTP/1.1 400 Bad Request { "error": { "code": "ERR_INVALID_REQUEST", "message": "Unsupported resolution: 4K. Supported: 1K (case-insensitive) (omit resolution to render 1K).", "details": { "resolution": "4K", "supported": ["1K"] } } }
The request has "model": "gpt-image-2" and "resolution": "4K". For 2K and 4K, use GPT Image 2 HD, GPT Image 2.5 Sunburst, or GPT Image 2.5 Flare.
HTTP/1.1 400 Bad Request { "error": { "code": "ERR_INVALID_REQUEST", "message": "Unsupported aspect_ratio: 5:4. Supported: 1:1, 16:9, 9:16, 4:3, 3:4, 2:3, 3:2, 21:9 (omit aspect_ratio to render 1:1).", "details": { "aspect_ratio": "5:4", "supported": [ "1:1", "16:9", "9:16", "4:3", "3:4", "2:3", "3:2", "21:9" ] } } }
The request has "model": "gpt-image-2.5-sunburst" and "aspect_ratio": "5:4". This model does not support the 5:4 and 4:5 aspect ratios.
Try it yourself: in the request builder, the grayed-out options show the same refusals.
Catalog through the API
/modelsThe method charges nothing and does not take a generation slot. It counts toward the account’s overall rate limit (Limits). The category parameter is optional: pass image for images.
curl --fail-with-body --max-time 20 \ "https://api.rendergrid.io/ api/ public/ v1/ models?category=image" \ -H "Authorization: Bearer $RENDERGRID_API_KEY"
import os from decimal import Decimal import requests key = os.environ["RENDERGRID_API_KEY"] response = requests.get( "https://api.rendergrid.io/ api/ public/ v1/ models", params={"category": "image"}, headers={"Authorization": f"Bearer {key}"}, timeout=(5, 20), ) response.raise_for_status() for model in response.json()["models"]: # take the price of a resolution from variants, not from the root price prices = { v["variant_key"]: Decimal(v["price"]) for v in model.get("variants", []) } print(model["id"], prices)
// Node.js 22+, .mjs file const base = "https://api.rendergrid.io/ api/ public/ v1"; const url = new URL(`${base}/models`); url.searchParams.set("category", "image"); const key = process.env.RENDERGRID_API_KEY; const response = await fetch(url, { headers: { Authorization: `Bearer ${key}` }, signal: AbortSignal.timeout(20_000), }); if (!response.ok) { const body = await response.text(); throw new Error(`HTTP ${response.status}: ${body}`); } for (const model of (await response.json()).models) { // take the resolution price from variants, not from the root price const prices = Object.fromEntries((model.variants ?? []).map((v) => [v.variant_key, v.price])); console.log(model.id, prices); }
{
"currency": "USD",
"models": [
{
"id": "nano-banana-2",
"category": "image",
"display_name": "Nano Banana 2",
"price": "0.0250",
"unit": "per_image",
"variants": [
{ "variant_key": "1k", "price": "0.0250" },
{ "variant_key": "2k", "price": "0.0400" },
{ "variant_key": "4k", "price": "0.0600" }
]
},
{
"id": "gpt-image-2.5",
"category": "image",
"display_name": "GPT Image 2.5",
"price": "0.0250",
"unit": "per_image",
"variants": [{ "variant_key": "1k", "price": "0.0250" }]
}
]
}- currency
- The currency of all amounts in the response:
USD. - id
- The model identifier for the
modelfield in a generation request. - price
- The price of the model’s cheapest resolution, as a string in dollars. It is not the price of your image: that depends on
resolution. - unit
- The price unit:
per_imagemeans per one image. - variants
- Prices by resolution:
variant_key(1k,2k,4k) andprice; in the full response a variant also hasdisplay_nameandunit. Take the price of the chosen resolution from here.
Prices in the catalog are your account’s prices, taking any agreements into account. The amounts in the example are illustrative.
Price and charge
The price of an image depends on the model and the resolution. For example, Nano Banana 2.1 costs $0.02 at 1K, $0.03 at 2K, and $0.04 at 4K, and GPT Image 2 costs $0.02 at 1K. The lowest price is $0.015 per image at 1K, for Nano Banana Flash and Nano Banana 2 Lite.
If resolution is omitted, the image is rendered and paid for at the default resolution—for Nano Banana Pro, Nano Banana 2, and Nano Banana 2.1 that is 2K, although the root price in the catalog shows 1K. The amount goes into the cost field of the 202 response.
A failed request is free: the amount goes straight back to your balance.
Frequently asked questions
Why is the price in the catalog the 1K price, while a request without resolution renders at 2K?
price shows the model’s cheapest resolution. A request without resolution is rendered at the default resolution: for Nano Banana Pro, Nano Banana 2, and Nano Banana 2.1 that is 2K. Take the price of the resolution you need from variants.How do I find out which models are available to my account?
GET /models with your key: the response has only your account’s models and your prices. A request for a model you do not have gets 404 ERR_MODEL_NOT_FOUND.Can I set an exact size in pixels?
width and height are not accepted. Choose a resolution and an aspect ratio, and check the size of the finished file after you download it.What if the model does not support the aspect ratio I need?
400 before the charge, and error.details.supported lists the allowed values. Choose another aspect ratio or another model.