API do Radar de Leads

Busque empresas com os mesmos filtros do Radar e revele contatos de decisores direto do seu sistema, ERP ou planilha. Respostas em JSON. Disponível no plano Business.

Autenticação

Crie a chave no portal em Organização › API (só o administrador da conta). Envie em todo pedido no cabeçalho X-API-Key (ou Authorization: Bearer rl_…).

curl https://radar.rctech.cc/api/v1/conta \
  -H "X-API-Key: rl_SUA_CHAVE"

A chave age em nome de quem a criou e segue as regras do plano: estados liberados, créditos e uso do mês. Guarde a chave como uma senha; se ela vazar, revogue em Organização › API e crie outra.

Limites

Endpoints

GET/api/v1/conta

Plano, créditos disponíveis (null = sem limite) e uso do mês.

{ "empresa": "Sua empresa", "plano": "business", "plano_nome": "Business",
  "creditos": null, "uso_mes": { "consultas": 12, "exportacoes": 0 } }

GET/api/v1/leads

Empresas ranqueadas por score, com os mesmos filtros do Radar.

ParâmetroExemploO que faz
ufSPEstado
cidadeCampinasCidade
grupoAtacadoSegmento
segAtacarejoSubsegmento
porteGrandePorte da empresa
score80Score mínimo (0 a 100)
qalimentosBusca por nome
offset0Paginação: use o pagina_tam da resposta e siga enquanto tem_mais for true
curl "https://radar.rctech.cc/api/v1/leads?uf=SP&grupo=Atacado&score=80" \
  -H "X-API-Key: rl_SUA_CHAVE"

Cada empresa traz contatos: nome e cargo sempre; telefone e e-mail só depois de revelados. Use o cid do contato para revelar.

POST/api/v1/contatos/revelar

Revela telefone e e-mail de um contato. Corpo JSON com o cid.

curl -X POST https://radar.rctech.cc/api/v1/contatos/revelar \
  -H "X-API-Key: rl_SUA_CHAVE" -H "content-type: application/json" \
  -d '{"cid": 123}'
{ "ok": true, "cel": "(11) 9…", "email": "nome@empresa.com.br", "creditos": 49, "cobrado": true }

Webhooks

Cadastre uma URL https em Organização › API › Webhooks. O Radar envia um POST com JSON para essa URL nestes eventos:

POST https://seusistema.com/radar/webhook
X-Radar-Evento: lista.novos_leads
X-Radar-Assinatura: t=1794400000,v1=5b1f…

{ "evento": "lista.novos_leads", "enviado_em": "2026-11-10T09:00:00Z", "webhook_id": "…",
  "dados": { "lista": { "id": "…", "nome": "Atacado SP" }, "total": 12,
             "leads": [ { "id": 123, "nome": "…", "cidade": "Campinas", "uf": "SP",
                          "segmento": "Atacado", "score": 91, "potencial": 21000 } ] } }

Conferir a assinatura

Calcule HMAC-SHA256 de <t>.<corpo bruto> com o segredo mostrado na criação do webhook e compare com v1. Recuse se t tiver mais de 5 minutos.

const [t, v1] = header.split(",").map(p => p.split("=")[1]);
const esperado = crypto.createHmac("sha256", SEGREDO).update(`${t}.${corpoBruto}`).digest("hex");
const valido = crypto.timingSafeEqual(Buffer.from(esperado), Buffer.from(v1));

Responda com qualquer status 2xx em até 8 segundos. Depois de 20 falhas seguidas o webhook é desligado; o botão Testar envia um evento de teste e religa.

Erros

CódigoQuando
401Chave ausente, inválida ou revogada
402Sem créditos ou trial expirado
403Plano sem API ou estado fora do plano
429Limite de requisições por minuto

Toda resposta de erro vem como { "erro": "mensagem" }.