Listas
Base path: /api/v1/lists
Scopes: lists:read | lists:write
Listas agrupam contatos, empresas ou deals pra usar em campanhas, segmentação ou exports.
- Listas estáticas — membros adicionados/removidos manualmente
- Listas dinâmicas — definidas por filtros, recalculadas automaticamente (1x/min) quando dados mudam
Via API você pode ler ambos os tipos. Para escrita, API Key só manipula listas estáticas (add/remove de membros) — listas dinâmicas são criadas/editadas pela UI porque a definição dos filtros é complexa.
Lista todas as listas
GET /api/v1/lists?objectType=contactScope: lists:read
| Param | Tipo | Descrição |
|---|---|---|
objectType | contact | company | deal | Filtra por tipo |
[ { "id": "ckl4ls01...", "name": "Clientes ativos SP", "objectType": "contact", "kind": "dynamic", "memberCount": 234, "createdAt": "2026-03-01T00:00:00.000Z", "updatedAt": "2026-05-22T17:00:00.000Z" }, { "id": "ckl4ls02...", "name": "Convidados evento", "objectType": "contact", "kind": "static", "memberCount": 87, "createdAt": "2026-05-15T00:00:00.000Z" }]Busca uma lista
GET /api/v1/lists/:idScope: lists:read
Cria uma lista
POST /api/v1/listsScope: lists:write
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | ✅ | Nome |
objectType | contact | company | deal | ✅ | Tipo |
kind | static | ✅ | Via API só static. Dinâmicas pela UI |
description | string | — | Descrição opcional |
curl -X POST https://app.indutivacrm.com.br/api/v1/lists \ -H "X-API-Key: crm_live_..." \ -H "Content-Type: application/json" \ -d '{ "name": "Importados do Mailchimp", "objectType": "contact", "kind": "static" }'Atualiza uma lista
PATCH /api/v1/lists/:idScope: lists:write
Permite renomear / atualizar descrição. Não permite mudar objectType ou kind.
Deleta uma lista
DELETE /api/v1/lists/:idScope: lists:write
Soft-delete da lista. Membros não são deletados — contatos, empresas, deals continuam intactos, só perdem a associação com essa lista.
Lista membros
GET /api/v1/lists/:id/members?page=1&pageSize=100Scope: lists:read
Retorna a paginação padrão ({ data, pagination }). data[].id é o id do contato/empresa/deal (não da membership).
Adiciona membros
POST /api/v1/lists/:id/membersScope: lists:write
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
objectIds | string[] | ✅ | IDs de contatos/empresas/deals (depende do objectType da lista) |
curl -X POST https://app.indutivacrm.com.br/api/v1/lists/ckl4ls02.../members \ -H "X-API-Key: crm_live_..." \ -H "Content-Type: application/json" \ -d '{"objectIds": ["ckl4c01...", "ckl4c02...", "ckl4c03..."]}'IDs duplicados (já membros) são silenciosamente ignorados — operação idempotente.
Remove um membro
DELETE /api/v1/lists/:id/members/:objectIdScope: lists:write
Remove o objeto (contato/empresa/deal) da lista. Resposta 204 No Content.
Erros específicos
| Status | error | Cenário |
|---|---|---|
| 409 | list_kind_mismatch | Tentou manipular membros de lista dinâmica |
| 400 | validation_failed | Campos obrigatórios faltando |
| 404 | not_found | Lista, objeto ou membro não existe |