Visão Geral
OpenCNPJ é uma API pública e gratuita para consultar dados cadastrais de empresas brasileiras por CNPJ. Informe um CNPJ válido e receba uma resposta JSON simples, pronta para uso em aplicativos, integrações e automações.
API
Estrutura da URL
A API expõe um único recurso:
GET https://api.opencnpj.org/{CNPJ}
Retorna os dados do CNPJ informado em JSON.
Parâmetros
Path {CNPJ} 14 dígitos. Formatos aceitos:
- Só números:
00000000000000 - Com pontuação completa:
00.000.000/0000-00 - Com pontos e barra (sem hífen):
00.000.000/000000
Filtro de datasets
Use datasets para escolher quais bases devem entrar na resposta. Sem filtro, a API retorna todas as bases publicadas para o CNPJ.
receitadados cadastrais da Receita Federal.cnoobras do Cadastro Nacional de Obras vinculadas ao CNPJ.
Consulta rápida
Exemplos
# só números curl -s https://api.opencnpj.org/00000000000000 | jq # com pontuação completa curl -s "https://api.opencnpj.org/00.000.000/0000-00" | jq # com pontos e barra (sem hífen) curl -s "https://api.opencnpj.org/00.000.000/000000" | jq # apenas dados da Receita Federal curl -s "https://api.opencnpj.org/00000000000000?datasets=receita" | jq # apenas CNO curl -s "https://api.opencnpj.org/00000000000000?datasets=cno" | jq # Receita Federal + CNO curl -s "https://api.opencnpj.org/00000000000000?datasets=receita,cno" | jq
Resposta
Content-Type: application/json
Exemplo de resposta (campos podem variar):
{
"cnpj": "00000000000000",
"razao_social": "EMPRESA EXEMPLO LTDA",
"nome_fantasia": "EXEMPLO",
"situacao_cadastral": "Ativa",
"data_situacao_cadastral": "2000-01-01",
"matriz_filial": "Matriz",
"data_inicio_atividade": "2000-01-01",
"cnae_principal": "0000000",
"cnaes_secundarios": [
"0000001",
"0000002"
],
"cnaes_secundarios_count": 2,
"natureza_juridica": "Sociedade Empresária Limitada",
"logradouro": "RUA EXEMPLO",
"numero": "123",
"complemento": "SALA 1",
"bairro": "BAIRRO EXEMPLO",
"cep": "00000000",
"uf": "SP",
"municipio": "SAO PAULO",
"email": "[email protected]",
"telefones": [
{
"ddd": "11",
"numero": "900000000",
"is_fax": false
}
],
"capital_social": "1000,00",
"porte_empresa": "Microempresa (ME)",
"opcao_simples": null,
"data_opcao_simples": null,
"opcao_mei": null,
"data_opcao_mei": null,
"QSA": [
{
"nome_socio": "SOCIO PJ EXEMPLO",
"cnpj_cpf_socio": "00000000000000",
"qualificacao_socio": "Sócio Pessoa Jurídica",
"data_entrada_sociedade": "2000-01-01",
"identificador_socio": "Pessoa Jurídica",
"faixa_etaria": "Não se aplica"
},
{
"nome_socio": "SOCIA PF EXEMPLO",
"cnpj_cpf_socio": "***000000**",
"qualificacao_socio": "Administrador",
"data_entrada_sociedade": "2000-01-01",
"identificador_socio": "Pessoa Física",
"faixa_etaria": "31 a 40 anos"
}
]
}
Códigos de status
- 200 CNPJ encontrado
- 404 CNPJ não encontrado
- 429 limite de requisições excedido
Autenticação e limites
- Autenticação: não requer chaves ou tokens.
- Rate limit: aceitamos picos de até 50 requisições/segundo por IP.
Disponibilidade
- API 100% estática servida na borda pela CDN da Cloudflare, com alto cache.
- Tempos típicos: MISS ~150 ms, HIT ~40 ms.
- Alta disponibilidade 24/7.
Dados
O OpenCNPJ publica múltiplas bases públicas em uma única API por CNPJ. Cada base tem atualização própria e pode ser solicitada separadamente pelo parâmetro datasets.
Bases disponíveis na API
Carregando bases publicadas…
| Base | Última atualização | Frequência de atualização | Registros | Filtro |
|---|
Download completo (ZIP)
Prefere trabalhar offline ou integrar localmente? Baixe a base completa de CNPJs em um único arquivo ZIP e processe no seu próprio ambiente. O pacote é atualizado mensalmente, em formato aberto.
Dataset público no BigQuery
A base cadastral da Receita Federal também está replicada em um dataset do Google BigQuery. Priorize essa opção para consultas analíticas, validação em massa e enriquecimento de leads diretamente na nuvem, sem precisar baixar o ZIP.
Código Aberto
Este projeto é totalmente aberto: código, issues e discussões estão públicos para você auditar, contribuir e reutilizar.
Bibliotecas por Linguagem
Integrações mantidas pela comunidade para facilitar o uso do OpenCNPJ em diferentes linguagens.
| Linguagem | Criador | Repositório |
|---|---|---|
| Delphi | Valter Patrick | github.com/valterpatrick/opencnpj |
| .NET | Fulvio Canducci | github.com/fulviocanducci/Canducci.OpenCnpj |
| PHP | Fulvio Canducci | github.com/fulviocanducci/php-opencnpj |
| Go | Thiago Valle | github.com/zthiagovalle/opencnpj |
| NestJS | José Marinho | github.com/jusemarinho/nestjs-opencnpj |
| Python | Gabriel Oliva | github.com/ofcoliva/opencnpj |
| Python | Gustavo Gomes | github.com/gustavogomesn/python-opencnpj |
Tem uma biblioteca em outra linguagem? Envie um PR para adicionarmos aqui.
Apoie
As doações incentivam o projeto e ajudam a manter a infraestrutura e evoluir a API.
As doações viabilizam as ações planejadas para diminuir ainda mais o tempo de resposta, aumentar a disponibilidade e manter a infraestrutura, e ainda garantem a coquinha do desenvolvedor 😉
Perguntas e Respostas
Posso usar o serviço gratuitamente na minha empresa/serviço?
Sim. O uso é gratuito, inclusive para fins comerciais. Não oferecemos suporte dedicado.
Os dados são consultados/atualizados em tempo real?
Não. As bases são derivadas de fontes públicas e publicadas em ciclos. Consulte a tabela de bases na seção Dados acima para ver as últimas atualizações; os mesmos dados ficam disponíveis em /info.
Quanto tempo após a publicação das fontes vocês atualizam as bases?
Para a Receita Federal, em média até 2 dias após a publicação mensal. Para módulos adicionais, consulte a seção Dados, que mostra a última atualização publicada em /info.
Posso consultar massivamente os dados?
A API é pública e existe para o bem de todos. Para evitar que um mau uso prejudique outros usuários, não toleramos mais grandes volumes de consultas massivas (ex.: validação de bases inteiras sem intervalos).
Sobre limites: aceitamos picos de até 50 requisições/segundo por IP. Porém, para validação de bases ou consultas analíticas em larga escala, utilize o arquivo .zip disponível na seção Dados ou acesse nosso dataset público no BigQuery para trabalhar com a base cadastral da Receita Federal.
Caso identifiquemos validação de bases inteiras sem pausas, aplicaremos dois bloqueios temporários; se continuar, aplicaremos um bloqueio permanente. Contamos com o bom senso: validar 10 mil CNPJs é muito diferente de validar 1 milhão.
Se precisar de um fluxo automatizado para consultas em batch, utilize preferencialmente o dataset no BigQuery ou o download do ZIP em vez de chamar a API individualmente.
Minha empresa tem muitas chamadas por segundo. Vocês oferecem plano pago?
Não. Todos os serviços são gratuitos. Se o uso estiver dentro do rate limit, não há problema.
O que acontece se eu ultrapassar o rate limit?
Você receberá um código HTTP 429 – Too Many Requests.
Vocês armazenam logs das consultas?
Não armazenamos logs identificáveis das consultas. Mantemos apenas métricas agregadas (quantidade de consultas e tempos de resposta) para estatísticas e melhoria contínua do serviço.
Consultei um CNPJ e não foi encontrado, mas ele existe. Por quê?
Se o CNPJ foi aberto recentemente, ele pode ainda não constar na Receita Federal publicada pelo OpenCNPJ. Se você usou filtro de datasets, verifique também se a base escolhida possui registros para esse CNPJ.