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.
https://consultacnpj.site/api/v1Autenticaçã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:
GET /cnpj/{cnpj}— relatório completo de uma empresa (sócios, CNAEs, Simples/MEI)GET /empresas— busca por razão social / nome fantasiaGET /socios— busca por sócios (nome, CPF/CNPJ, empresa)GET /endereco— busca por endereço (UF, cidade, CEP, logradouro, bairro)GET /segmento— busca por segmento de mercado (CNAE, UF, cidade, situação)
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
| HTTP | code | Descrição |
|---|---|---|
| 401 | unauthorized | Token de API não informado. |
| 401 | invalid_token | Token de API inválido. |
| 403 | account_inactive | Conta do usuário não está ativa. |
| 422 | invalid_cnpj | CNPJ ausente ou com formato inválido (deve ter 14 dígitos). |
| 404 | not_found | CNPJ não encontrado, ou endpoint inexistente. |
| 429 | rate_limit_exceeded | Limite de consultas por minuto do plano atingido. |
| 429 | monthly_limit_exceeded | Limite de consultas mensais do plano atingido. |
| 500 | internal_error | Erro 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çalho | Descrição |
|---|---|
X-RateLimit-Limit | Total de consultas permitidas por minuto no seu plano. |
X-RateLimit-Remaining | Consultas restantes no minuto atual. |
X-RateLimit-Reset | Timestamp 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âmetro | Padrão | Descrição |
|---|---|---|
page | 1 | Número da página de resultados. |
per_page | 20 | Itens 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âmetro | Tipo | Descrição |
|---|---|---|
cnpj | path | CNPJ 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âmetro | Tipo | Descrição |
|---|---|---|
razao_social | query | Busca parcial (contém) na razão social. |
nome_fantasia | query | Busca parcial (contém) no nome fantasia. |
uf | query | Sigla da UF (ex: SC). |
municipio | query | Nome do município. Aceita múltiplos, separados por vírgula. |
situacao | query | Código da situação cadastral (01, 02, 03, 04, 08). |
cnae | query | Código(s) CNAE, separados por vírgula. |
cep | query | Prefixo 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âmetro | Tipo | Descrição |
|---|---|---|
nome_socio | query | Busca parcial (contém) no nome do sócio. |
cnpj_cpf_socio | query | CPF (11 dígitos) ou CNPJ (14 dígitos) do sócio, sem máscara. |
cnpj | query | CNPJ 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âmetro | Tipo | Descrição |
|---|---|---|
uf | query | Sigla da UF. |
municipio | query | Nome do(s) município(s), separados por vírgula. |
cep | query | Prefixo do CEP. Ex: 72 retorna todos os CEPs que começam com 72. |
logradouro | query | Busca parcial (contém) no nome do logradouro. |
bairro | query | Busca parcial (contém) no bairro. |
cnae | query | Código(s) CNAE da atividade principal, separados por vírgula. |
situacao | query | Có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âmetro | Tipo | Descrição |
|---|---|---|
cnae | query | Código(s) CNAE da atividade principal, separados por vírgula. Ex: 6911701,6912500. |
uf | query | Sigla da UF. |
municipio | query | Nome do(s) município(s), separados por vírgula. |
situacao | query | Código da situação cadastral. Padrão recomendado: 02 (Ativa). |
cep | query | Prefixo 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.