Documentação da API OpenRouter
Conecte sua aplicação ao nosso LLM sem censura usando a interface padrão compatível com OpenAI. Este guia cobre autenticação, formatos de solicitação e streaming para integração rápida.
Início rápido: Conecte com Python
Comece instalando o SDK oficial e apontando-o para nossa URL base.
Nossa API se comporta como a interface padrão da OpenAI, mas roteia para um único modelo uncensored. Esta abordagem elimina a complexidade do proxy enquanto mantém seu código portátil.
- Instale a biblioteca via pip.
- Defina sua chave de API no ambiente.
- Defina a URL base para nosso endpoint.
from openai import OpenAI
client = OpenAI(base_url="https://api.apiopenrouter.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)Substitua a chave placeholder por suas próprias credenciais. Você pode enviar prompts simples ou dados estruturados complexos.
Autenticação e Chaves
Gere uma chave no painel e passe-a no cabeçalho de Autorização.
Cada conta suporta uma chave ativa por vez. Ao criar uma nova chave, a antiga deixa de funcionar imediatamente. Isso simplifica o gerenciamento de segurança sem exigir lógica complexa de rotação.
curl https://api.apiopenrouter.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "List the top 5 dependencies for a Go web server"}]
}'A solicitação acima usa o esquema Bearer. Certifique-se de que sua chave comece com sk- e não contém espaços em branco extras.
Endpoint Chat Completions
Envie mensagens para o /v1/chat/completions endpoint usando JSON padrão.
O modelo aceita user e assistant papéis. Você pode configurar temperatura, top-p e sequências de parada para controlar o estilo da saída. As respostas retornam o uso de tokens no último chunk se o streaming estiver habilitado.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.apiopenrouter.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);Definir max_tokens para controlar o comprimento da saída. Se omitido, o padrão é 2.048 tokens. O modelo suporta até 16.000 tokens por solicitação.
Respostas em Streaming
Ative o streaming definindo stream: true no corpo da sua solicitação.
Os detalhes de uso de tokens aparecem apenas no último chunk do fluxo. Isso permite atualizações de UI em tempo real enquanto preserva dados de faturamento precisos. Erros durante o streaming ainda relatam o uso para tokens cobrados.
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)Lide com respostas parciais de forma elegante. O fluxo é encerrado normalmente quando o modelo termina a geração ou atinge o limite de contexto.
Function Calling & JSON Mode
Usar response_format: {type: "json_object"} para saídas JSON estritas.
Defina ferramentas no tools array e definir tool_choice para impor chamadas de função. O modelo devolve dados estruturados adequados para processamento programático. Isto funciona de forma fiável com os nossos pesos sem censura.
curl https://api.apiopenrouter.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "List the top 5 dependencies for a Go web server"}]
}'Combine chamada de funções com streaming para experiências interativas. Valide a saída JSON antes de passá-la para a lógica do seu aplicativo.
Limites e Cotas
Monitore seu uso contra os limites por chave para evitar interrupções.
Cada chave permite 300 solicitações por minuto e 8 solicitações simultâneas. O limite de tamanho do corpo da solicitação é de 8 MB. Se você exceder esses limites, a API retornará o código de status 429. Erros de autenticação retornam 401, e crédito insuficiente retorna 402.
curl https://api.apiopenrouter.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "List the top 5 dependencies for a Go web server"}]
}'A janela de contexto é de 100.000 tokens no total. Erros não consomem crédito. Recusas por violações menores de conteúdo também permanecem gratuitas.
Perguntas frequentes
Como a API openrouter difere da OpenAI padrão?
Nossa API utiliza um único modelo sem censura otimizado para conteúdo adulto legal e criativo, sem recusas. Mantém a mesma estrutura de solicitação e resposta do OpenAI, permitindo que você alterne endpoints sem alterar seu código.
O que acontece se eu ficar sem créditos?
As solicitações falham com um erro 402 quando seu saldo pré-pago é zero. Os créditos nunca expiram, então você pode recarregar via criptomoeda a qualquer momento. Erros e recusas não consomem seu saldo.
Posso usar várias chaves para projetos diferentes?
Cada conta suporta uma chave ativa. Criar uma nova chave invalida automaticamente a anterior. Você pode gerar uma nova chave instantaneamente pelo painel sem perder seu histórico de faturamento.
Recupere sua chave de API
Cadastre-se, copie o token e atualize sua URL base. Essa é toda a configuração.