Autenticación y URL base
Accede a la API de Nano Banana apuntando tu cliente a https://api.nanobananaapis.com/v1. Necesitas una clave de API válida en el encabezado Authorization. Regístrate en la página Obtener clave de API con solo un correo y contraseña para recibir tu clave al instante. La clave se muestra inmediatamente después del registro. Si la pierdes, genera una nueva desde tu panel; la clave anterior dejará de funcionar de inmediato.
Usa Bearer YOUR_API_KEY para cada petición. El ID del modelo es siempre uncensored. Este endpoint maneja entrada y salida de texto. No genera imágenes, audio ni video. Para pipelines multimodales, usa esta API para redacción de prompts, generación de scripts y postprocesamiento.
Primera petición
Envía una petición estándar de chat completion. La API soporta el formato de OpenAI. Reemplaza YOUR_API_KEY con tu clave real. Este ejemplo envía un mensaje simple al modelo sin censura.
curl https://api.nanobananaapis.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Write a blunt product review of a cheap VPN."}]
}'La respuesta contiene el texto generado. Puedes inspeccionar los conteos de tokens de uso en el cuerpo de la respuesta. La ventana de contexto es de 100.000 tokens en total para el prompt y la completion. Mantén tus cargas útiles por debajo de 8 MB.
Ejemplo SDK Python
Usa el SDK oficial de Python de OpenAI. Establece la URL base al endpoint de nanobananaapis. Pasa tu clave de API como api_key. El cliente formateará las peticiones automáticamente. Este método es ideal para scripts de backend que necesitan procesar texto antes de enviarlo a un servicio de generación de imagen o video.
from openai import OpenAI
client = OpenAI(base_url="https://api.nanobananaapis.com/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)El SDK maneja el streaming y el análisis para ti. Puedes iterar sobre los fragmentos si habilitas el modo streaming. Este enfoque mantiene tu código limpio y compatible con otros servicios de OpenAI si cambias de proveedor más adelante.
Ejemplo SDK Node.js
El SDK de Node.js funciona de manera similar. Inicializa el cliente con tu URL base y clave. Llama al método chat.completions.create. Esto es útil para funciones serverless o servidores web que necesitan generar scripts dinámicamente.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.nanobananaapis.com/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);Asegúrate de manejar los errores correctamente. Los errores comunes incluyen fallos de autenticación (401) si la clave no es válida o está expirada, y límites de velocidad (429) si excedes 300 peticiones por minuto. La clave de API está vinculada a tu cuenta, así que protégeala en tus variables de entorno.
Respuestas en streaming
Habilita el streaming estableciendo stream: true en tu petición. La API devuelve un flujo de Server-Sent Events (SSE). Cada fragmento contiene parte del texto generado. Esto es esencial para aplicaciones en tiempo real o al generar guiones largos.
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)Procesa los eventos SSE en el lado de tu cliente. El flujo termina cuando el modelo termina de generar o alcanza el límite de contexto. El streaming reduce la latencia percibida para los usuarios. No cambia la facturación; sigues pagando por token.
Límites, errores y modelos
Consulta los modelos disponibles mediante GET /v1/models. El único modelo es uncensored. El límite de peticiones es de 300 peticiones por minuto por clave. El cuerpo de la petición debe ser inferior a 8 MB. La tarifa es de $0,25 por cada 1M de tokens de entrada y $1,00 por cada 1M de tokens de salida. El crédito no caduca. Si te quedas sin saldo, recarga desde $10. Errores: 401 para claves incorrectas, 402 por crédito insuficiente, 429 por límites de peticiones. No se proporciona garantía de SLA ni de disponibilidad. El modelo bloquea contenido sexual que involucre a menores. No rechaza otros temas adultos lícitos o controvertidos.