Sintaxe de consulta
Todos os endpoints são GET e entendem a mesma linguagem de parâmetros. Aprenda uma vez, use em todos.
Filtros: campo=op:valor
Qualquer parâmetro que não seja reservado é um filtro. Sem operador, vale a igualdade; com operador, use campo=op:valor:
| Operador | Leia como | Exemplo |
|---|---|---|
eq | igual a | rep_code=eq:12 (ou só rep_code=12) |
in | um destes (lista com vírgula) | rep_code=in:5,7,9 |
gte | maior ou igual a | days_overdue=gte:30 |
lte | menor ou igual a | margin_amount=lte:0 |
gt | maior que | stock_value=gt:10000 |
lt | menor que | qty_available=lt:1 |
Os valores são numéricos, exceto nos poucos campos de texto (ex.: goal_level, uf), que aceitam somente eq e in. Cada página de endpoint lista o que é filtrável.
Período: from e to
from e to (formato YYYY-MM-DD) definem a janela sobre a coluna de data do endpoint. As duas pontas são inclusivas — junho inteiro é from=2026-06-01&to=2026-06-30.
A janela pedida é cruzada com a janela da credencial: se a sua chave só enxerga a partir de uma data, pedir um from anterior estreita silenciosamente para o que a chave permite.
Escolher o que volta
Endpoints de leitura aceitam fields=a,b,c para devolver só as colunas pedidas. Endpoints agregados aceitam metrics=m1,m2 para escolher as métricas — e os de série temporal aceitam bucket=month|week|day.
Ordenação
sort=coluna ordena crescente; sort=-coluna, decrescente. Só as colunas listadas como ordenáveis em cada endpoint são aceitas.
Paginação
Use limit (respeitando o máximo do endpoint) e offset. Enquanto meta.has_more vier true, há mais páginas.
Para totais, use um endpoint /agg/… em vez de somar páginas de leitura — é uma chamada só, sem risco de contar linha duplicada entre páginas.
Exemplo completo
# títulos vencidos há 30+ dias, maiores primeiro, só 3 colunas
curl -H "Authorization: Bearer ot_live_SEU_TOKEN_AQUI" \
"https://api.openthor.dev/v1/receivables?days_overdue=gte:30&sort=-amount&limit=10&fields=customer_code,amount,days_overdue"Não há cursor de paginação (só limit/offset), não há métodos de escrita (POST/PUT/DELETE) e não há cabeçalhos X-RateLimit-* — o limite vem dentro de meta (veja Resposta e metadados).
Esta página ajudou? Conte para a gente — lemos tudo.