Listar e buscar leads
const url = 'https://dattacrm.com.br/api/v1/leads?limit=50&listId=0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f&stageId=0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f&origin=site&originKind=site&updatedSince=2026-10-19T12%3A00%3A00.000Z&includeHidden=true';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://dattacrm.com.br/api/v1/leads?limit=50&listId=0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f&stageId=0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f&origin=site&originKind=site&updatedSince=2026-10-19T12%3A00%3A00.000Z&includeHidden=true' \ --header 'Authorization: Bearer <token>'Lista os leads da conta, do mais novo para o mais antigo, em páginas. Contatos ocultos ficam de fora, a não ser com includeHidden=true. Os filtros se combinam (todos precisam valer). Use nextCursor no parâmetro cursor para buscar a página seguinte; quando vier nulo, acabou.
Authorizations
Seção intitulada “Authorizations ”Parameters
Seção intitulada “ Parameters ”Query Parameters
Seção intitulada “Query Parameters ”Cursor da página anterior (nextCursor).
Cursor da página anterior (nextCursor).
Itens por página (1 a 200, padrão 50).
Itens por página (1 a 200, padrão 50).
Filtra pelo e-mail exato, sem diferenciar maiúsculas.
Filtra pelo e-mail exato, sem diferenciar maiúsculas.
Filtra pelo telefone. Aceita qualquer formato (máscara, +DDI); sem DDI vale o país padrão da conta.
Filtra pelo telefone. Aceita qualquer formato (máscara, +DDI); sem DDI vale o país padrão da conta.
Filtra por leads que têm esta tag (pelo nome).
Filtra por leads que têm esta tag (pelo nome).
Filtra por leads que fazem parte desta lista.
Example
0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6fFiltra por leads que fazem parte desta lista.
Filtra por leads que têm algum negócio nesta etapa (a etapa é de uma lista; veja list_lists). Um lead em duas listas conta pela etapa de cada uma.
Example
0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6fFiltra por leads que têm algum negócio nesta etapa (a etapa é de uma lista; veja list_lists). Um lead em duas listas conta pela etapa de cada uma.
Filtra pela origem do lead (a primeira, gravada na criação): site, whatsapp ou instagram.
Filtra pela origem do lead (a primeira, gravada na criação): site, whatsapp ou instagram.
Obsoleto: use origin. Tipos antigos viram a origem nova (importacao, venda, integracao e manual viram site). Ignorado quando origin vem junto.
Obsoleto: use origin. Tipos antigos viram a origem nova (importacao, venda, integracao e manual viram site). Ignorado quando origin vem junto.
Só leads alterados a partir deste instante (inclusive), em ISO 8601.
Example
2026-10-19T12:00:00.000ZSó leads alterados a partir deste instante (inclusive), em ISO 8601.
Com true, traz também os contatos ocultos (hidden: true). Padrão: só os visíveis.
Com true, traz também os contatos ocultos (hidden: true). Padrão: só os visíveis.
Responses
Seção intitulada “ Responses ”Sucesso.
object
Leads da página, do mais novo para o mais antigo.
Lead (contato/card do funil) no formato público da API.
object
Identificador do lead.
Nome do lead.
E-mail do lead, ou null quando não há.
Telefone no formato informado, ou null quando não há.
Tags do lead, pelo nome.
Listas das quais o lead faz parte. Pode ficar vazio.
Campos personalizados do lead, indexados pela chave do campo.
object
Valor do campo.
Primeira origem do lead (site, whatsapp ou instagram). Gravada na criação; nunca muda.
Rótulo da origem do lead: “Site”, “WhatsApp” ou “Instagram”.
Negócios do lead: um por lista de que ele faz parte (lead × lista), em ordem alfabética. Etapa, valor e motivo da perda são do negócio; mude com PATCH /leads/{id}/lists/{listId}.
Negócio do lead numa lista: a lista, a pasta, a etapa, o valor e o motivo da perda.
object
Identificador da lista.
Nome da lista.
Identificador da pasta da lista.
Nome da pasta da lista.
Origem da lista (site, whatsapp ou instagram).
Nome da etapa, ou null em lista de Site.
Valor do negócio nesta lista, em reais. Zero quando não definido.
Parâmetros UTM de atribuição do lead.
object
Utm_source do último toque.
Utm_medium do último toque.
Utm_campaign do último toque.
Utm_term do último toque.
Utm_content do último toque.
Contato oculto (equipe, pessoal): não aparece nas telas nem em GET /leads (só com includeHidden=true), não entra em lista nem dispara automações ou webhooks. Ocultar e mostrar só pela tela.
Quando o lead foi criado.
Quando o lead foi alterado pela última vez.
Link da ficha do lead no CRM, ou null quando o endereço não é conhecido.
Cursor da próxima página; nulo na última página.
Example
{ "data": [ { "id": "0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f", "listIds": [ "0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f" ], "ownerId": "0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f", "origin": "site", "lists": [ { "listId": "0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f", "folderId": "0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f", "origin": "site", "stageId": "0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f", "stageKind": "active", "stageEnteredAt": "2026-10-19T12:00:00.000Z", "lossReasonId": "0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f" } ], "hiddenAt": "2026-10-19T12:00:00.000Z", "createdAt": "2026-10-19T12:00:00.000Z", "updatedAt": "2026-10-19T12:00:00.000Z" } ]}Headers
Seção intitulada “Headers ”Identificador da requisição, para suporte.
Máximo de requisições por janela de 60 segundos para esta chave.
Requisições restantes na janela atual.
Fim da janela atual, em milissegundos desde a época Unix (epoch ms).
Dados inválidos na requisição (validation_error), lead novo sem lista (list_required), campo que mudou de lugar (field_moved) ou chave enviada na URL (api_key_in_url).
Formato de erro da API.
object
object
Código estável do erro, ex.: validation_error.
Mensagem legível em português.
Detalhes extras, ex.: lista de campos inválidos.
Identificador da requisição, para suporte.
Example generated
{ "error": { "code": "example", "message": "example", "details": "example", "requestId": "example" }}Headers
Seção intitulada “Headers ”Identificador da requisição, para suporte.
Chave ausente, inválida (invalid_api_key), vencida (api_key_expired) ou revogada (api_key_revoked).
Formato de erro da API.
object
object
Código estável do erro, ex.: validation_error.
Mensagem legível em português.
Detalhes extras, ex.: lista de campos inválidos.
Identificador da requisição, para suporte.
Example generated
{ "error": { "code": "example", "message": "example", "details": "example", "requestId": "example" }}Headers
Seção intitulada “Headers ”Identificador da requisição, para suporte.
Limite de requisições atingido (rate_limited). Aguarde Retry-After segundos.
Formato de erro da API.
object
object
Código estável do erro, ex.: validation_error.
Mensagem legível em português.
Detalhes extras, ex.: lista de campos inválidos.
Identificador da requisição, para suporte.
Example generated
{ "error": { "code": "example", "message": "example", "details": "example", "requestId": "example" }}Headers
Seção intitulada “Headers ”Identificador da requisição, para suporte.
Máximo de requisições por janela de 60 segundos para esta chave.
Requisições restantes na janela atual.
Fim da janela atual, em milissegundos desde a época Unix (epoch ms).
Segundos até poder tentar de novo.
Erro interno (internal_error). Informe o requestId ao suporte.
Formato de erro da API.
object
object
Código estável do erro, ex.: validation_error.
Mensagem legível em português.
Detalhes extras, ex.: lista de campos inválidos.
Identificador da requisição, para suporte.
Example generated
{ "error": { "code": "example", "message": "example", "details": "example", "requestId": "example" }}Headers
Seção intitulada “Headers ”Identificador da requisição, para suporte.