> For the complete documentation index, see [llms.txt](https://outboundpro.gitbook.io/api-v1/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://outboundpro.gitbook.io/api-v1/lead-enrich-batch/contar-leads.md).

# Contar leads

## Quantos leads casam com os filtros (sem rodar simulação)

> Útil para validar filtros antes de enfileirar: evita criar job pra 50k\
> leads quando você queria 50. Roda em <1s pra \`lead\_ids\[]\` explícitos.\
> \
> \### Filtros padrão (importante)\
> \
> \*\*Quando \`filtros{}\` não inclui \`status\_id\`\*\*, a API aplica automaticamente\
> \`status\_id=1\` (mesmo default que o painel \`/prospeccao/lead\` usa quando\
> você entra sem filtro). Isso evita acidentes tipo "queria 50 leads e peguei\
> os 35.000 da base".\
> \
> Pra \*\*desligar esse default explicitamente\*\* e buscar em todos os leads do\
> cliente, passe \`\_sem\_defaults: true\` dentro de \`filtros\`:\
> \
> \`\`\`json\
> { "filtros": { "\_sem\_defaults": true } }\
> \`\`\`\
> \
> \`lead\_ids\[]\` explícito \*\*não aplica defaults\*\* — você sabe exatamente\
> quais leads quer.<br>

````json
{"openapi":"3.0.3","info":{"title":"OutboundPro API","version":"2.0.0"},"tags":[{"name":"Lead","description":"**Empresas já existentes na sua base** (após enriquecimento via\n[Company](#tag/Company) ou cadastro manual no painel).\n\nO termo \"Lead\" no OutboundPro = \"empresa rastreada por você\". Cada lead tem\nstatus (Novo, Em prospecção, Convertido, etc.), lista vinculada, scoring\nautomático e contatos (sócios) associados.\n\n### Diferença Company × Lead\n- **Company** = empresa pelo CNPJ; consulta a base pública (RFB) do OutboundPro e pode salvar como lead.\n- **Lead** = consulta sua base local; **rápido**, sem lookup externo.\n\nSe você sabe que a empresa já está na sua base, prefira `lead/*` por\nperformance.\n\n### Estrutura típica\n- `id` (`emp_codigo`) ou `hash` (`emp_hash`) — identificadores estáveis.\n- `status` — fluxo configurável por cliente ([Status](#tag/Status)).\n- `lista` — agrupamento ([List](#tag/List)).\n- `contatos` — sócios ([Contact](#tag/Contact)).\n"}],"servers":[{"url":"https://app.outboundpro.com.br/api","description":"Produção"}],"security":[{"TokenAuth":[]}],"components":{"securitySchemes":{"TokenAuth":{"type":"apiKey","in":"header","name":"Token","description":"Chave privada do cliente (`cli_chave_privada`). Formato UUID v4\n(36 caracteres com hífens). Aceita header em qualquer case\n(`Token`, `token`, `TOKEN`).\n"}},"responses":{"Unauthorized":{"description":"Token ausente, inválido ou cliente inativo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"schemas":{"ErrorResponse":{"type":"object","required":["response"],"properties":{"response":{"type":"string","enum":["error"]},"mensagem":{"type":"string","description":"Descrição do erro em pt-BR. Família Contact usa `message` (legado)."},"message":{"type":"string","description":"Equivalente inglês de `mensagem`, usado pela família Contact."}}}}},"paths":{"/lead-enrich-batch/count":{"post":{"tags":["Lead"],"summary":"Quantos leads casam com os filtros (sem rodar simulação)","operationId":"leadEnrichBatchCount","description":"Útil para validar filtros antes de enfileirar: evita criar job pra 50k\nleads quando você queria 50. Roda em <1s pra `lead_ids[]` explícitos.\n\n### Filtros padrão (importante)\n\n**Quando `filtros{}` não inclui `status_id`**, a API aplica automaticamente\n`status_id=1` (mesmo default que o painel `/prospeccao/lead` usa quando\nvocê entra sem filtro). Isso evita acidentes tipo \"queria 50 leads e peguei\nos 35.000 da base\".\n\nPra **desligar esse default explicitamente** e buscar em todos os leads do\ncliente, passe `_sem_defaults: true` dentro de `filtros`:\n\n```json\n{ \"filtros\": { \"_sem_defaults\": true } }\n```\n\n`lead_ids[]` explícito **não aplica defaults** — você sabe exatamente\nquais leads quer.\n","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"lead_ids":{"type":"array","items":{"type":"integer"},"description":"IDs explícitos (não aplica defaults)."},"filtros":{"type":"object","description":"Mesmos filtros do painel. Se omitir `status_id`, aplica `status_id=1`\nautomaticamente (igual ao painel sem filtros).\nUse `_sem_defaults: true` pra desligar.\n","additionalProperties":true}}}}}},"responses":{"200":{"description":"Quantidade casada. Inclui `warning` quando `lead_ids[]` específicos não casam (excluídos, inexistentes na base do cliente).","content":{"application/json":{"schema":{"type":"object","properties":{"response":{"type":"string","enum":["success"]},"filtros_aplicados":{"type":"object"},"quantidade_empresas":{"type":"integer"},"warning":{"type":"object","description":"Presente apenas quando `lead_ids[]` foram passados e nenhum casou.","properties":{"motivo":{"type":"string","description":"Mensagem amigável explicando por que não casou."},"leads_excluidos":{"type":"array","items":{"type":"integer"},"description":"IDs marcados como excluídos."},"leads_nao_disponiveis":{"type":"array","items":{"type":"integer"},"description":"IDs que não existem na sua base."}}}}}}}},"400":{"description":"Body inválido (ex. `lead_ids` não é array, `filtros` não é objeto).","content":{"application/json":{"schema":{"type":"object","properties":{"response":{"type":"string","enum":["error"]},"mensagem":{"type":"string"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"}}}}}}
````
