API e MCP do LeadIA
A mesma base do app, por HTTP ou dentro do seu agente: empresas brasileiras com cadastro da Receita, quadro societário, eventos recentes e decisores. Buscar e ver a ficha não gastam crédito; abrir um contato gasta 1 crédito, como no app.
1. Crie uma chave
Entre na sua conta, vá em Conta e planos, API e MCP e clique em Criar chave. A chave começa com lia_ e aparece uma vez só. Envie em todas as chamadas:
Authorization: Bearer lia_xxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
2. Use no Claude e em outros agentes (MCP)
Servidor MCP remoto em https://leadia.reveno.com.br/mcp (Streamable HTTP). No Claude Code:
claude mcp add --transport http leadia https://leadia.reveno.com.br/mcp \
--header "Authorization: Bearer lia_SUA_CHAVE"
Cada ferramenta diz no começo da descrição se é grátis ou se gasta crédito, e o agente pede confirmação antes de abrir contatos em quantidade.
| Ferramenta | O que faz | Custo |
|---|---|---|
dimensionar_mercado | Tamanho do mercado do filtro, aberto por estado, setor, porte, funcionários, atividade ou cidade | grátis |
buscar_empresas | Lista de empresas com nota de prioridade | grátis |
empresas_parecidas | Mesma atividade, estado e tamanho de um CNPJ | grátis |
novidades | Aberturas, sócios novos e encerramentos da Receita | grátis |
ver_empresa | Ficha com contatos mascarados | grátis |
dossie_empresa | Por que a nota, sinais, decisores-chave e próximos passos | grátis |
abrir_contato | Revela o e-mail de um decisor ou os telefones | 1 crédito |
enriquecer_cnpjs | Lista de CNPJs enriquecida na mesma ordem | grátis; abrir decisores gasta |
listar_listas, salvar_lista | Listas salvas com alerta de empresas novas | grátis (número de listas pelo plano) |
sincronizar_lista | Manda a lista para o CRM pelos webhooks | planos pagos; conta na cota de sync |
uso_e_limites, minha_conta | Consumo no minuto, na hora e no dia, cota de sync e saldo | grátis |
Peça em linguagem natural, por exemplo: "qual o tamanho do mercado de indústrias de embalagem em Minas por cidade? Depois me mostre as 10 melhores com decisor de compras".
3. API REST
| Rota | O que faz | Crédito |
|---|---|---|
GET /v1/empresas | Busca com filtros na query: uf, cidade, cnae, porte, funcionarios, faturamento, temDecisor, evento, pagina (listas separadas por vírgula) | não |
POST /v1/empresas/busca | Mesma busca com o filtro em JSON: {"filtro": {...}, "pagina": 1} | não |
GET /v1/empresas/{cnpj} | Ficha: cadastro, sócios, eventos, decisores e telefones mascarados | não |
POST /v1/revelar | {"cnpj": "...", "tipo": "decisor", "id": "..."} ou {"cnpj": "...", "tipo": "telefones"} | 1 (repetir é grátis) |
GET /v1/novidades | Aberturas, sócios novos e encerramentos recentes: tipos, dias (7, 30, 90, 180, 365) e os filtros da busca | não |
POST /v1/enriquecer | Lista de CNPJs ({"cnpjs": [...]}) devolvida na mesma ordem, com status por linha; "abrir": "decisor" abre o melhor decisor de cada uma (planos pagos) | só com abrir |
GET /v1/conta | Saldo, plano e limites | não |
POST /v1/mercado | Tamanho do mercado: {"filtro": {...}, "por": "uf"}; por aceita uf, regiao (mesorregião do IBGE, no formato "UF:Nome" do filtro), setor, porte, funcionarios, cnae, cidade | não |
GET /v1/parecidas?cnpj= | Empresas da mesma atividade, estado e tamanho | não |
GET /v1/dossie?cnpj= | Dossiê para abordar: fatores da nota, sinais, decisores-chave (mascarados) e próximos passos | não |
GET /v1/listas, POST /v1/listas | Listas salvas; criar com {"nome": "...", "filtro": {...}, "alerta": true} | não |
GET /v1/webhooks, POST /v1/webhooks, POST /v1/webhooks/remover | Destinos de sync: {"url": "https://...", "listaId": 12} (sem listaId, recebe todas as listas) | não (planos pagos) |
POST /v1/listas/sincronizar | Manda agora as melhores empresas da lista: {"id": 12, "max": 200} (até 500) | não (conta na cota de sync) |
GET /v1/uso | Consumo no minuto, na hora e no dia, fichas do dia, cota de sync e saldo | não |
curl -s "https://leadia.reveno.com.br/v1/empresas?uf=SP&cnae=6201&temDecisor=true" \
-H "Authorization: Bearer lia_SUA_CHAVE"
Valores aceitos nos filtros
funcionarios:0,1 a 5,6 a 10,11 a 50,51 a 100,101 a 500,Acima de 501faturamento:1 a 80K,80K a 360K,360k a 1M,1M a 5M,5M a 10M,10M a 30M,30M a 100M,100M a 300M,300M a 500M,500M +porte:Microempresa,Empresa de pequeno porte,Demaisregiao: mesorregião do IBGE comoUF:Nome, separadas por vírgula (SP:Campinas,MG:Sul/Sudoeste de Minas);interior=trueexclui as mesorregiões metropolitanasnivel(do decisor):Alto,Médio,Baixocnae: código ou começo dele (62,6201) ou um texto da atividade (usinagem)ordem:prioridade(padrão, nota de 0 a 100),recentes,decisores,nomeevento:aberturaousocio_entrada, comeventoDias7, 30, 90, 180 ou 365
Exemplo de resposta de GET /v1/empresas
{ "total": 1428, "visivel": 1428, "pagina": 1, "paginas": 58, "plano": "pro",
"itens": [ { "cnpj": "...", "razaoSocial": "...", "cidade": "Campinas", "uf": "SP",
"cnae": "2539001", "funcionarios": "11 a 50", "decisores": 7, "decisoresChave": 2,
"telefones": 3, "whatsapp": 1, "prioridade": 85 } ] }
Enriquecer uma lista
curl -s https://leadia.reveno.com.br/v1/enriquecer -H "Authorization: Bearer lia_SUA_CHAVE" \
-H "content-type: application/json" -d '{"cnpjs": ["12345678000190", "98.765.432/0001-10"], "abrir": "decisor"}'
Sem abrir, não gasta crédito. Com "abrir": "decisor", abre o melhor decisor de cada empresa (1 crédito cada, reabrir é grátis).
Limites por plano
| Plano | Por minuto | Por hora | Por dia | Empresas por busca | Sync |
|---|---|---|---|---|---|
| Grátis | 10 | 60 | 100 | 100 | não incluso |
| Essencial | 60 | 1.000 | 5.000 | 2.000 | 1 webhook, 2.000 registros por mês |
| Pro | 120 | 3.000 | 20.000 | 10.000 | 5 webhooks, 20.000 registros por mês |
| Escala | 300 | 10.000 | 100.000 | 50.000 | 20 webhooks, 100.000 registros por mês |
Os limites valem por conta (time inteiro), somando API e MCP. Toda resposta da API traz X-RateLimit-Limit-Minute, -Hour e -Day e os X-RateLimit-Remaining-*. Acima do limite, a resposta é 429 com Retry-After em segundos. Erros trazem {"erro": "..."}: 401 sem chave válida, 402 sem crédito ou fora do plano, 404 sem contato (nada é cobrado), 429 acima do limite. Contato inválido pode ser reportado no app em até 30 dias, e o crédito volta.
Sync com CRM, n8n e Make
Nos planos pagos, cada webhook recebe um POST em JSON a cada mês novo da Receita que traga empresas que batem com a lista (a Receita publica uma vez por mês) ("evento": "lista.empresas_novas") e quando você manda a lista na hora ("lista.sincronizada"). Até 500 empresas por envio. Vão só dados da empresa: CNPJ, razão social, cidade, atividade, porte, prioridade, quantos decisores e telefones ela tem, o sinal da Receita e o link da ficha. Contato de pessoa nunca vai no envio: ele abre na ficha, com crédito.
Confira a origem: o cabeçalho X-LeadIA-Assinatura traz sha256= seguido do HMAC-SHA256 do corpo com o segredo do webhook (mostrado uma vez, na criação). Responda com 2xx; depois de 10 falhas seguidas o webhook é desligado.
// Node.js: conferir a assinatura
const ok = req.headers['x-leadia-assinatura'] ===
'sha256=' + crypto.createHmac('sha256', SEGREDO).update(corpoBruto).digest('hex');
Sobre os dados
Cadastro, situação, endereço, porte, sócios e eventos vêm dos dados abertos de CNPJ da Receita Federal, carregados a cada mês que a Receita publica (a referência do mês aparece em cada ficha, em receitaReferencia). Decisores e telefones vêm da base própria da Reveno. Quem não quiser aparecer pede a remoção em remover meus dados. Use os contatos de acordo com a LGPD e com os Termos.