Pular para o conteúdo principal
Consulte URLs e autenticação HTTP e a referência da API para os formatos completos de solicitação e resposta. Consulte de forma programática o uso de IA, custo, latência, resultados de Evaluators e métricas de guardrails. A Reporting API retorna dados de séries temporais divididos por modelo, provedor, projeto, identidade e mais, em uma única solicitação JSON.
A Reporting API está obsoleta. As chamadas existentes para POST /v2/reporting continuam funcionando, mas novas integrações devem usar a Telemetry API, e as existentes devem migrar para ela.Para migrar uma solicitação:
  • Envie-a para POST /v3/telemetry/query com "source": "TELEMETRY_SOURCE_TRACES".
  • Substitua "metric": "genai.cost" por "compute": [{ "metric": "genai.cost", "op": "sum" }]. Os nomes de métricas genai.* são mantidos; consulte Fontes e métricas para ver as operações de cada métrica. Para genai.usage, use "op": "bundle".
  • Leia group em vez de dimensions em cada linha. As chaves de métricas são a métrica e a operação unidas por dois-pontos, por exemplo genai.cost:sum.

Dashboards de gastos

Acompanhe o custo por modelo, provedor, projeto ou tipo de credencial. Crie detalhamentos de faturamento por cliente.

Monitoramento de desempenho

Monitore a latência p50, p95 e p99 ao longo do tempo entre modelos e provedores.

Qualidade dos evaluators

Quantifique a taxa de aprovação, a pontuação média e a distribuição de resultados por Evaluator e versão.

Aplicação de guardrails

Meça a taxa de bloqueio, os acionamentos e os resultados por Policy e estágio.

Endpoint

POST https://router.toqan.ai/eu/v2/reporting
  • Todas as solicitações exigem um token Bearer. Consulte API Keys para saber como gerar um.
  • O escopo de workspace e de projeto é derivado da própria chave de API.
Os eventos de trace chegam ao reporting quase em tempo real, com um pequeno atraso de ingestão medido em segundos. Consultas em janelas muito recentes podem ainda não incluir os eventos mais recentes.

Consulte a Referência da API

Playground interativo e esquema completo de POST /v2/reporting.

Solicitação

O formato enviado é snake_case de ponta a ponta. Os SDKs expõem os mesmos campos no estilo nativo de cada linguagem (groupBy em TypeScript, group_by em Python).
grain define o bucket de tempo: auto, minute, hour ou day. Com auto, ou com o campo omitido, o servidor escolhe o bucket. A resposta informa o bucket aplicado em meta.effective_grain.
Consulte a referência da API para ver o esquema completo dos campos, tipos, valores padrão e regras de validação.
Formatação dos valores com mode: o modo padrão timeseries retorna uma linha por bucket de tempo. Defina "mode": "scalar" para agregar toda a janela: com group_by, a resposta traz uma linha por combinação de dimensões, ordenada por valor (uma top list, limitada por limit; inverta a ordem com "sort": "asc"), e sem group_by, exatamente uma linha (um único agregado). As linhas scalar omitem o campo timestamp.

Resposta

Toda resposta bem-sucedida segue o mesmo envelope. O array data contém buckets ordenados no tempo. Cada bucket contém:
  • um mapa dimensions: os valores de group_by daquela linha (consulte Dimensões)
  • um mapa metrics: o formato depende da métrica solicitada
Métricas escalares retornam um único valor nomeado por bucket. Métricas em pacote (como genai.usage) retornam um conjunto completo de campos relacionados em uma única chamada. totals só está presente quando include_totals: true é definido na solicitação; caso contrário, o campo é omitido. Os valores das métricas são arredondados para 10 casas decimais no servidor.

Catálogo de métricas

As métricas de quantil (genai.latency.p*, genai.ttft.p*) têm uma margem de erro de +/-1-2%, típica da estimativa por t-digest em alta cardinalidade. As métricas genai.ttft.* abrangem somente solicitações com streaming e não aceitam dimensões de entidade como agent ou tool.
As métricas de Evaluator e de guardrail são lidas da mesma fonte: toda execução de Evaluator é registrada como uma verificação de guardrail, independentemente do tipo de implementação do Evaluator. Escolha a métrica que corresponde à pergunta que está sendo feita.

Dimensões

As dimensões de entidade (agent, tool e assim por diante) estão disponíveis para métricas de uso e detalham uma métrica por uma entidade do produto.
billing_billable está disponível como campo de filtro para métricas de uso, mas não como dimensão de group_by. Para separar credenciais gerenciadas pelo Toqan Router das credenciais do cliente, use credential_type. Os valores orq_managed e customer_byok são derivados no momento da consulta a partir da configuração de faturamento do workspace, e não armazenados em cada evento.
Combine-as com genai.requests, genai.tokens, genai.cost, genai.errors, genai.latency.* ou genai.usage.Os valores de status_code correspondem às grafias da OQL e da Telemetry API em Valores de status de trace.

Erros

Os erros são retornados como envelopes JSON com um code numérico, uma message legível e um array details vazio.
Toda resposta bem-sucedida inclui meta.request_id. Inclua-o nos chamados de suporte para uma correlação rápida dos logs.

Limites

Acompanhamento de tokens e custos

Como o uso de tokens é capturado e o custo é calculado para cada solicitação de LLM.