ES ▾

API de texto sin censura para tu pipeline

API de Nano Banana: Prompts y scripts en un solo endpoint

Comienza con la API de Nano Banana en minutos. Esta guía cubre autenticación, peticiones básicas, streaming y llamadas a funciones usando el formato compatible con OpenAI.

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.

Preguntas y respuestas

¿Es esta la API oficial de OpenAI?

No. Es una API compatible con OpenAI que ejecuta nuestro propio modelo de pesos abiertos. Usa el mismo formato de peticiones y SDKs, pero es un servicio independiente. Consulta la documentación oficial de OpenAI para conocer sus características y límites específicos.

¿Almacenan mis prompts para el entrenamiento?

No. No usamos tus prompts para entrenar el modelo. Tus datos se usan solo para generar la respuesta de esa petición. La privacidad es una característica clave del flujo de trabajo sin censura.

¿Puedo usar esto para prompts de generación de imágenes?

Sí. Esta API es ideal para generar prompts de texto para modelos de imagen, audio o video. Se encarga de la parte de texto de tu pipeline. Nosotros no generamos los archivos multimedia.

Tu clave está a un formulario de distancia

Crea una cuenta, copia la clave, cambia la URL base. Eso es toda la configuración.

Obtener clave de API

Ficha técnica de la API

Una tabla con cada límite, función y precio.

ElementoValor
Formatocompatible con OpenAI: cualquier SDK de OpenAI funciona cambiando la base URL y la clave
AutenticaciónAuthorization: Bearer YOUR_KEY
ID del modelouncensored
EndpointsPOST /v1/chat/completions · GET /v1/models
Base URLhttps://api.nanobananaapis.com/v1
Modo JSONresponse_format: {"type": "json_object"}
Salida máximahasta el resto de la ventana de 100.000 tokens; max_tokens opcional (sin límite aparte)
Parámetrostemperature, top_p, stop, seed, presence_penalty, frequency_penalty
Streamingsí: server-sent events; el último fragmento incluye el uso de tokens
Llamadas a funcionessí: tools, tool_choice; la respuesta trae tool_calls, también en streaming; resultados como role: tool
Ventana de contexto100.000 tokens (entrada + salida)
Tamaño de peticiónhasta 8 MB
CabecerasX-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency
Concurrencia8 peticiones a la vez por clave
Límite de peticiones300 por minuto por clave
RecargaUSDT (TRC20) o USDC (Base), cualquier importe entero de $10 a $500
Bono+5 % desde $50, +10 % desde $100
Facturacióncrédito prepago por uso real; errores y rechazos no se cobran
Prueba gratis$0,50 durante 7 días, sin tarjeta · Clave de prueba: 2 solicitudes paralelas, 60 por minuto; límites completos (8 y 300) tras la primera recarga
Precio$0,25 por 1M tokens de entrada · $1,00 por 1M de salida
Caducidadel crédito pagado no caduca, sin suscripción
Clavesuna clave activa por cuenta; una nueva reemplaza a la anterior
AccesoGoogle o correo y contraseña
Contenidocontenido adulto permitido; se rechaza el contenido sexual con menores

Errores y qué hacer

Los errores llegan como JSON con un type fijo; las peticiones fallidas o rechazadas no se cobran.

CódigoTipoSignificado
400bad_requestJSON inválido, mensajes vacíos, parámetro incorrecto o contexto demasiado largo
401missing_key · invalid_key · key_revokedfalta la clave, es incorrecta o fue reemplazada
402no_creditsin crédito: recarga y sigue al instante
403content_blockedcontenido sexual con menores: rechazado, no se cobra
404not_foundendpoint desconocido
413request_too_largecuerpo mayor de 8 MB
429rate_limited · concurrencymás de 300/min o 8 en paralelo: espera y reintenta
503upstream_busymodelo ocupado: reintenta en unos segundos