NL ▾

Ongecensureerde tekst-API voor je pipeline

Nano Banana API: prompts en scripts via één endpoint

Kom in enkele minuten van start met de Nano Banana API. Deze gids behandelt authenticatie, basisverzoeken, streaming en tool calling met het standaard OpenAI-compatible formaat.

Authenticatie en basis-URL

Gebruik de nano banana api door je client te wijzen naar https://api.nanobananaapis.com/v1. Je hebt een geldige API-sleutel nodig in de Authorization-header. Meld je aan op de API-sleutel ophalen-pagina met alleen een e-mailadres en wachtwoord om je sleutel direct te ontvangen. De sleutel wordt direct na het aanmaken getoond. Als je hem kwijtraakt, genereer dan een nieuwe via je dashboard; de oude sleutel werkt dan onmiddellijk niet meer.

Gebruik Bearer YOUR_API_KEY voor elk verzoek. De model-ID is altijd uncensored. Dit endpoint verwerkt tekst in en tekst uit. Het genereert geen afbeeldingen, audio of video. Voor multimodale pipelines gebruik je deze API voor promptschrijving, scriptgeneratie en nabewerking.

Eerste verzoek

Stuur een standaard chat-completie-verzoek. De API ondersteunt het OpenAI-formaat. Vervang YOUR_API_KEY door je daadwerkelijke sleutel. Dit voorbeeld stuurt een eenvoudig bericht naar het ongecensureerde model.

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."}]
  }'

De respons bevat de gegenereerde tekst. Je kunt de tokengebruikscijfers inspecteren in het lichaam van de respons. Het contextvenster is 100.000 tokens totaal voor prompt en responsbody. Houd je payloads onder de 8 MB.

Python SDK-voorbeeld

Gebruik de officiële OpenAI Python SDK. Stel de basis-URL in op het nanobananaapis endpoint. Geef je API-sleutel door als api_key. De client vormt verzoeken automatisch correct. Deze methode is ideaal voor backend-scripts die tekst moeten verwerken voordat deze naar een afbeeldings- of videogeneratiedienst wordt gestuurd.

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)

De SDK verwerkt streaming en parsing voor je. Je kunt over chunks itereren als je de streamingmodus inschakelt. Deze aanpak houdt je code schoon en compatibel met andere OpenAI-services als je later van provider wisselt.

Node SDK-voorbeeld

De Node.js SDK werkt op vergelijkbare wijze. Initialiseer de client met je basis-URL en sleutel. Roep de chat.completions.create methode aan. Dit is handig voor serverless functies of web servers die dynamisch scripts moeten genereren.

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);

Zorg dat je fouten correct afhandelt. Veelvoorkomende fouten zijn authenticatiefouten (401) als de sleutel ongeldig of verlopen is, en rate limits (429) als je meer dan 300 verzoeken per minuut doet. De API-sleutel is gekoppeld aan je account, dus bescherm deze in je environment variables.

Streaming-antwoorden

Schakel streaming in door stream: true in je verzoek in te stellen. De API retourneert een Server-Sent Events (SSE) stream. Elke chunk bevat een deel van de gegenereerde tekst. Dit is essentieel voor realtime applicaties of bij het genereren van lange 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)

Parse de SSE-events aan de clientkant. De stream eindigt wanneer het model klaar is met genereren of de contextlimiet bereikt. Streaming vermindert de waargenomen latentie voor gebruikers. Het verandert de prijzen niet; je betaalt nog steeds per token.

Limieten, fouten en modellen

Controleer beschikbare modellen via GET /v1/models. Het enige model is uncensored. Rate limit is 300 verzoeken per minuut per sleutel. Het lichaam van het verzoek moet onder de 8 MB liggen. Prijzen zijn $0,25 per 1M input tokens en $1,00 per 1M output tokens. Credit verloopt nooit. Als je opgebruikt raakt, laad je op vanaf $10. Fouten: 401 voor ongeldige sleutels, 402 voor onvoldoende credit, 429 voor rate limits. Er wordt geen SLA of uptime-garantie geboden. Het model blokkeert seksuele inhoud met minderjarigen. Het weigert andere wettelijke volwassen of controversiële onderwerpen niet.

Vragen en antwoorden

Is dit de officiële OpenAI API?

Nee. Het is een OpenAI-compatible API die ons eigen open-weight model gebruikt. Het gebruikt hetzelfde verzoekformaat en SDK's, maar is een aparte service. Raadpleeg de officiële OpenAI-documentatie voor hun specifieke functies en limieten.

Bewaar jij mijn prompts voor training?

Nee. We gebruiken je prompts niet om het model te trainen. Je gegevens worden alleen gebruikt om de respons voor dat verzoek te genereren. Privacy is een kernfunctie van de ongecensureerde workflow.

Kan ik dit gebruiken voor prompts voor beeldgeneratie?

Ja. Deze API is ideaal voor het genereren van tekstprompts voor beeld-, audio- of videomodellen. Het verwerkt het tekstgedeelte van je pipeline. Wij genereren de mediabestanden niet zelf.

Je sleutel is nog maar één formulier verwijderd

Maak een account aan, kopieer de sleutel, pas de basis-URL aan. Dat is de hele setup.

API-sleutel aanvragen

API-specificaties

Alle echte limieten en functies van de API op één plek — controleer ze voordat je opwaardeert.

OnderdeelWaarde
API-formaatOpenAI-compatibel: elke OpenAI-SDK werkt — vervang alleen base URL en sleutel
AuthenticatieAuthorization: Bearer YOUR_KEY
Model-IDuncensored
EndpointsPOST /v1/chat/completions · GET /v1/models
Base URLhttps://api.nanobananaapis.com/v1
JSON-modusresponse_format: {"type": "json_object"}
Max. uitvoertot de rest van het venster van 100.000 tokens; max_tokens optioneel (geen aparte limiet)
Parameterstemperature, top_p, stop, seed, presence_penalty, frequency_penalty
Streamingja — server-sent events; het laatste deel bevat het tokenverbruik
Function callingja — tools, tool_choice; antwoorden bevatten tool_calls, ook bij streaming; resultaten als role: tool
Contextvenster100.000 tokens (invoer + uitvoer)
Verzoekgroottetot 8 MB
ResponsheadersX-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency
Gelijktijdige verzoekentot 8 tegelijk per sleutel
Rate limit300 verzoeken per minuut per sleutel
OpwaarderenUSDT (TRC20) of USDC (Base), elk heel bedrag van $10 tot $500
Bonus+5% vanaf $50, +10% vanaf $100
Afrekeningprepaid tegoed op basis van echt verbruik; fouten en weigeringen zijn gratis
Gratis proeftegoed$0,50 voor 7 dagen, zonder kaart · Proefsleutel: 2 parallelle verzoeken, 60 per minuut; volledige limieten (8 en 300) na eerste opwaardering
Prijs$0,25 per 1 mln invoertokens · $1,00 per 1 mln uitvoertokens
Geldigheidbetaald tegoed verloopt niet, geen abonnement
Sleutelséén actieve sleutel per account; een nieuwe vervangt de oude
InloggenGoogle of e-mail en wachtwoord
Inhoudinhoud voor volwassenen toegestaan; seksuele inhoud met minderjarigen wordt geweigerd

Foutcodes

Fouten komen als JSON met een vaste type; mislukte of geweigerde verzoeken kosten niets.

CodeTypeBetekenis
400bad_requestongeldige JSON, lege berichten, verkeerde parameter of context te lang
401missing_key · invalid_key · key_revokedsleutel ontbreekt, is onjuist of is vervangen
402no_creditgeen tegoed — waardeer op en ga direct verder
403content_blockedseksuele inhoud met minderjarigen — geweigerd, niet gerekend
404not_foundonbekend endpoint
413request_too_largebody groter dan 8 MB
429rate_limited · concurrencymeer dan 300/min of 8 tegelijk — wacht en probeer opnieuw
503upstream_busymodel bezet — probeer het over enkele seconden opnieuw