Authentification et URL de base
Accédez à l'API nano banana en pointant votre client vers https://api.nanobananaapis.com/v1. Vous avez besoin d'une clé API valide dans l'en-tête Authorization. Inscrivez-vous sur la page Obtenir la clé API avec uniquement un e-mail et un mot de passe pour recevoir votre clé instantanément. La clé s'affiche immédiatement après l'inscription. Si vous la perdez, générez-en une nouvelle depuis votre tableau de bord ; l'ancienne clé cesse de fonctionner immédiatement.
Utilisez Bearer YOUR_API_KEY pour chaque requête. L'ID du modèle est toujours uncensored. Cet endpoint gère l'entrée et la sortie de texte. Il ne génère pas d'images, d'audio ou de vidéo. Pour les pipelines multimodaux, utilisez cette API pour la rédaction de prompts, la génération de scripts et le post-traitement.
Première requête
Envoyez une requête standard de complétion de chat. L'API prend en charge le format OpenAI. Remplacez YOUR_API_KEY par votre clé réelle. Cet exemple envoie un message simple au modèle sans censure.
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 réponse contient le texte généré. Vous pouvez inspecter le nombre de tokens utilisés dans le corps de la réponse. La fenêtre de contexte est de 100 000 tokens au total pour le prompt et la complétion. Gardez vos charges utiles inférieures à 8 Mo.
Exemple SDK Python
Utilisez le SDK Python officiel d'OpenAI. Définissez l'URL de base sur l'endpoint nanobananaapis. Transmettez votre clé API en tant que api_key. Le client formatera automatiquement correctement les requêtes. Cette méthode est idéale pour les scripts backend qui doivent traiter du texte avant de l'envoyer à un service de génération d'images ou de vidéo.
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)Le SDK gère le streaming et l'analyse pour vous. Vous pouvez itérer sur les chunks si vous activez le mode streaming. Cette approche garde votre code propre et compatible avec d'autres services OpenAI si vous changez de fournisseur plus tard.
Exemple SDK Node.js
Le SDK Node.js fonctionne de manière similaire. Initialisez le client avec votre URL de base et votre clé. Appelez la méthode chat.completions.create. Cela est utile pour les fonctions serverless ou les serveurs web qui doivent générer des scripts dynamiquement.
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);Assurez-vous de gérer correctement les erreurs. Les erreurs courantes incluent les échecs d'authentification (401) si la clé est invalide ou expirée, et les limites de débit (429) si vous dépassez 300 requêtes par minute. La clé API est liée à votre compte, protégez-la donc dans vos variables d'environnement.
Réponses en streaming
Activez le streaming en définissant stream: true dans votre requête. L'API retourne un flux Server-Sent Events (SSE). Chaque chunk contient une partie du texte généré. C'est essentiel pour les applications en temps réel ou lors de la génération de longs scripts.
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)Analysez les événements SSE côté client. Le flux se termine lorsque le modèle termine la génération ou atteint la limite de contexte. Le streaming réduit la latence perçue pour les utilisateurs. Il ne modifie pas la tarification ; vous payez toujours par token.
Limites, erreurs et modèles
Consultez les modèles disponibles via GET /v1/models. Le seul modèle est uncensored. La limite de débit est de 300 requêtes par minute par clé. Le corps de la requête doit faire moins de 8 Mo. Les tarifs sont de 0,25 $ par 1 M de tokens d'entrée et de 1,00 $ par 1 M de tokens de sortie. Le crédit n'expire jamais. Si vous manquez de crédit, rechargez à partir de 10 $. Erreurs : 401 pour les clés invalides, 402 pour crédit insuffisant, 429 pour les limites de débit. Aucune garantie de SLA ou de disponibilité n'est fournie. Le modèle bloque le contenu sexuel impliquant des mineurs. Il ne refuse pas les autres sujets adultes ou controversés licites.