Descripción General
Usa tu clave API para generar imágenes mediante un endpoint HTTP simple. Los créditos se deducen automáticamente según el número de imágenes generadas.
Endpoint
- Método:
POST - URL:
https://api.nanobananaapi.dev/v1/images/generate
Autenticación
Incluye tu clave API en el header Authorization. ¿Aún no tienes una? Crea tu clave API aquí.
Authorization: Bearer TU_API_KEY
Content-Type: application/jsonCuerpo de la Petición (Cliente)
{
"prompt": "Un paisaje sereno de montaña al atardecer con un lago reflejando el cielo naranja",
"num": 1,
"model": "gemini-3-pro-image-preview",
"image_size": "16:9"
}Valores soportados 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 soportados para image_size:
1:116:99:164:33:42:33:24:55:4
Tamaños adicionales soportados solo por modelos gemini-3.1-flash:
21:91:44:18:11:8
Deducción de Créditos
- gemini-2.5-flash-image: Por imagen:
2créditos - gemini-2.5-flash-image-hd: Por imagen:
5créditos - gemini-3.1-flash-image-preview-512: Por imagen:
4créditos - gemini-3.1-flash-image-preview: Por imagen:
4créditos - gemini-3.1-flash-image-preview-2k: Por imagen:
6créditos - gemini-3.1-flash-image-preview-4k: Por imagen:
8créditos - gemini-3-pro-image-preview: Por imagen:
8créditos - gemini-3-pro-image-preview-2k: Por imagen:
8créditos - gemini-3-pro-image-preview-4k: Por imagen:
16créditos - Si los créditos son insuficientes, la API devuelve un error.
Respuesta
Todas las respuestas usan un formato JSON unificado:
{
"code": 0,
"message": "ok",
"data": {
"url": "https://api.nanobananaapi.dev/v1/images/1234567890.png"
}
}Si num es mayor que 1, la API devuelve múltiples URLs de imagen:
{
"code": 0,
"message": "ok",
"data": {
"url": [
"https://api.nanobananaapi.dev/v1/images/1234567890.png",
"https://api.nanobananaapi.dev/v1/images/0987654321.png"
]
}
}Respuestas de error:
{
"code": 400,
"message": "créditos insuficientes"
}Mensajes de error comunes:
400: Parámetros de petición inválidos401: Clave API inválida500: Error del servidor
Ejemplos
curl
curl -X POST "https://api.nanobananaapi.dev/v1/images/generate" \
-H "Authorization: Bearer TU_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "Un paisaje sereno de montaña al atardecer con un lago reflejando el cielo naranja",
"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 TU_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
prompt:
'Un paisaje sereno de montaña al atardecer con un lago reflejando el cielo naranja',
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 TU_API_KEY',
'Content-Type': 'application/json',
}
payload = {
'prompt': 'Un paisaje sereno de montaña al atardecer con un lago reflejando el cielo naranja',
'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())