Autenticação e URL Base
Acesse a nano banana api apontando seu cliente para https://api.nanobananaapis.com/v1. Você precisa de uma chave de API válida no cabeçalho Authorization. Cadastre-se na página Obter chave de API com apenas e-mail e senha para receber sua chave instantaneamente. A chave é exibida imediatamente após o cadastro. Se você a perder, gere uma nova no seu painel; a chave antiga deixa de funcionar imediatamente.
Use Bearer YOUR_API_KEY para cada requisição. O ID do modelo é sempre uncensored. Este endpoint lida com entrada e saída de texto. Ele não gera imagens, áudio ou vídeo. Para pipelines multimodais, use esta API para escrita de prompts, geração de scripts e pós-processamento.
Primeira Requisição
Envie uma requisição padrão de conclusão de chat. A API suporta o formato OpenAI. Substitua YOUR_API_KEY pela sua chave real. Este exemplo envia uma mensagem simples para o modelo sem 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."}]
}'A resposta contém o texto gerado. Você pode inspecionar as contagens de tokens de uso no corpo da resposta. A janela de contexto é de 100.000 tokens no total para o prompt e a conclusão. Mantenha seus dados abaixo de 8 MB.
Exemplo de SDK Python
Use o SDK Python oficial da OpenAI. Defina a URL base para o endpoint nanobananaapis. Passe sua chave de API como api_key. O cliente formatará automaticamente as requisições corretamente. Este método é ideal para scripts de backend que precisam processar texto antes de enviá-lo para um serviço de geração de imagem ou vídeo.
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)O SDK cuida do streaming e parsing para você. Você pode iterar sobre os chunks se habilitar o modo streaming. Esta abordagem mantém seu código limpo e compatível com outros serviços OpenAI caso você mude de provedor mais tarde.
Exemplo de SDK Node.js
O SDK Node.js funciona de forma semelhante. Inicialize o cliente com sua URL base e chave. Chame o método chat.completions.create. Isso é útil para funções serverless ou servidores web que precisam gerar scripts dinamicamente.
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);Certifique-se de tratar os erros adequadamente. Erros comuns incluem falhas de autenticação (401) se a chave for inválida ou expirada, e limites de taxa (429) se você exceder 300 requisições por minuto. A chave de API está vinculada à sua conta, portanto, proteja-a nas suas variáveis de ambiente.
Respostas em Streaming
Ative o streaming definindo stream: true na sua requisição. A API retorna um fluxo de Eventos Enviados pelo Servidor (SSE). Cada fragmento contém parte do texto gerado. Isso é essencial para aplicações em tempo real ou ao gerar roteiros longos.
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)Analise os Eventos Enviados pelo Servidor no seu lado do cliente. O fluxo termina quando o modelo termina de gerar ou atinge o limite da janela de contexto. O streaming reduz a latência percebida para os usuários. Isso não altera o preço; você ainda paga por token.
Limites, Erros e Modelos
Verifique os modelos disponíveis via GET /v1/models. O único modelo é uncensored. O limite de requisições é de 300 requisições por minuto por chave. O corpo da requisição deve ter menos de 8 MB. O preço é $0,25 por 1M de tokens de entrada e $1,00 por 1M de tokens de saída. O crédito nunca expira. Se acabar, recarregue a partir de $10. Erros: 401 para chaves inválidas, 402 para crédito insuficiente, 429 para limites de taxa. Não há Acordo de Nível de Serviço nem garantia de disponibilidade. O modelo bloqueia conteúdo sexual envolvendo menores. Ele não recusa outros tópicos adultos ou controversos lícitos.