API REST — Consulta CNPJ

Consulte os dados públicos de CNPJ da Receita Federal por meio da nossa API REST. Os mesmos dados exibidos nas abas de pesquisa do site estão disponíveis em formato JSON, ideais para integrar em sistemas, planilhas e automações.

Base URL: https://consultacnpj.site/api/v1
Autenticação: obrigatória — envie seu token no cabeçalho Authorization: Bearer {token} ou no parâmetro ?token=.
Formato: todas as respostas são em JSON (application/json).
Limites: de acordo com o seu plano (consultas por minuto e por mês).

Autenticação

Para usar a API é necessário ter uma conta no ConsultaCNPJ (mesmo no plano gratuito) e gerar um token em Minha Conta » API. Para gerar o token, confirme seu e-mail e complete seu endereço em Configurações.

Envie o token em todas as requisições, no cabeçalho Authorization:

curl -H "Authorization: Bearer SEU_TOKEN" "https://consultacnpj.site/api/v1/cnpj/00000000000191"

Ou, alternativamente, no parâmetro token:

curl "https://consultacnpj.site/api/v1/cnpj/00000000000191?token=SEU_TOKEN"

Visão geral

A API expõe os mesmos recursos das 5 abas de pesquisa do site:

Filtros avançados (porte, matriz/filial, natureza jurídica, Simples/MEI, faixa de capital social, período de abertura, "lead novo") fazem parte do plano PRO e ainda não estão disponíveis nesta API gratuita. Conheça os planos.

Formato das respostas

Toda resposta segue o envelope abaixo. Em caso de sucesso:

{
  "success": true,
  "data": ...,
  "meta": {
    "page": 1,
    "pages": 12,
    "per_page": 20,
    "total": 235
  }
}

O campo meta só aparece em endpoints de listagem (paginados). Em caso de erro:

{
  "success": false,
  "error": {
    "code": "not_found",
    "message": "CNPJ não encontrado na base de dados."
  }
}

Códigos de erro

HTTPcodeDescrição
401unauthorizedToken de API não informado.
401invalid_tokenToken de API inválido.
403account_inactiveConta do usuário não está ativa.
422invalid_cnpjCNPJ ausente ou com formato inválido (deve ter 14 dígitos).
404not_foundCNPJ não encontrado, ou endpoint inexistente.
429rate_limit_exceededLimite de consultas por minuto do plano atingido.
429monthly_limit_exceededLimite de consultas mensais do plano atingido.
500internal_errorErro inesperado ao consultar a base de dados.

Limites de uso

Cada plano tem um limite de consultas por minuto e um limite de consultas por mês, aplicados ao seu token nos endpoints /cnpj, /empresas, /segmento, /endereco e /socios. O endpoint informativo GET /api/v1 não conta para esses limites. Consulte os limites de cada plano em Planos.

Toda resposta de consulta inclui os seguintes cabeçalhos HTTP com o status do limite por minuto:

CabeçalhoDescrição
X-RateLimit-LimitTotal de consultas permitidas por minuto no seu plano.
X-RateLimit-RemainingConsultas restantes no minuto atual.
X-RateLimit-ResetTimestamp Unix em que o limite será renovado.

Ao atingir o limite por minuto ou o limite mensal, a API responde com HTTP 429:

{
  "success": false,
  "error": {
    "code": "rate_limit_exceeded",
    "message": "Limite de 10 consultas por minuto do plano \"Bronze\" atingido."
  }
}

Precisa de mais consultas? Faça upgrade do seu plano em Planos.

Paginação

Os endpoints de listagem (/empresas, /segmento, /endereco, /socios) aceitam:

ParâmetroPadrãoDescrição
page1Número da página de resultados.
per_page20Itens por página (máximo 50).

Para evitar consultas muito amplas (full scan), os endpoints de listagem exigem pelo menos um filtro de pesquisa. Sem filtros, o retorno será uma lista vazia.

GET /cnpj/{cnpj}

Retorna o relatório completo de uma empresa a partir do CNPJ (14 dígitos, com ou sem máscara).

ParâmetroTipoDescrição
cnpjpathCNPJ com 14 dígitos. Pode ser enviado na URL ou via ?cnpj=.

Exemplo de requisição

curl -H "Authorization: Bearer SEU_TOKEN" "https://consultacnpj.site/api/v1/cnpj/00000000000191"

Exemplo de resposta

{
  "success": true,
  "data": {
    "cnpj": "00.000.000/0001-91",
    "cnpj_numerico": "00000000000191",
    "razao_social": "BANCO DO BRASIL SA",
    "nome_fantasia": "BB",
    "matriz_filial": "Matriz",
    "situacao_cadastral": {
      "codigo": "02",
      "descricao": "Ativa",
      "data": "2005-11-03",
      "motivo": null
    },
    "data_inicio_atividades": "1966-08-01",
    "cnae_principal": {
      "codigo": "6422100",
      "descricao": "Bancos múltiplos, com carteira comercial"
    },
    "endereco": {
      "logradouro": "QUADRA SAUN QUADRA 5 LOTE B",
      "numero": "S/N",
      "complemento": "ANDAR 1 AO 17",
      "bairro": "ASA NORTE",
      "cep": "70040912",
      "municipio": "BRASILIA",
      "uf": "DF"
    },
    "contato": {
      "telefone": "(61) 34938050",
      "email": "EXEMPLO@BB.COM.BR"
    },
    "cnaes_secundarios": [
      { "codigo": "6499999", "descricao": "Outras atividades de serviços financeiros..." }
    ],
    "socios": [
      {
        "nome": "EXEMPLO DA SILVA",
        "documento": "***.456.789-**",
        "qualificacao": "Presidente",
        "data_entrada_sociedade": "2019-01-15",
        "faixa_etaria": "51 a 60 anos",
        "representante_legal": null
      }
    ]
  }
}

GET /empresas

Busca empresas por razão social e/ou nome fantasia (aba "Nome da Empresa").

ParâmetroTipoDescrição
razao_socialqueryBusca parcial (contém) na razão social.
nome_fantasiaqueryBusca parcial (contém) no nome fantasia.
ufquerySigla da UF (ex: SC).
municipioqueryNome do município. Aceita múltiplos, separados por vírgula.
situacaoqueryCódigo da situação cadastral (01, 02, 03, 04, 08).
cnaequeryCódigo(s) CNAE, separados por vírgula.
cepqueryPrefixo do CEP.

Exemplo de requisição

curl -H "Authorization: Bearer SEU_TOKEN" "https://consultacnpj.site/api/v1/empresas?razao_social=CHECKCRED&uf=SC"

Exemplo de resposta

{
  "success": true,
  "data": [
    {
      "cnpj": "12.345.678/0001-90",
      "cnpj_numerico": "12345678000190",
      "razao_social": "CHECKCRED SOLUCOES LTDA",
      "nome_fantasia": "CHECKCRED",
      "matriz_filial": "Matriz",
      "situacao_cadastral": { "codigo": "02", "descricao": "Ativa", "data": "2018-03-12", "motivo": null },
      "data_inicio_atividades": "2018-03-10",
      "cnae_principal": { "codigo": "6911701", "descricao": "Serviços advocatícios" },
      "endereco": { "logradouro": "RUA EXEMPLO", "numero": "100", "complemento": null, "bairro": "CENTRO", "cep": "88000000", "municipio": "FLORIANOPOLIS", "uf": "SC" },
      "contato": { "telefone": "(48) 30000000", "email": "CONTATO@CHECKCRED.COM.BR" }
    }
  ],
  "meta": { "page": 1, "pages": 1, "per_page": 20, "total": 1 }
}

GET /socios

Busca sócios por nome, documento (CPF/CNPJ) ou pela empresa (aba "Sócio").

ParâmetroTipoDescrição
nome_socioqueryBusca parcial (contém) no nome do sócio.
cnpj_cpf_socioqueryCPF (11 dígitos) ou CNPJ (14 dígitos) do sócio, sem máscara.
cnpjqueryCNPJ da empresa (14 dígitos), para listar todos os sócios dessa empresa.

Exemplo de requisição

curl -H "Authorization: Bearer SEU_TOKEN" "https://consultacnpj.site/api/v1/socios?nome_socio=EXEMPLO+DA+SILVA"

Exemplo de resposta

{
  "success": true,
  "data": [
    {
      "nome_socio": "EXEMPLO DA SILVA",
      "documento": "***.456.789-**",
      "qualificacao": "Presidente",
      "data_entrada_sociedade": "2019-01-15",
      "faixa_etaria": "51 a 60 anos",
      "empresa": {
        "cnpj": "00.000.000/0001-91",
        "razao_social": "BANCO DO BRASIL SA",
        "nome_fantasia": "BB",
        "situacao_cadastral": "Ativa",
        "uf": "DF",
        "municipio": "BRASILIA"
      }
    }
  ],
  "meta": { "page": 1, "pages": 1, "per_page": 20, "total": 1 }
}

GET /endereco

Busca empresas por localização (aba "Endereço").

ParâmetroTipoDescrição
ufquerySigla da UF.
municipioqueryNome do(s) município(s), separados por vírgula.
cepqueryPrefixo do CEP. Ex: 72 retorna todos os CEPs que começam com 72.
logradouroqueryBusca parcial (contém) no nome do logradouro.
bairroqueryBusca parcial (contém) no bairro.
cnaequeryCódigo(s) CNAE da atividade principal, separados por vírgula.
situacaoqueryCódigo da situação cadastral.

Exemplo de requisição

curl -H "Authorization: Bearer SEU_TOKEN" "https://consultacnpj.site/api/v1/endereco?uf=DF&municipio=BRASILIA&cep=72&logradouro=QUADRA"

Exemplo de resposta

{
  "success": true,
  "data": [
    {
      "cnpj": "00.000.000/0001-91",
      "cnpj_numerico": "00000000000191",
      "razao_social": "BANCO DO BRASIL SA",
      "nome_fantasia": "BB",
      "matriz_filial": "Matriz",
      "situacao_cadastral": { "codigo": "02", "descricao": "Ativa", "data": "2005-11-03", "motivo": null },
      "data_inicio_atividades": "1966-08-01",
      "cnae_principal": { "codigo": "6422100", "descricao": "Bancos múltiplos, com carteira comercial" },
      "endereco": { "logradouro": "QUADRA SAUN QUADRA 5 LOTE B", "numero": "S/N", "complemento": "ANDAR 1 AO 17", "bairro": "ASA NORTE", "cep": "70040912", "municipio": "BRASILIA", "uf": "DF" },
      "contato": { "telefone": "(61) 34938050", "email": null }
    }
  ],
  "meta": { "page": 1, "pages": 3, "per_page": 20, "total": 47 }
}

GET /segmento

Busca empresas por segmento de mercado (CNAE), UF, cidade e/ou situação cadastral (aba "Segmento de Mercado").

ParâmetroTipoDescrição
cnaequeryCódigo(s) CNAE da atividade principal, separados por vírgula. Ex: 6911701,6912500.
ufquerySigla da UF.
municipioqueryNome do(s) município(s), separados por vírgula.
situacaoqueryCódigo da situação cadastral. Padrão recomendado: 02 (Ativa).
cepqueryPrefixo do CEP.

Exemplo de requisição

curl -H "Authorization: Bearer SEU_TOKEN" "https://consultacnpj.site/api/v1/segmento?cnae=6911701&uf=SC&municipio=ITAPEMA,GASPAR&situacao=02&page=1"

Exemplo de resposta

{
  "success": true,
  "data": [
    {
      "cnpj": "11.222.333/0001-44",
      "cnpj_numerico": "11222333000144",
      "razao_social": "ESCRITORIO DE ADVOCACIA EXEMPLO LTDA",
      "nome_fantasia": null,
      "matriz_filial": "Matriz",
      "situacao_cadastral": { "codigo": "02", "descricao": "Ativa", "data": "2015-06-01", "motivo": null },
      "data_inicio_atividades": "2015-05-20",
      "cnae_principal": { "codigo": "6911701", "descricao": "Serviços advocatícios" },
      "endereco": { "logradouro": "AV CENTRAL", "numero": "200", "complemento": null, "bairro": "CENTRO", "cep": "88220000", "municipio": "ITAPEMA", "uf": "SC" },
      "contato": { "telefone": null, "email": null }
    }
  ],
  "meta": { "page": 1, "pages": 8, "per_page": 20, "total": 153 }
}

Exemplos em outras linguagens

JavaScript (fetch)

const resp = await fetch('https://consultacnpj.site/api/v1/cnpj/00000000000191', {
    headers: { 'Authorization': 'Bearer SEU_TOKEN' },
});
const json = await resp.json();
console.log(json.data.razao_social);

PHP

$context = stream_context_create([
    'http' => ['header' => "Authorization: Bearer SEU_TOKEN"],
]);

$json = json_decode(file_get_contents(
    'https://consultacnpj.site/api/v1/empresas?razao_social=CHECKCRED&uf=SC',
    false,
    $context
), true);

foreach ($json['data'] as $empresa) {
    echo $empresa['razao_social'], "\n";
}

Python (requests)

import requests

headers = {'Authorization': 'Bearer SEU_TOKEN'}
resp = requests.get('https://consultacnpj.site/api/v1/socios', headers=headers, params={'nome_socio': 'EXEMPLO DA SILVA'})
data = resp.json()
for socio in data['data']:
    print(socio['nome_socio'], '-', socio['empresa']['razao_social'])

Planos e limites

Cada plano define limites de consultas por minuto e por mês. Para alto volume de requisições, dados adicionais (filtros PRO) e maior limite de paginação, confira os planos.

Conheça os planos.