API de CNPJ: dados cadastrais da Receita Federal em JSON
Uma API de CNPJ recebe um número de CNPJ e devolve, em JSON, os dados cadastrais que a Receita Federal publica sobre aquele estabelecimento: razão social, nome fantasia, situação cadastral, atividade (CNAE), endereço, sócios, natureza jurídica, porte e opção pelo Simples Nacional e pelo MEI. Serve para preencher cadastro sem digitação, validar fornecedor ou cliente antes de faturar e enriquecer uma base de empresas.
A apipj monta essa base a partir dos dados abertos do CNPJ que a Receita Federal publica todo mês. A carga de setembro de 2026 tem 73.366.147 estabelecimentos, matrizes e filiais, ativos e baixados.
O que a API devolve
Uma consulta a GET /v1/cnpj/{cnpj} devolve um documento por estabelecimento. Os campos principais:
| Grupo | Campos | Para que serve |
|---|---|---|
| Identificação | cnpj, cnpj_formatado, razao_social, nome_fantasia, matriz_filial | Preencher o cadastro e conferir o nome |
| Situação | situacao_cadastral (código, descrição, data, motivo), situacao_especial | Barrar empresa baixada, inapta ou suspensa |
| Atividade | cnae_principal, cnaes_secundarios (código e descrição) | Classificar o cliente, regras fiscais |
| Endereço | logradouro, número, complemento, bairro, CEP, UF, municipio com codigo_ibge e codigo_rfb | Endereço de cobrança e entrega, emissão de NFS-e |
| Contato | telefones, email | Primeiro contato comercial |
| Empresa | natureza_juridica, porte, capital_social, data_inicio_atividade | Análise de crédito e de risco |
| Regime | simples e mei (optante, datas de opção e exclusão) | Regras de retenção e de emissão |
| Quadro societário | socios (nome, qualificação, data de entrada, faixa etária) | Due diligence, KYC, quem assina |
Datas vêm no formato AAAA-MM-DD. O que a Receita não publica vem como null: a API não inventa campo. O CPF de sócio pessoa física vem mascarado, exatamente como na base pública. A lista completa, com tipos, está na documentação.
Primeira consulta em um minuto
- Crie uma conta grátis. A chave de API aparece na hora, sem cartão.
- Guarde a chave numa variável de ambiente (
APIPJ_KEY), nunca no código-fonte. - Chame a API com o cabeçalho
Authorization: Bearer:
curl -s https://apipj.com.br/v1/cnpj/11378117000120 \
-H "Authorization: Bearer $APIPJ_KEY"import os, requests
r = requests.get("https://apipj.com.br/v1/cnpj/11378117000120",
headers={"Authorization": f"Bearer {os.environ['APIPJ_KEY']}"}, timeout=10)
empresa = r.json()
print(empresa["razao_social"], empresa["situacao_cadastral"]["descricao"])const r = await fetch('https://apipj.com.br/v1/cnpj/11378117000120', {
headers: { Authorization: `Bearer ${process.env.APIPJ_KEY}` },
});
const empresa = await r.json();
console.log(empresa.razao_social, empresa.situacao_cadastral.descricao);Trecho da resposta (formato completo):
{
"cnpj": "11378117000120",
"cnpj_formatado": "11.378.117/0001-20",
"razao_social": "LEADS2B S/A",
"situacao_cadastral": { "codigo": "02", "descricao": "ATIVA", "data": "2009-11-24" },
"cnae_principal": { "codigo": "6311900", "descricao": "Tratamento de dados, provedores de serviços de aplicação e serviços de hospedagem na internet" },
"endereco": {
"tipo_logradouro": "RUA", "logradouro": "PADRE ANCHIETA", "numero": "2285",
"bairro": "BIGORRILHO", "cep": "80730001", "uf": "PR",
"municipio": { "codigo_rfb": "7535", "codigo_ibge": "4106902", "nome": "CURITIBA" }
},
"simples": { "optante": false, "data_opcao": "2009-11-24", "data_exclusao": "2019-12-31" }
}Quer testar sem escrever código? O sandbox faz a mesma consulta no navegador e mostra os cabeçalhos de limite.
Dois formatos de resposta
completo(padrão): documento estruturado, com código e descrição separados e datas em ISO. É o melhor para código novo.simplificado(?formato=simplificado): campos planos e já formatados para exibir ou gravar direto: datasDD/MM/AAAA, CNPJ e CEP com máscara, endereço e telefone em texto. Útil para planilhas, automações e integrações antigas.
Limites e planos
Toda consulta usa uma chave. O limite por minuto protege a API de rajadas; a cota mensal é o volume contratado.
| Plano | Preço | Consultas por minuto | Consultas por mês |
|---|---|---|---|
| Gratuito | R$ 0 | 10 | 50.000 |
| Dev | R$ 12,90/mês | 30 | 200.000 |
| Pro | R$ 59,90/mês | 200 | 600.000 |
Toda resposta traz X-RateLimit-Remaining e X-Quota-Remaining, então sua aplicação sabe quanto ainda pode consultar. Passou do limite por minuto, a resposta é 429 com Retry-After; acabou a cota do mês, 429 com o código quota_exceeded. Detalhes e preços atualizados em Preços.
O que esta API não substitui
- Certidão e consulta oficial em tempo real. Os dados são a carga mensal dos dados abertos da Receita. Uma alteração feita hoje aparece na próxima carga. Para prova formal de situação cadastral, use o comprovante emitido no site da Receita Federal.
- Inscrição estadual. A base pública do CNPJ não traz inscrição estadual; ela vem do cadastro de cada estado.
- Análise de crédito. Não há score, protesto nem dívida: são dados cadastrais.
Boas práticas para produção
- Valide antes de consultar. O dígito verificador se confere localmente, sem gastar cota. O guia do CNPJ alfanumérico tem a função em quatro linguagens.
- Faça cache. A base muda uma vez por mês: guardar a resposta por até 30 dias corta a maior parte das consultas repetidas.
- Trate 404 como resposta, não como erro. O CNPJ pode não existir, ou ser tão novo que ainda não está na carga do mês.
- Respeite o
Retry-Afterquando receber429por limite por minuto, e não repita quando o código forquota_exceeded. - Chame a API do seu servidor. A chave dá acesso à sua cota; no navegador ela fica exposta.
Os tutoriais mostram tudo isso em código pronto: Python, JavaScript, PHP e C#.
Perguntas frequentes
De onde vêm os dados e com que frequência são atualizados?
Dos dados abertos do CNPJ publicados pela Receita Federal, carregados uma vez por mês. O mês em uso aparece em atualizado_em em cada resposta e em Status. A metodologia está em Sobre.
A API aceita CNPJ alfanumérico?
Sim. Desde 31/07/2026 a Receita emite CNPJ com letras nas 12 primeiras posições. A API valida e consulta os dois formatos, com ou sem máscara, em maiúsculas ou minúsculas. Veja o guia do CNPJ alfanumérico.
O endereço traz o código IBGE do município?
Traz. endereco.municipio.codigo_ibge tem os 7 dígitos que a NFS-e pede, e codigo_rfb tem o código de 4 dígitos da própria Receita. Só estabelecimentos no exterior vêm sem IBGE.
Posso consultar sem cadastro?
A validação de formato e dígito (GET /v1/valida/{cnpj}) é aberta. A consulta de dados exige uma chave, que é grátis: assim cada uso tem limite e ninguém esgota a API dos outros.
E os dados de sócios, a LGPD permite?
São dados pessoais de acesso público, publicados pela própria Receita, e a API os devolve como estão na base, com o CPF mascarado. A base legal, a finalidade e o canal para o titular pedir a supressão estão na política de privacidade.