Antes do OpenRouter existir como opção consolidada, integrar modelos de linguagem era um exercício de gestão de chaveiro: uma chave da OpenAI, outra da Anthropic, outra do Google, cada uma com formato de requisição, painel de cobrança e comportamento de erro próprios. Um time que testava três provedores mantinha três integrações. Quando um deles caía ou aplicava limite de taxa, a funcionalidade dependente parava, e o plantão descobria isso antes do monitoramento. O OpenRouter (abre em nova aba) propõe resolver exatamente esse estrangulamento com um único endpoint compatível com a API da OpenAI, um modelo de cobrança centralizado e roteamento automático entre provedores.
Este guia mostra como instalar e configurar esse endpoint na prática, com foco em quem programa: pré-requisitos, passo a passo verificável, conferência da integração, estrutura de custos e os erros que mais travam a primeira semana de uso.
Para quem o endpoint único serve e o que ele promete
A organização OpenRouterTeam no GitHub (abre em nova aba) resume a proposta em quatro pontos: uma API para mais de 400 modelos de OpenAI, Anthropic, Google, Meta, Mistral e outros, sem mudar o código; fallbacks automáticos e roteamento por preço e desempenho entre mais de 90 provedores; compatibilidade direta com o SDK da OpenAI, exigindo apenas a troca da URL base e da chave; e ausência de amarra contratual, com comparação de modelos e pagamento por uso.

Na prática, o serviço não é um modelo. É uma camada de roteamento: sua requisição chega ao OpenRouter, a plataforma decide qual provedor atendê-la, normaliza o esquema de resposta e devolve o resultado. A referência oficial da API (abre em nova aba) descreve o esquema de requisição e resposta como muito semelhante ao da API de Chat da OpenAI, com pequenas diferenças, e afirma que a normalização entre modelos e provedores permite aprender apenas um formato.
Três perfis tiram proveito direto. O desenvolvedor que quer comparar modelos sem reescrever integração ganha um catálogo navegável. A equipe de dados que processa volumes variáveis ganha fallback quando um provedor limita requisições. E o time técnico avaliando custos ganha um painel único de uso, em vez de três ou quatro faturas separadas. Quem precisa de um único modelo de um único provedor, sem planos de troca, provavelmente se dá melhor contratando direto na fonte, sem intermediário.
OpenRouter e "Omniroute" não são a mesma coisa
Um ponto de confusão recorrente na busca: existe um projeto separado chamado OmniRoute, um gateway de código aberto licenciado sob MIT que você instala no próprio hardware e que se apresenta como alternativa ao OpenRouter, sem taxa de intermediação. O projeto está em github.com/diegosouzapw/OmniRoute (abre em nova aba). Um artigo da ProvenLabs de 23 de julho de 2026 descreve o gateway autônomo, com mais de 250 provedores acessíveis e failover local, e registra a alegação de mais de 26 mil estrelas no GitHub naquela semana, número que compete confirmar na página do repositório.
Este guia trata apenas do OpenRouter, o serviço hospedado de roteamento. A distinção importa porque os dois aparecem nas mesmas buscas e resolvem o mesmo problema de formas opostas: um cobra por intermediação e assume a operação; o outro transfere a operação para a sua infraestrutura e não cobra pela camada.
Pré-requisitos para instalação e configuração
O caminho deste guia assume Python, mas o endpoint aceita qualquer linguagem que faça requisições HTTP. O tutorial da DataCamp sobre OpenRouter (abre em nova aba) recomenda Python 3.7 ou mais recente e o pacote openai do Python, além de python-dotenv para variáveis de ambiente.
A exigência do cartão merece um parágrafo próprio no contexto brasileiro, e ela entra na seção de custos.
Passo a passo: da conta à primeira chamada
A ordem abaixo é a sequência real de operações. Cada passo indica um sinal verificável de que funcionou.
- Crie a conta. Acesse o OpenRouter e registre-se. Sinal de sucesso: o painel do usuário fica acessível, com as seções de chaves e créditos visíveis.
- Adicione créditos pré-pagos. O modelo de cobrança é pay-as-you-go em dólares americanos: você carrega um saldo em créditos antes de consumir. Recarregue com um valor pequeno para o primeiro teste, algo suficiente para dezenas de chamadas de teste com um modelo barato. Sinal de sucesso: o saldo aparece em USD no painel.
- Gere a chave de API. No painel, crie uma chave de API para autenticar suas chamadas. A chave aparece no painel do usuário; trate-a como segredo de produção. Sinal de sucesso: a chave está listada na área de chaves da conta.
- Configure a variável de ambiente. Convenção comum em integrações com o serviço é usar
OPENROUTER_API_KEY. Em um arquivo.env(compython-dotenv) ou direto no shell:
export OPENROUTER_API_KEY="sua-chave-aqui"Sinal de sucesso: echo $OPENROUTER_API_KEY no terminal imprime a chave.
- Instale o cliente. Com Python, instale o pacote
openaiepython-dotenv:
pip install openai python-dotenvSinal de sucesso: pip show openai retorna a versão instalada sem erros. Em TypeScript, a alternativa oficial é o pacote @openrouter/sdk (npm add @openrouter/sdk, segundo o perfil da organização no GitHub) ou o provedor comunitário @openrouter/ai-sdk-provider (abre em nova aba), documentado para quem já usa a AI SDK do Vercel; a instalação documentada é pnpm add @openrouter/ai-sdk-provider.
- Aponte o cliente para o OpenRouter. A compatibilidade com a API da OpenAI é o argumento central do serviço: basta trocar a URL base e a chave. A URL do endpoint de chat é
https://openrouter.ai/api/v1/chat/completions.
from openai import OpenAI
client = OpenAI(
base_url="https://openrouter.ai/api/v1",
api_key="SUA_CHAVE_OPENROUTER",
)
response = client.chat.completions.create(
model="openai/gpt-4o-mini",
messages=[
{"role": "user", "content": "Explique em uma frase o que é um gateway de API."}
],
)
print(response.choices[0].message.content)Substitua SUA_CHAVE_OPENROUTER pelo valor da variável de ambiente carregada (com python-dotenv, os.getenv("OPENROUTER_API_KEY")). O identificador openai/gpt-4o-mini é o formato de slug usado pelo serviço: provedor, barra, modelo. Para ver todos os slugs disponíveis, consulte o catálogo de modelos (abre em nova aba) ou liste programaticamente pelo endpoint GET /api/v1/models, conforme a documentação de início rápido.
- Rode a chamada. Sinal de sucesso: o script imprime o texto de resposta, e o painel do OpenRouter registra o consumo correspondente, com contagem de tokens e custo debitado do saldo. Uma chamada de teste de uma frase com um modelo econômico gasta frações de centavo de dólar.
Duas observações opcionais do guia de início rápido valem registro. Os cabeçalhos HTTP-Referer e X-OpenRouter-Title são facultativos e servem para atribuir o tráfego ao seu aplicativo nos rankings públicos do serviço, e não para autenticação. E aliases como o documentado para a família de modelos da OpenAI permitem apontar para "a versão mais recente" de uma família sem redeploy quando o provedor lança atualização, o que reduz manutenção de código em produção.
Como verificar (testar) se a configuração funcionou
Três checagens separam uma configuração real de uma configuração que "parece funcionar".
- Confirme o catálogo pelo endpoint de modelos. Uma requisição
GETahttps://openrouter.ai/api/v1/modelsdeve retornar a lista de modelos com suas propriedades. Se a requisição autenticada responde com JSON listando provedores, a conectividade e a autenticação básica estão de pé.
- Faça uma chamada de mínima viabilidade. Rode o script do passo 7 com a mensagem mais curta possível e um modelo barato. Verifique dois sinais: o conteúdo da resposta veio no campo esperado (
choices[0].message.contentno formato da API de Chat) e o painel registrou o consumo.
- Confirme a normalização trocando o modelo. Troque o slug por outro de provedor diferente, mantendo o restante do código idêntico. Se a segunda chamada também responde no mesmo formato, sua integração está realmente independente de provedor, que é a promessa central do produto. Se algo quebrar na troca, o problema está nos parâmetros específicos do modelo, e não na integração.
Para quem prefere inspecionar o contrato completo antes de codificar, a especificação OpenAPI do serviço está disponível em YAML e JSON (https://openrouter.ai/openapi.yaml e https://openrouter.ai/openapi.json) e pode ser aberta em Swagger UI, Postman ou qualquer gerador de clientes compatível.
Custos, limites e a realidade para quem paga em reais
A estrutura de preços é o que costuma decidir a adoção. Os números abaixo vêm do comparativo do PremiumPeek, que afirma ter verificado os itens contra fontes oficiais do serviço; confirme os valores atuais no painel antes de decisões de orçamento, pois termos de planos mudam.
| Item | Valor ou limite registrado |
|---|---|
| Taxa de plataforma | 5,5% sobre cada recarga de créditos |
| Markup por token | Nenhum: preço do provedor repassado |
| Desconto por registro de prompts (opt-in) | 1% sobre o custo |
| Plano gratuito | Mais de 25 modelos gratuitos, 4 provedores, 50 requisições por dia |
| Limites após US$ 10 acumulados em créditos | 20 requisições por minuto e 1.000 por dia |
| BYOK (traga sua própria chave) | Isenção da taxa de plataforma até US$ 25 mil por mês |
| Enterprise | SSO/SAML e SLAs, sob negociação |
Três leituras práticas saem da tabela. Primeira: a taxa de 5,5% incide sobre a recarga, não sobre o token; quem carrega saldo uma vez por mês paga a taxa uma vez por mês, e o custo marginal de cada requisição fica igual ao do provedor de origem. Segunda: a escala do plano gratuito é deliberadamente limitada para experimentação. O gráfico abaixo mostra o salto de limites que a acumulação de US$ 10 em créditos destrava, segundo a mesma compilação:
| Indicador | Valor (requisições por dia) |
|---|---|
| Sem US$ 10 acumulados | 50 |
| Após US$ 10 acumulados | 1.000 |
Fonte: Limites do plano gratuito do OpenRouter, compilação PremiumPeek (verificada contra fontes oficiais), 2026
Terceira: existe um desconto de 1% para quem opta por permitir o registro dos prompts enviados. É uma escolha de privacidade com etiqueta de preço. Para fluxos com dados sensíveis de clientes, de pacientes ou de financeira, a pergunta a fazer antes de ativar não é quanto economiza, e sim o que o contrato de confidencialidade da sua empresa diz sobre enviar esse conteúdo por um intermediário com log de prompts. O default do serviço é registrar apenas metadados, sem o conteúdo dos prompts, conforme o mesmo comparativo.
Para equipes que já mantêm chaves próprias de provedores em grande volume, o BYOK muda a matemática: com isenção da taxa de plataforma até US$ 25 mil por mês, o OpenRouter passa a valer pela camada de roteamento e fallback, não pela intermediação de cobrança.
Sobre o Brasil, o dado confirmado é simples: a cobrança é em dólares americanos, em créditos pré-pagos carregados no painel. A consequência prática, e aqui entra a interpretação, é que o custo final em reais fica sujeito à taxa de câmbio do dia da recarga e às tarifas de transação internacional do emissor do cartão. Quem gere orçamento de time em reais tem dois ajustes possíveis: recarregar em intervalos maiores para diluir a taxa de plataforma e fixar um teto mensal de consumo no painel, acompanhando o saldo em USD para converter na contabilidade interna. Não há, nas fontes consultadas, indicação de faturamento em reais ou métodos de pagamento locais como boleto.
Erros comuns e soluções
Estes são os tropeços documentados ou estruturalmente esperados nos primeiros dias, com o encaminhamento de cada um.
- Erro de autenticação na primeira chamada. Sintoma: a API recusa a requisição com falha de credencial. Causas frequentes: a variável de ambiente não foi exportada na sessão atual do terminal, a chave foi digitada com espaço ou aspas extras, ou o cliente está enviando a chave de outro provedor. Solução: rode
echo $OPENROUTER_API_KEYe confirme que o valor impresso é a chave do OpenRouter; em Python, confirme que o.envfoi carregado antes de construir o cliente.
- Chamadas tentando autenticar na OpenAI. Sintoma: erro de cobrança ou de chave apesar de tudo configurado. Causa clássica: o
base_urlnão foi alterado, e o SDK da OpenAI segue apontando paraapi.openai.com. Solução: confira se o construtor do cliente recebebase_url="https://openrouter.ai/api/v1". Esse é o passo que mais esquecem, justamente porque a compatibilidade com o SDK da OpenAI faz o resto funcionar como se nada tivesse mudado.
- Slug de modelo inválido. Sintoma: erro informando modelo não encontrado. Causa: nome incompleto ou inventado. O formato é
provedor/modelo, e o catálogo muda com o ecossistema. Solução: valide o slug no catálogo de modelos ou consulteGET /api/v1/modelsantes de codificar o identificador fixo no código. Prefira slugs confirmados pelo endpoint de listagem em vez de nomes de memória.
- Limite de requisições atingido no plano gratuito. Sintoma: chamadas recusadas após algumas dezenas no dia. Causa: os 50 requisições por dia do free tier, ou os 20 por minuto após os US$ 10 acumulados. Solução: para experimentação, espere a janela de limite; para desenvolvimento contínuo, adicione créditos e monitore consumo no painel. Em produção, implemente controle de taxa no cliente em vez de assumir que o intermediário absorverá rajadas.
- Saldo zerado no meio do fluxo. Sintoma: chamadas passam a falhar após funcionarem por dias. Causa: créditos pré-pagos esgotados, que é o comportamento esperado de um modelo sem fatura recorrente. Solução: recarregue no painel. Para ambientes de produção, configure alerta de saldo e considere o desconto de 1% do registro de prompts apenas depois da avaliação de privacidade descrita acima.
- Confundir OpenRouter com OmniRoute. Sintoma: você seguiu instruções de instalação local (npm ou Docker) quando queria o serviço hospedado, ou vice-versa. Solução: confirme a URL do projeto. O serviço hospedado vive em
openrouter.ai; o gateway autônomo de código aberto está no repositório da OmniRoute. Nomes parecidos, operações incomparáveis: um é conta e créditos, o outro é container no seu servidor.
- Dado sensível enviado por padrão com registro ativo. Sintoma: nenhum erro, mas a decisão de privacidade nunca foi tomada conscientemente. Solução: revise a configuração de registro de prompts antes de apontar fluxos reais de clientes para o endpoint.
Manutenção e revisão da integração
Configurar é a parte curta. Três rotinas mantêm a integração saudável. Revise o catálogo periodicamente: o ecossistema de modelos muda rápido, e o alias de família "mais recente" documentado pelo serviço evita redeplploys, mas vale conferir no catálogo qual alias se aplica à família que você usa. Acompanhe o painel de uso semanalmente nos primeiros dois meses, correlacionando consumo com valor de negócio gerado; é o único jeito de saber se a taxa de plataforma de 5,5% da recarga é barata perto do custo de manter múltiplas integrações, e a resposta varia por time. E teste o fallback com intenção: desabilite temporariamente o modelo primário e observe se o roteamento automático atende pelo caminho alternativo antes de confiar nele em produção. Esse procedimento de desativação é uma simulação sua, não um evento real, e serve para verificar o comportamento que a documentação do serviço atribui ao roteador.
Uma nota de escopo para quem compara fornecedores: o mesmo comparativo do PremiumPeek registra que alternativas pagas no nicho de gateways, como a versão comercial de ferramentas de código aberto, cobram assinatura mensal sobre o uso. A comparação honesta entre OpenRouter e alternativas autônomas como a OmniRoute precisa incluir o custo do time que opera o próprio gateway, ponto que o artigo da ProvenLabs reconhece explicitamente: auto-hospedar não é de graça, apenas transfere a fatura para a folha da equipe.
Perguntas frequentes
O OpenRouter é gratuito?
Existe um plano gratuito com mais de 25 modelos gratuitos de 4 provedores, limitado a 50 requisições por dia, segundo compilação verificada do PremiumPeek. O uso sério exige créditos pré-pagos em dólares; após acumular US$ 10 em créditos, os limites sobem para 20 requisições por minuto e 1.000 por dia.
Quanto custa usar do Brasil?
A cobrança é em dólares americanos, via créditos pré-pagos recarregados no painel com cartão. Há uma taxa de plataforma de 5,5% sobre cada recarga, sem markup por token, e o valor final em reais depende do câmbio e das tarifas internacionais do emissor do cartão, que variam por banco.
Trocar de modelo exige reescrever o código?
Não, no caso comum. O serviço normaliza o esquema de requisição e resposta entre modelos e provedores, e a integração é compatível com o SDK da OpenAI trocando apenas a URL base e a chave. Trocar o slug do modelo na chamada costuma bastar; recursos específicos de um modelo podem exigir ajustes pontuais.
OpenRouter e OmniRoute são o mesmo produto?
Não. O OpenRouter é um serviço hospedado de roteamento com cobrança por créditos pré-pagos. A OmniRoute é um gateway de código aberto licenciado em MIT que você instala na própria infraestrutura, sem taxa de intermediação, mas também sem a operação gerenciada. São alternativas ao mesmo problema, com perfis de custo e operação opostos.
Configurar o endpoint único é uma tarde de trabalho, e o retorno aparece no primeiro incidente de provedor que sua aplicação atravessar sem página de erro.
