FR ▾

API de texte sans censure pour votre pipeline

API Nano Banana : Prompts et scripts via un seul endpoint

Commencez avec l'API Nano Banana en quelques minutes. Ce guide couvre l'authentification, les requêtes de base, le streaming et l'appel de fonctions au format compatible OpenAI standard.

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.

Questions et réponses

S'agit-il de l'API officielle OpenAI ?

Non. Il s'agit d'une API compatible OpenAI fonctionnant avec notre propre modèle à poids ouverts. Elle utilise le même format de requête et les mêmes SDK, mais constitue un service distinct. Consultez la documentation officielle d'OpenAI pour connaître leurs fonctionnalités et limites spécifiques.

Stockez-vous mes prompts pour l'entraînement ?

Non. Nous n'utilisons pas vos prompts pour entraîner le modèle. Vos données servent uniquement à générer la réponse à cette requête. La confidentialité est une fonctionnalité centrale du flux de travail sans censure.

Puis-je l'utiliser pour des prompts de génération d'images ?

Oui. Cette API est idéale pour générer des prompts textuels pour des modèles d'images, d'audio ou de vidéo. Elle gère la partie textuelle de votre pipeline. Nous ne générons pas nous-mêmes les fichiers multimédias.

Votre clé est à un formulaire de vous

Créez un compte, copiez la clé, modifiez l'URL de base. C'est toute la configuration.

Obtenir une clé API

Fiche technique de l'API

Toutes les limites et fonctions réelles de l'API au même endroit — vérifiez-les avant de recharger.

ÉlémentValeur
Formatcompatible OpenAI : tout SDK OpenAI fonctionne en changeant la base URL et la clé
AuthentificationAuthorization: Bearer YOUR_KEY
ID du modèleuncensored
EndpointsPOST /v1/chat/completions · GET /v1/models
Base URLhttps://api.nanobananaapis.com/v1
Mode JSONresponse_format: {"type": "json_object"}
Sortie max.jusqu'au reste de la fenêtre de 100 000 tokens ; max_tokens optionnel (pas de plafond distinct)
Paramètrestemperature, top_p, stop, seed, presence_penalty, frequency_penalty
Streamingoui — server-sent events ; le dernier bloc contient l'usage des tokens
Appel de fonctionsoui — tools, tool_choice ; réponse avec tool_calls, aussi en streaming ; résultats en role: tool
Fenêtre de contexte100 000 tokens (entrée + sortie)
Taillejusqu'à 8 Mo par requête
En-têtesX-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency
Concurrence8 requêtes simultanées par clé
Limite de débit300 requêtes par minute et par clé
RechargeUSDT (TRC20) ou USDC (Base), tout montant entier de 10 $ à 500 $
Bonus+5 % dès 50 $, +10 % dès 100 $
Facturationcrédit prépayé selon l'usage réel ; erreurs et refus gratuits
Essai gratuit0,50 $ pendant 7 jours, sans carte · Clé d'essai : 2 requêtes parallèles, 60 par minute ; limites complètes (8 et 300) après la 1re recharge
Prix0,25 $ par million de tokens en entrée · 1,00 $ par million en sortie
Validitéle crédit payé n'expire jamais, sans abonnement
Clésune clé active par compte ; une nouvelle remplace l'ancienne
ConnexionGoogle ou e-mail et mot de passe
Contenucontenu adulte autorisé ; tout contenu sexuel impliquant des mineurs est refusé

Erreurs et solutions

Les erreurs arrivent en JSON avec un type stable ; les requêtes échouées ou refusées ne sont pas facturées.

CodeTypeSignification
400bad_requestJSON invalide, messages vides, mauvais paramètre ou contexte trop long
401missing_key · invalid_key · key_revokedclé absente, erronée ou remplacée
402no_creditplus de crédit — rechargez, la reprise est immédiate
403content_blockedcontenu sexuel impliquant des mineurs — refusé, non facturé
404not_foundendpoint inconnu
413request_too_largecorps supérieur à 8 Mo
429rate_limited · concurrencyau-delà de 300/min ou 8 en parallèle — patientez
503upstream_busymodèle occupé — réessayez dans quelques secondes