Em 17 de agosto de 2026, o OpenRouter revelou que um de seus próprios modelos de prévia estava custando silenciosamente cerca de US$ 6,2 mil por mês — aproximadamente 25 vezes a tarifa média combinada da organização. Desse valor, 98% vinha de uma única chave de API usada por um pipeline em lote. O painel de atividade, lançado no mesmo dia, foi criado para encontrar esse tipo de erro em minutos, não meses. A interface cumpre bem esse papel: reúne gastos, tokens, taxa de acerto do cache e detalhes de cada requisição. Já a API Analytics beta, que fica por baixo, é mais áspera — e seus limites aparecem a seguir.
A lição de US$ 6,2 mil: o que o painel de atividade do OpenRouter encontra
O estudo de caso publicado no lançamento mostra exatamente o problema que essas ferramentas tentam evitar. Um modelo de prévia consumiu US$ 6.185 em 250 milhões de tokens ao longo de um mês — cerca de US$ 24,7 por milhão de tokens, com taxa de acerto do cache de 7,6%. Ao detalhar os dados por chave de API, uma delas, batch-pipeline, concentrava US$ 6.067 desse total, distribuídos por 127 milhões de tokens e 37 mil requisições. Isso equivale a aproximadamente US$ 48 por milhão de tokens para um trabalho em lote de alto volume e baixa complexidade. A correção foi uma troca de modelo em uma única linha (veja o detalhamento completo no guia de controle de custos).
Também chegaram com o painel: a visualização Explore, para consultas personalizadas; Trends, para detectar mudanças; Guardrails, voltado a eventos de prompt injection e dados confidenciais; logs no nível da requisição; a API Analytics beta; e a skill openrouter-analytics no GitHub, que pode ser instalada por agentes de programação.
O que cada aba de Activity responde
O painel de atividade do OpenRouter é organizado mais em torno de perguntas do que de menus. Três abas concentram praticamente todo o trabalho de análise de custos, e cada uma responde a uma questão diferente.
Overview: quanto gastamos?
A aba Overview começa com cinco métricas principais: gasto total, número de requisições, volume de tokens, taxa de acerto do cache e custo médio combinado por milhão de tokens. Todas vêm acompanhadas de um gráfico compacto e de uma comparação com o período anterior. Abaixo aparecem os principais usuários e aplicativos, os gastos por modelo, a divisão entre créditos do OpenRouter e gasto estimado via BYOK, além da contagem de tokens de prompt e de conclusão. É a aba certa para quando a pergunta é simplesmente quanto foi gasto.
Trends: o que mudou desde o período anterior?
Trends prioriza mudanças, não os maiores valores absolutos, analisando modelos, usuários, chaves de API e aplicativos. É feita para encontrar um agente descontrolado, um modelo que acabou de ganhar popularidade ou uma ferramenta interna que deixou de ser experimento e virou padrão. A Overview mostra o que está caro; a Trends mostra o que acabou de ficar caro.
Explore: como faço meu próprio recorte?
Explore é o construtor de consultas. Entre as métricas disponíveis estão gastos, requisições, várias categorias de tokens, taxa de acerto do cache, custo médio por milhão de tokens, gastos via BYOK contra créditos, além de latência e throughput P50/P90/P99.
É possível agrupar por no máximo duas dimensões por vez, escolhidas entre modelo, provedor, chave de API, aplicativo, usuário, workspace, país, região, tamanho do contexto, sessão, geração, IDs personalizados e classificadores. Os agrupamentos temporais vão de minuto a mês, os gráficos podem ser de barras, linhas ou pontos, e qualquer gráfico pode ser salvo de forma privada ou para toda a organização. Há duas ressalvas: uma terceira dimensão de agrupamento é rejeitada imediatamente, e o conteúdo de prompts e respostas nos logs só aparece se o registro privado de entradas e saídas tiver sido ativado antes da execução da requisição.
Exporte para CSV ou PDF sem encostar na API
Contadores e planilhas não precisam da API. A página Activity exporta os mesmos números agregados em relatórios resumidos ou detalhados, em dois formatos e sem exigir código. O fluxo oficial de exportação tem cinco etapas:
- Abra a página Activity.
- Escolha um período e um agrupamento (modelo, chave de API ou criador).
- Abra o menu de opções no canto superior direito.
- Selecione Export to….
- Escolha CSV ou PDF.
A exportação padrão é um resumo que reúne gastos, tokens e requisições. Para gerar um relatório detalhado, abra primeiro um cartão de métrica específico e só então faça a exportação: a versão detalhada divide aquela métrica pelo agrupamento escolhido. O período selecionado define automaticamente o intervalo menor:
| Filtro de tempo | Subintervalo |
|---|---|
| 1 hora | por minuto |
| 1 dia | por hora |
| 1 mês | por dia |
| 1 ano | por mês |
Dois detalhes importantes da documentação: os gastos via BYOK nesses relatórios são uma estimativa baseada nas tarifas de mercado dos provedores e podem não coincidir com a cobrança externa real, já que descontos específicos de cada provedor não entram no cálculo. Tokens de raciocínio são cobrados dentro dos tokens de conclusão, mas aparecem em uma categoria separada no relatório. Assim, dá para enxergar a parte de “pensamento” da conta sem contá-la duas vezes.
Sua primeira consulta à API Analytics em cinco minutos
A API Analytics expõe os mesmos dados calculados pelo Explore, por meio de dois endpoints. Como ela está explicitamente em beta, o fluxo deve começar pela descoberta dos recursos disponíveis — e não pela consulta em si.
A exigência da chave de gerenciamento
Os endpoints de Analytics exigem uma chave de gerenciamento; uma chave comum de inferência recebe HTTP 403. O contrário também vale, segundo o guia de controle de custos: chaves de gerenciamento não podem fazer requisições a modelos. Isso reduz o impacto caso uma delas vaze, embora ainda deixe exposto o detalhamento completo dos gastos da organização. A recomendação do guia é direta: trate essa chave como qualquer outra credencial.
Primeiro os metadados, depois a consulta
GET /api/v1/analytics/meta retorna as métricas, dimensões, operadores de filtro e granularidades atualmente compatíveis. Consulte esse endpoint antes de cada execução automatizada, porque o suporte pode mudar durante a fase beta. O endpoint de consulta propriamente dito é POST /api/v1/analytics/query. Este é o exemplo documentado com cURL:
curl -X POST https://openrouter.ai/api/v1/analytics/query \
-H "Authorization: Bearer <management-key>" \
-H "Content-Type: application/json" \
-d '{
"metrics": ["request_count"],
"dimensions": ["model"],
"granularity": "day",
"limit": 100,
"time_range": {
"start": "2026-08-01T00:00:00Z",
"end": "2026-08-08T00:00:00Z"
}
}'
As respostas colocam as linhas dentro de data.data e incluem um bloco metadata com query_time_ms, row_count e truncated. O guia registra consultas de exemplo com 17 ms para uma única linha, portanto são chamadas baratas. O fluxo também é descrito como somente leitura e gratuito além dos custos de uso que você já teria. Os erros documentados são 400 (consulta inválida), 401 (sem autenticação), 403 (tipo incorreto de chave), 408 e 500.
Quatro consultas para encontrar gastos excessivos
O guia oficial traz cinco receitas. Reorganizadas como uma sequência, elas formam uma investigação de custos que pode ser repetida.
1. Qual modelo consome mais? A primeira consulta do guia solicita total_usage, request_count, tokens_total e cache_hit_rate, agrupados por model e ordenados pelo gasto:
{
"metrics": ["total_usage", "request_count", "tokens_total", "cache_hit_rate"],
"dimensions": ["model"],
"order_by": { "metric": "total_usage", "direction": "desc" },
"limit": 10,
"time_range": { "start": "2026-07-01T00:00:00Z", "end": "2026-08-01T00:00:00Z" }
}
O número derivado mais importante é o custo efetivo por milhão de tokens: total_usage / tokens_total × 1e6. Compare-o com sua tarifa média combinada — usando a mesma fórmula, mas sem dimensões — e aplique a heurística do guia: um modelo cujo preço seja várias vezes maior que essa média é o sinal mais forte para investigação. Foi assim que surgiu a anomalia do modelo de prévia, com custo 25 vezes maior.
2. Qual chave de API está causando o problema? Adicione um filtro para o slug exato do modelo e agrupe por api_key_id. Os resultados resolvem os nomes para rótulos legíveis, permitindo identificar que batch-pipeline concentrava US$ 6.067 dos US$ 6.185 problemáticos. Agrupe por api_key_id, em vez de filtrar pelos nomes resolvidos das chaves, e use o user_email retornado para conferir os gastos com os registros internos.
3. No que o dinheiro foi gasto? Divida o gasto diário em componentes:
| Métrica | Significado |
|---|---|
usage_upstream | custo bruto de inferência |
usage_cache | economia com cache (ou custo de gravação no cache) |
usage_data | descontos, geralmente negativos |
usage_web | sobretaxa de busca na web |
usage_file | sobretaxa de processamento de arquivos |
Uma proporção de prompt para conclusão próxima de 20:1 indica um contexto grande demais, enquanto uma participação elevada de tokens de raciocínio mostra que você pode estar pagando por um processamento que não é necessário. O melhor alvo para cache é um tráfego dominado por prompts e com baixa taxa de acerto; se a taxa já for alta, examine a combinação de modelos. Prompts longos são a regra, não a exceção: uma análise dos dados públicos do OpenRouter na categoria de programação mediu 93,4% desses tokens como entradas.
4. A correção funcionou? Repita a consulta 1 como uma série temporal semanal, agrupada por api_key_id. No exemplo oficial, a chave batch-pipeline caiu de US$ 1.402,50 na semana de 31 de maio para US$ 11,20 na semana de 7 de junho. Quando a troca de modelo dá certo, o gráfico mostra um penhasco, não uma descida gradual.
Se o próximo passo depois da consulta 1 for migrar para um modelo mais barato, é na camada de roteamento do próprio OpenRouter que essa decisão será aplicada. Os compromissos entre roteamento automático e modelo fixado estão explicados em nosso guia do roteador automático do OpenRouter.
Seis arestas da API beta que a referência não deixa tão claras
A API funciona como documentado depois que a consulta está correta. Os problemas abaixo também aparecem na documentação, mas estão espalhados pelas notas de rodapé do guia.
- Três dimensões resultam em 400. O limite é de duas; uma análise
model × key × dayexige várias consultas ou uma granularidade temporal. group_limitpode truncar silenciosamente os intervalos de tempo. Deixe-o sem definir para que o OpenRouter calcule automaticamente um valor seguro. Se for baixo demais, semanas desaparecem das séries temporais. Sem dimensões, ele é ignorado por completo.- Métricas de contagem às vezes chegam como strings. A referência mostra números, mas a API pode retornar strings. Faça o parser aceitar os dois formatos.
- Os nomes das colunas de séries temporais são ambíguos. O mesmo intervalo pode aparecer como
date__dayoucreated_at__day, dependendo do formato da consulta. - Componentes de custo não utilizados retornam
null, não zero. Qualquer script de agregação precisa tratar esse valor. metadata.truncated: truesignifica que os totais estão incompletos. Aumente olimit(padrão de 1.000) ou reduza o período e execute novamente.
Painel, API ou seu próprio pipeline?
As ferramentas nativas resolvem as perguntas relacionadas à conta. Hospedar sua própria solução só começa a valer a pena quando você passa desse limite:
| Você precisa de… | Use |
|---|---|
| Gastos, tokens e taxa de cache em uma visão rápida | Activity Overview |
| O que mudou e o que está disparando | Trends |
| Recortes pontuais e compartilhamento | Explore + exportação CSV/PDF |
| Relatórios agendados, alertas e painéis internos | API Analytics |
| Agregação entre vários provedores, orçamentos por usuário e detecção personalizada de anomalias | Um pipeline próprio com logs de uso e webhooks |
O caminho de criar uma solução própria já foi trilhado por muita gente. Um participante do r/FinOps escreveu:
"Criei meu próprio rastreador de custos de IA no Obsidian porque o preço de um modelo saltou de centavos para 3 € da noite para o dia."
Essa discussão e o tópico do r/openrouter, "Os preços de contextos longos deveriam ser mais transparentes", apontam para a mesma causa: estimativas locais se afastam dos valores cobrados por causa de roteamento, cache, tokens de raciocínio e preços de contextos longos. O uso registrado no painel de atividade é o número oficial; se você criar sua própria infraestrutura, faça a conciliação com ele, não com sua própria tabela de preços.
Uma alternativa mais simples de atribuição, sugerida por um desenvolvedor com seis meses de uso da plataforma, é marcar as requisições com cabeçalhos X-Title, para que cada aplicativo ou experimento apareça com seu próprio nome no Activity. E, se seus gastos já estiverem distribuídos entre vários provedores, em vez de concentrados em um único roteador, uma configuração de API unificada — como a da AIReiter — resolve o problema de agregação antes mesmo que ele comece.
Perguntas frequentes
Preciso de uma chave de gerenciamento para usar o painel de atividade?
Não. O painel funciona exclusivamente pela interface, usando o login normal da sua conta. A chave de gerenciamento só é necessária para os endpoints da API Analytics (/api/v1/analytics/meta e /api/v1/analytics/query).
A API Analytics do OpenRouter é gratuita?
O guia descreve o fluxo de Analytics como somente leitura e gratuito: você consulta seus próprios registros de uso, sem pagar por chamada. A inferência descrita nesses registros continua sendo cobrada normalmente.
Até quando retrocedem os dados de atividade do OpenRouter?
O endpoint antigo /api/v1/activity cobre os 30 dias completos anteriores em UTC. A documentação da nova API Analytics não informa um limite de retenção — seus exemplos abrangem um mês —, portanto considere o histórico de períodos longos não verificado e exporte os dados em CSV quando precisar preservá-los.
Por que não consigo ver prompts e respostas nos logs de atividade?
Os detalhes de prompts e conclusões só existem para requisições em que o registro privado de entradas e saídas estava ativado no momento da chamada — o anúncio é explícito ao dizer que o conteúdo histórico de prompts não pode ser recuperado sem essa opção. Os totais são registrados; o conteúdo depende de ativação.
O custo que você precisa considerar
Tudo isso já pode ser implementado hoje, e a consulta 1 sozinha já justifica os cinco minutos de configuração. O risco em aberto é a mudança de comportamento: esta é uma beta identificada como tal, cujas métricas e dimensões compatíveis podem mudar. O próprio OpenRouter recomenda reler /meta antes de confiar no esquema em uma automação. Proteja seus cron jobs com uma verificação dos metadados, em vez de hardcodar nomes de campos, e a visibilidade do painel continuará útil mesmo enquanto a API amadurece.
Leia também: Guia do roteador automático do OpenRouter · Melhores modelos gratuitos do OpenRouter para programação · Guia de preços do OpenRouter