Consultar CNPJ em Node.js

Este guia mostra como consultar um CNPJ pela API REST da CNPJAPI em Node.js, usando o fetch nativo (Node 18+). A resposta vem em JSON, com os campos em PascalCase (RazaoSocial, SituacaoCadastral, ...).

Pré-requisitos

  • Node.js 18+ (o fetch é nativo; em versões anteriores, use node-fetch ou undici).
  • Os exemplos usam await no nível superior, então rode-os como módulo ES (arquivo .mjs, ou "type": "module" no package.json). Em CommonJS, envolva o código numa função async.
  • Uma API key da CNPJAPI. Crie a conta em https://app.cnpjapi.com.br e gere a chave (veja Autenticação).

Consulta simples

const CNPJ = "00776574000156"; // apenas os 14 dígitos, sem pontuação
const API_KEY = "cnpj_sua_chave";

const resposta = await fetch(`https://api.cnpjapi.com.br/${CNPJ}`, {
  headers: { Authorization: `Bearer ${API_KEY}` },
});

if (!resposta.ok) {
  throw new Error(`Falha na consulta: HTTP ${resposta.status}`);
}

const empresa = await resposta.json();
console.log(empresa.RazaoSocial);
console.log(empresa.SituacaoCadastral.Descricao);
console.log(empresa.AtividadePrincipal.Descricao);

Tratando erros e rate limit

Ao exceder o limite por minuto ou a cota mensal, a API responde 429 com o cabeçalho Retry-After (segundos). Trate como recuperável:

const resposta = await fetch(`https://api.cnpjapi.com.br/${CNPJ}`, {
  headers: { Authorization: `Bearer ${API_KEY}` },
});

if (resposta.status === 429) {
  const espera = Number(resposta.headers.get("Retry-After") ?? 60);
  await new Promise((r) => setTimeout(r, espera * 1000));
  // tente novamente...
} else if (resposta.status === 404) {
  console.log("CNPJ não encontrado na base pública");
} else if (resposta.ok) {
  const empresa = await resposta.json();
  console.log(empresa.RazaoSocial);
}

Inscrição Estadual (premium)

Com um plano que inclui Inscrição Estadual, consulte a IE de um CNPJ na fonte oficial da SEFAZ. Passe uf para uma UF (1 crédito) ou omita para a varredura nacional (3 créditos):

const resposta = await fetch(
  `https://api.cnpjapi.com.br/consulta/ie/${CNPJ}?uf=SP`,
  { headers: { Authorization: `Bearer ${API_KEY}` } },
);

if (!resposta.ok) {
  throw new Error(`Falha na consulta de IE: HTTP ${resposta.status}`);
}

const { resultados } = await resposta.json();
for (const ie of resultados) {
  console.log(ie.uf, ie.ie, ie.situacao);
}

Contrato completo (campos, cobertura, créditos) em Consultar a Inscrição Estadual.

Próximos passos

Crie sua conta gratuita em https://app.cnpjapi.com.br e faça a primeira consulta em minutos.