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
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
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
Todos os dados são disponibilizados publicamente pela Receita Federal. A base é atualizada mensalmente, conforme a publicação mensal dos dados pela Receita Federal.
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
Todos os dados disponibilizados pela API estão replicados 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. A base é derivada dos dados públicos da Receita Federal e é atualizada mensalmente, de acordo com a publicação oficial.
Quanto tempo após a publicação da Receita Federal vocês atualizam a base?
Em média, até 2 dias após a publicação mensal da Receita Federal.
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, que replica integralmente os dados da API.
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 nossa base, pois a atualização é mensal. Caso já tenha passado um mês e o CNPJ conste nos dados da Receita Federal, entre em contato conosco.