| Campo | Tipo | Obrigatório | O que faz |
|---|---|---|---|
table | string | sim | Tabela a consultar (empresa, cliente, negociacao, financeiro, …). |
select | string[] | não | Colunas a retornar. Omita pra trazer todas as visíveis. |
filter | object[] | não | Lista de condições AND ({field, operator, value}). |
sortBy | string | não | Coluna pra ordenar. |
sortDirection | string | não | asc (padrão) ou desc. |
page | object | não | Paginação {page, limit} — page é 0-indexado. |
filter[].operator)| Operador | Significado | Tipo de value | Exemplo |
|---|---|---|---|
= | igual | string / number / boolean | {"field":"ativo","operator":"=","value":true} |
!= ou <> | diferente | string / number / boolean | {"field":"ativo","operator":"!=","value":false} |
> < >= <= | comparação numérica/data | number / date | {"field":"id","operator":">=","value":100} |
in | está na lista | array | {"field":"id","operator":"in","value":[1,2,3]} |
Comparação exata — não há LIKE/fuzzy. Pra busca textual livre,
use o endpoint de search específico (fora do escopo desta API).
"00.000.000/0001-00"). Aspas obrigatórias.12, 12.5).true/false (sem aspas — não use "true")."2026-01-01T00:00:00Z").in ([1,2,3]).filter[] retorna tudo (até page.limit registros).cnpj / cpf_cnpj no banco são sem formatação (sem pontos/barras): use "11111111000111", não "11.111.111/0001-11".company filtram deleted_at IS NULL automaticamente — soft-deletadas somem do read.page.page começa em 0 (primeira página = 0).id_ticket nas tabelas do CRM é o id_seq, não o UUIDnegociacao é a mais comum — a coluna id_ticket guarda o id_seq do ticket (o número sequencial, ex.: 564448), não o UUID.| Identificador | Formato | Onde se usa |
|---|---|---|
id do ticket | UUID (84cefe00-761e-...) | Endpoints de ticket: /ticket/message, /ticket/finish, /ticket/link_customer, /ticket/info/{id} |
id_seq do ticket | inteiro (564448) | Coluna id_ticket das tabelas do CRM |
id e id_seq.id_ticket não devolve erro — a coluna é textual — mas o registro fica invisível para a plataforma, que consulta essas tabelas por id_seq. O atendimento aparece sem a negociação vinculada mesmo com a linha existindo no CRM.curl --location '/api/v2/crm/data/filter' \
--header 'api-key: {{api-key}}' \
--header 'Content-Type: application/json' \
--data '{
"table": "empresa",
"select": [
"id",
"razao_social",
"nome_fantasia",
"cnpj",
"ativo"
],
"filter": [
{
"field": "cnpj",
"operator": "=",
"value": "11111111000111"
}
],
"sortBy": "id",
"sortDirection": "asc",
"page": {
"limit": 100,
"page": 0
}
}'[
{
"id": 1,
"nome_fantasia": "Empresa Fantasia",
"cnpj": "11111111000111"
},
{
"id": 2,
"nome_fantasia": "Empresa Exemplo Fantasia",
"cnpj": "22222222000122"
},
{
"id": 3,
"nome_fantasia": "Midiahub fantasia",
"cnpj": "22222222222222"
}
]