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.
https://api.dados.brotassystem.com.br/v1GET https://api.dados.brotassystem.com.br/healthAutenticaçã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
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
Busca paginada com filtros ricos. Retorna items + has_more.
Parâmetros (todos opcionais):
curl "https://api.dados.brotassystem.com.br/v1/search?uf=SP&cnae=6201501&porte=03&tem_email=1&limit=2" \ -H "X-API-Key: bk_live_..."
{
"page": 1,
"limit": 2,
"count": 2,
"has_more": true,
"plano": "pro",
"items": [
{
"cnpj": "12345678000190",
"cnpj_basico": "12345678",
"matriz_filial": 1,
"razao_social": "EXEMPLO TECNOLOGIA LTDA",
"nome_fantasia": "ExemploTech",
"uf": "SP",
"municipio_cod": "7107",
"municipio": "SAO PAULO",
"cnae": "6201501",
"cnae_desc": "Desenvolvimento de programas de computador sob encomenda",
"porte": "03",
"capital_social": 100000.00,
"situacao_cadastral": 2,
"data_abertura": "2018-03-15",
"cep": "01310000",
"ddd": "11", "telefone": "30000000",
"email": "contato@exemplo.com.br"
}
]
}Paginação: use has_more:true para saber se há próxima página. Não retornamos total exato para não varrer 55M linhas a cada chamada.
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