Resposta e metadados
Toda resposta de sucesso tem duas partes: data (as linhas) e meta (o contexto — de quando são os dados, quanto do seu limite sobrou, se há mais páginas).
O envelope
JSON
{
"data": [
{ "rep_code": 12, "billed_value": 98123.45, "nfs": 71, "customers": 38 }
],
"meta": {
"operation": "aggregate",
"resource": "api.sales_ledger",
"group_by": ["rep_code"],
"metrics": ["billed_value", "nfs", "customers"],
"data_as_of": "2026-07-02T13:40:00.000Z",
"freshness_minutes": 9,
"row_count": 1,
"has_more": false,
"rate_limit": 600,
"rate_remaining": 597,
"plan": "starter",
"monthly_rows_used": 1292,
"monthly_rows_limit": 5000000
}
}De quando são estes dados?
data_as_of e freshness_minutes dizem quando o coletor sincronizou os dados pela última vez com o seu Winthor. “Dados de 9 minutos atrás” significa exatamente isso — a resposta não é “ao vivo”, é a última foto sincronizada. Para conferências ao centavo contra uma rotina do Winthor, rode as duas no mesmo dia.
R$ 0 honesto
Pedir “vendas de hoje” antes de o faturamento do dia processar devolve zeros — é o estado real do momento, não um erro. O OpenThor nunca inventa número.
Campos do meta
| Campo | O que significa |
|---|---|
data_as_of · freshness_minutes | Última sincronização do coletor para este dado. |
row_count | Linhas nesta resposta. |
has_more | Provavelmente há mais páginas (vem true quando a página voltou cheia — na última página exatamente cheia também). |
offset | Deslocamento usado nesta página. |
rate_limit · rate_remaining | Seu limite por minuto e quanto resta na janela atual. Não há cabeçalhos X-RateLimit-* — é aqui que a informação mora. |
plan · monthly_rows_used · monthly_rows_limit | Plano e consumo de linhas no mês (o valor já inclui as linhas desta chamada). Veja Limites e planos. |
operation · resource · group_by · metrics | O “recibo” da consulta: o que foi executado, sobre qual recurso. |
Esta página ajudou? Conte para a gente — lemos tudo.