Brotas · API de CNPJ da Receita Federal

API REST em JSON com a base pública de CNPJs da Receita Federal (Dados Abertos CNPJ), atualizada diariamente. Use a mesma base que está no nosso painel para consultar CNPJ individual, buscar empresas com filtros ricos e exportar listas B2B em CSV.

Base URL
https://api.dados.brotassystem.com.br/v1
Health check
GET https://api.dados.brotassystem.com.br/health
Formato
JSON (UTF-8). Corpos de erro sempre em {"error": "..."}.
Versão
v1 (estável). Breaking changes ganharão v2.

Autenticação

Envie sua API key no header X-API-Key ou como Authorization: Bearer. Gere/revogue chaves no painel.

curl https://api.dados.brotassystem.com.br/v1/cnpj/00000000000191 \
  -H "X-API-Key: bk_live_..."

Todas as chamadas /v1 exigem API key válida e consomem quota do plano da assinatura ativa (trial, starter, pro, business, enterprise).

Limites e planos

Cada plano define: quota_diaria, quota_mensal,rate_limit_por_min, max_export_linhas emax_api_keys. Os valores vivem na tabela plano — veja em /planos.

Excedeu? A API retorna 429 com {"error":"rate limit exceeded (rpm)"} ou {"error":"daily quota exceeded"}. Rate limit é medido por API key.

Códigos de erro

StatusQuando
400Parâmetros inválidos (CNPJ malformado, datas inválidas, etc)
401API key ausente ou inválida
402Assinatura expirada/inexistente
404Recurso não encontrado na base (CNPJ, CNAE, etc)
429Rate limit (rpm) ou quota diária/mensal excedidos
500Erro interno — tente novamente; se persistir, avise suporte

GET /v1/meta

Informações de versão da base e totais aproximados.

curl https://api.dados.brotassystem.com.br/v1/meta -H "X-API-Key: bk_live_..."
{
  "versao": "2026-04",
  "ingerido_em": "2026-04-15T03:22:11Z",
  "total_empresas_est": 55123400,
  "total_estabelecimentos_est": 62840100,
  "total_socios_est": 78550300,
  "fonte": "Receita Federal - Dados Públicos CNPJ"
}

GET /v1/cnpj/:cnpj

Consulta um CNPJ específico (aceita com ou sem máscara). Retorna empresa + estabelecimento.

Parâmetros opcionais:

  • incluir — lista CSV: socios, filiais, simples

curl "https://api.dados.brotassystem.com.br/v1/cnpj/00000000000191?incluir=socios,filiais,simples" \
  -H "X-API-Key: bk_live_..."
{
  "empresa": {
    "cnpj_basico": "00000000",
    "razao_social": "BANCO DO BRASIL SA",
    "natureza_juridica": "2038",
    "natureza_juridica_desc": "Empresa Pública",
    "qualificacao_responsavel": "05",
    "qualificacao_responsavel_desc": "Administrador",
    "capital_social": 90000000000.00,
    "porte": "05"
  },
  "estabelecimento": {
    "cnpj": "00000000000191",
    "cnpj_basico": "00000000",
    "matriz_filial": 1,
    "nome_fantasia": "BB",
    "situacao_cadastral": 2,
    "data_situacao": "2005-11-03",
    "motivo_situacao": "00", "motivo_desc": "Sem motivo",
    "data_inicio_atividade": "1966-08-01",
    "cnae_principal": "6422100",
    "cnae_principal_desc": "Bancos múltiplos, com carteira comercial",
    "cnae_secundario": "6499999",
    "tipo_logradouro": "SAUN",
    "logradouro": "QUADRA 5 LOTE B",
    "numero": "SN", "complemento": "TORRES I II E III",
    "bairro": "ASA NORTE", "cep": "70040912",
    "uf": "DF", "municipio": "9701", "municipio_desc": "BRASILIA",
    "ddd1": "61", "telefone1": "34939002",
    "ddd2": "", "telefone2": "",
    "email": "", "situacao_especial": "", "data_situacao_esp": ""
  },
  "socios": [ /* ver /cnpj/:cnpj/socios */ ],
  "filiais": [ /* ver /cnpj/:cnpj/filiais */ ],
  "simples": { /* ver /cnpj/:cnpj/simples */ }
}

GET /v1/cnpj/:cnpj/socios

Lista o quadro societário (QSA) do CNPJ básico.

curl https://api.dados.brotassystem.com.br/v1/cnpj/00000000000191/socios -H "X-API-Key: ..."
[
  {
    "nome": "FULANO DA SILVA",
    "cpf_cnpj": "***12345678**",
    "identificador": 2,
    "qualificacao": "10",
    "qualificacao_desc": "Diretor",
    "data_entrada": "2020-03-15",
    "pais": "",
    "representante_cpf": "", "representante_nome": "",
    "representante_qualificacao": "", "representante_qualificacao_desc": "",
    "faixa_etaria": 4
  }
]

identificador: 1=PJ, 2=PF, 3=estrangeiro. faixa_etaria: 1 (0-12), 2 (13-20), 3 (21-30), 4 (31-40), 5 (41-50), 6 (51-60), 7 (61-70), 8 (71-80), 9 (80+).

GET /v1/cnpj/:cnpj/filiais

Retorna até 200 outros estabelecimentos (matrizes/filiais) do mesmo CNPJ básico, excluindo o CNPJ da URL.

curl https://api.dados.brotassystem.com.br/v1/cnpj/00000000000191/filiais -H "X-API-Key: ..."
[
  {
    "cnpj": "00000000000272",
    "matriz_filial": 2,
    "nome_fantasia": "BB AG CENTRO SP",
    "uf": "SP",
    "municipio": "SAO PAULO",
    "situacao_cadastral": 2,
    "data_abertura": "1975-05-10"
  }
]

GET /v1/cnpj/:cnpj/simples

Opção pelo Simples Nacional e MEI do CNPJ básico. 404 se o CNPJ não tem registro.

[
  {
    "opcao_simples": "N",
    "opcao_mei": "N",
    "data_opcao_simples": "",
    "data_exclusao_simples": "",
    "data_opcao_mei": "",
    "data_exclusao_mei": ""
  }
]

GET /v1/search/export

Mesmos filtros de /search, mas devolve CSV até o limite do plano (max_export_linhas).

curl "https://api.dados.brotassystem.com.br/v1/search/export?uf=SP&cnae=6201501&tem_email=1&limit=5000" \
  -H "X-API-Key: bk_live_..." -o empresas.csv

Colunas: cnpj, razao_social, nome_fantasia, uf, municipio, cnae, cnae_desc, porte, capital_social, situacao_cadastral, data_abertura, logradouro, numero, bairro, cep, ddd, telefone, email.

Tabelas de apoio

Endpoints leves para popular selects e traduzir códigos.

GET /v1/cnae/:codigo          # descrição de 1 CNAE
GET /v1/cnaes?q=tec           # busca CNAEs por código ou descrição (até 200)
GET /v1/municipios?uf=SP&q=   # municípios da UF, com filtro opcional de nome
GET /v1/naturezas             # lista natureza_juridica (código+descrição)
GET /v1/qualificacoes         # lista qualificacao_socio

Códigos RF

Situação cadastral

CódigoSignificado
1Nula
2Ativa
3Suspensa
4Inapta
8Baixada

Porte

CódigoSignificado
00Não informado
01Microempresa (ME)
03Empresa de Pequeno Porte (EPP)
05Demais

Matriz / Filial

CódigoSignificado
1Matriz
2Filial

Identificador de sócio

CódigoSignificado
1Pessoa jurídica
2Pessoa física
3Estrangeiro