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:

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.

Para evitar respostas muito longas e melhorar a performance, informe sempre o menor conjunto de datasets necessário para a sua consulta.

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

# apenas RNTRC
curl -s "https://api.opencnpj.org/00000000000000?datasets=rntrc" | jq

# Receita Federal + CNO + RNTRC
curl -s "https://api.opencnpj.org/00000000000000?datasets=receita,cno,rntrc" | 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"
    }
  ]
}

Schema JSON

É possível ver o contrato da resposta via JSON Schema na chamada https://api.opencnpj.org/schema.

Códigos de status

Autenticação e limites

Disponibilidade

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.

Total de CNPJs cadastrados na Receita Federal:
Última atualização geral:

Bases disponíveis na API

Carregando bases publicadas…

Base Última atualização Frequência de atualização Registros Filtro Download

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 gerenciar os shards NDJSON localmente.

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.

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 os shards NDJSON publicados por base 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 os shards NDJSON publicados por base, 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.