Visão Geral
Use sua chave API para gerar imagens através de um endpoint HTTP simples. Os créditos são deduzidos automaticamente com base no número de imagens geradas.
Endpoint
- Método:
POST - URL:
https://api.nanobananaapi.dev/v1/images/generate
Autenticação
Inclua sua chave API no header Authorization. Ainda não tem uma? Crie sua chave API aqui.
Authorization: Bearer SUA_API_KEY
Content-Type: application/jsonCorpo da Requisição (Cliente)
{
"prompt": "Uma paisagem serena de montanha ao pôr do sol com um lago refletindo o céu alaranjado",
"num": 1,
"model": "gemini-3-pro-image-preview",
"image_size": "16:9"
}Valores suportados para model:
gemini-2.5-flash-imagegemini-2.5-flash-image-hdgemini-3.1-flash-image-preview-512gemini-3.1-flash-image-previewgemini-3.1-flash-image-preview-2kgemini-3.1-flash-image-preview-4kgemini-3-pro-image-previewgemini-3-pro-image-preview-2kgemini-3-pro-image-preview-4k
Valores suportados para image_size:
1:116:99:164:33:42:33:24:55:4
Tamanhos adicionais suportados apenas por modelos gemini-3.1-flash:
21:91:44:18:11:8
Dedução de Créditos
- gemini-2.5-flash-image: Por imagem:
2créditos - gemini-2.5-flash-image-hd: Por imagem:
5créditos - gemini-3.1-flash-image-preview-512: Por imagem:
4créditos - gemini-3.1-flash-image-preview: Por imagem:
4créditos - gemini-3.1-flash-image-preview-2k: Por imagem:
6créditos - gemini-3.1-flash-image-preview-4k: Por imagem:
8créditos - gemini-3-pro-image-preview: Por imagem:
8créditos - gemini-3-pro-image-preview-2k: Por imagem:
8créditos - gemini-3-pro-image-preview-4k: Por imagem:
16créditos - Se os créditos forem insuficientes, a API retorna um erro.
Resposta
Todas as respostas usam um formato JSON unificado:
{
"code": 0,
"message": "ok",
"data": {
"url": "https://api.nanobananaapi.dev/v1/images/1234567890.png"
}
}Se num for maior que 1, a API retorna múltiplas URLs de imagem:
{
"code": 0,
"message": "ok",
"data": {
"url": [
"https://api.nanobananaapi.dev/v1/images/1234567890.png",
"https://api.nanobananaapi.dev/v1/images/0987654321.png"
]
}
}Respostas de erro:
{
"code": 400,
"message": "créditos insuficientes"
}Mensagens de erro comuns:
400: Parâmetros de requisição inválidos401: Chave API inválida500: Erro do servidor
Exemplos
curl
curl -X POST "https://api.nanobananaapi.dev/v1/images/generate" \
-H "Authorization: Bearer SUA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "Uma paisagem serena de montanha ao pôr do sol com um lago refletindo o céu alaranjado",
"num": 1,
"model": "gemini-3-pro-image-preview",
"image_size": "16:9"
}'Node.js
async function generate() {
const res = await fetch('https://api.nanobananaapi.dev/v1/images/generate', {
method: 'POST',
headers: {
Authorization: 'Bearer SUA_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
prompt:
'Uma paisagem serena de montanha ao pôr do sol com um lago refletindo o céu alaranjado',
num: 1,
model: 'gemini-3-pro-image-preview',
image_size: '16:9',
}),
});
const result = await res.json();
if (result.code !== 0) throw new Error(result.message);
return result.data;
}Python
import requests
def generate():
url = 'https://api.nanobananaapi.dev/v1/images/generate'
headers = {
'Authorization': 'Bearer SUA_API_KEY',
'Content-Type': 'application/json',
}
payload = {
'prompt': 'Uma paisagem serena de montanha ao pôr do sol com um lago refletindo o céu alaranjado',
'num': 1,
'model': 'gemini-3-pro-image-preview',
'image_size': '16:9',
}
res = requests.post(url, headers=headers, json=payload, timeout=60)
res.raise_for_status()
result = res.json()
if result.get('code') != 0:
raise Exception(result.get('message'))
return result.get('data')
print(generate())