Pular para o conteúdo
cnpj/ob

Busca Avançada: Cruzando CNAE, UF e Município

Filtros & Análise de DadosBlog do cnpj/ob

Em projetos de Business Intelligence e Vendas, consultar um CNPJ que você já conhece raramente é o bastante. O grande poder dos dados abertos está na capacidade de extrair listas hiper-segmentadas de acordo com as necessidades da sua operação.

Segmentação Geográfica Avançada

Imagine que sua empresa vende insumos agrícolas em São Paulo e quer focar nas produtoras sediadas em Ribeirão Preto. A API de Empresas do cnpjob (inclusa no Plano Pro) combina vários filtros na mesma chamada pelo endpoint /empresas: cnae, uf, municipio e situacao.

O município vai por código

O filtro municipio usa o código de município da Receita Federal (não é o código do IBGE nem o nome). Descubra o código pelo endpoint público, que não exige chave:

curl "https://api.cnpjob.com.br/municipios/busca?q=ribeirao%20preto"
# [{ "codigo": "6969", "descricao": "RIBEIRAO PRETO" }]

Exemplo de integração (cURL)

Empresas ativas de um CNAE específico (cultivo de soja, 0115600) em Ribeirão Preto:

curl "https://api.cnpjob.com.br/empresas?cnae=0115600&uf=SP&municipio=6969&situacao=ativa&limit=50" \
  -H "X-API-Key: sua_api_key_aqui"

A resposta é paginada (page e limit) e cada empresa traz cnpj, razao_social, nome_fantasia, situacao, cnae_principal, municipio, uf, data_abertura, telefone e email: o suficiente para alimentar o time comercial ou o CRM. O parâmetro situacao aceita ativa, suspensa, inapta, baixada ou nula.

Contando o mercado (Node.js)

O campo total conta os itens da página. Para saber quantas empresas existem no filtro inteiro, adicione contar=1: a resposta ganha total_resultados.

// Restaurantes ativos (CNAE 5611201) no RJ
const params = new URLSearchParams({
  cnae: '5611201',
  uf: 'RJ',
  situacao: 'ativa',
  contar: '1',
});

const r = await fetch(`https://api.cnpjob.com.br/empresas?${params}`, {
  headers: { 'X-API-Key': process.env.CNPJOB_KEY },
});
const data = await r.json();
console.log(`Restaurantes ativos no RJ: ${data.total_resultados}`);
console.log(`Primeiros ${data.total}:`, data.empresas.map((e) => e.razao_social));

Em filtros muito amplos (um estado inteiro sem CNAE, por exemplo) a contagem pode não ficar pronta a tempo; nesse caso total_resultados vem null e a página de resultados vem normalmente.

Teste com seus dadosCrie a conta grátis e faça a primeira consulta em minutos.

Experimentar a Busca Avançada (Plano Pro)