O CNPJ API é um projeto criado para expor, por meio de uma API REST, os dados do Cadastro Nacional da Pessoa Jurídica de forma simples, organizada e pronta para consumo por aplicações externas.
A proposta do projeto é permitir que você monte sua própria API de consulta de CNPJ sobre uma base local, utilizando como referência o conjunto de dados públicos disponibilizado pela Receita Federal no Portal Brasileiro de Dados Abertos.
Em vez de depender diretamente de arquivos brutos ou de rotinas internas de carga, esta API trabalha sobre um banco já preparado, com foco exclusivo em leitura, consulta e exposição de dados via REST.
A base pública utilizada como referência neste ecossistema é a disponibilizada no Portal Brasileiro de Dados Abertos. Esse conjunto de dados reúne os arquivos públicos relacionados ao CNPJ, usados como base para processamento, transformação e posterior disponibilização via banco de dados local. As informações do conjunto são mantidas pelo governo federal no portal dados.gov.br
O projeto CNPJ API faz parte de um fluxo maior.
A preparação dos dados não acontece neste repositório. Antes de usar a API, é necessário que o banco tenha sido previamente montado e populado por uma aplicação separada responsável por:
- importar os arquivos brutos;
- higienizar os dados;
- estruturar tabelas;
- materializar os dados finais;
- executar controles operacionais do processo de carga.
Esse papel é realizado pelo projeto CNPJ DB Loader
Em resumo:
- CNPJ DB Loader prepara o banco para PostgreSQL;
- CNPJ API consome esse banco já pronto e expõe os dados para consulta.
Atualmente, a API foi adaptada para consumir apenas:
- tabelas finais de negócio;
- tabelas auxiliares de domínio.
Ela não depende das etapas de staging, importação, checkpoints ou controle operacional para funcionar em tempo de consulta.
De forma geral, o projeto foi pensado para oferecer uma camada de consulta organizada sobre a base de CNPJ, permitindo:
- consultar informações por CNPJ;
- acessar dados consolidados por CNPJ, listas de empresas e vínculos societários;
- consultar tabelas auxiliares e domínios separadamente, com paginação e filtros leves;
- separar com clareza a aplicação de leitura da aplicação de carga;
- servir de base para integrações, sistemas internos, dashboards e automações.
countriescitiespartner_qualificationslegal_naturescnaesreasonscompany_sizesbranch_typesregistration_statusespartner_typesage_groups
companiesestablishmentsestablishment_secondary_cnaespartnerssimples_options
A API ignora propositalmente estruturas internas de processamento utilizadas pelo CNPJ DB Loader
Regras atuais:
GET /api/cnpjs/:cnpj: exigecnpjno path e é o endpoint principal para visão consolidada;GET /api/socios: exigecnpjoucnpjBasicopara consultar vínculos societários;GET /api/listas/empresas/cnae: exigecodigosCnaee aceita refinamento opcional porufemunicipio;municipioexigeuf; a busca considera CNAE principal e CNAEs secundários e retorna apenas estabelecimentos ativos;GET /api/listas/empresas/razaosocial: exigerazaoSociale aceita refinamento opcional porufemunicipio;municipioexigeuf; a resposta retorna apenas estabelecimentos ativos;GET /api/listas/empresas/socio: exigenomeSocioe aceita refinamento opcional porufemunicipio;municipioexigeuf; a resposta retorna apenas estabelecimentos ativos.
As rotas de domínio continuam com paginação e filtros leves para apoio a interfaces e integrações auxiliares.
Arquivos complementares foram adicionados em /docs:
Regras de pesquisa da APIVisão geral de uso da APIVisão geral do modelo de dadosReferência de domínio
A importação, higienização, staging, materialização e controle operacional dos dados não fazem parte desta API.
Essas etapas pertencem ao fluxo de preparação do banco e devem ser executadas previamente pelo CNPJ DB Loader ou por outra ferramenta compatível com o mesmo modelo de dados final.
Instale as dependências:
npm install
npm run devExecute em modo de produção:
npm run build
npm startnpm run devnpm run buildnpm run startnpm run lintnpm run typechecknpm run formatnpm run format:check