Documentação da API
A API REST do CFO entrega dados de empresas do Brasil (dados abertos do governo federal) em JSON ou CSV, filtrados como na consulta web. Base de produção:
https://cfo.com.br/api
Início rápido
Toda chamada é um GET com sua chave no header e os filtros na query string.
curl "https://cfo.com.br/api?resource=empresas&uf=SP&cnae=6201&dias=30&per_page=50" \
-H "Authorization: Bearer cfo_live_SUA_CHAVE"
Autenticação
Envie a chave de uma destas formas (em ordem de preferência):
Authorization: Bearer <chave> | Header padrão (recomendado). | cfo_live_… |
X-Api-Key: <chave> | Header alternativo. | |
?api_key=<chave> | Query string (evite em produção — vaza em logs). |
A chave aparece uma única vez na criação (guardamos só o hash). Perdeu? Gere outra no painel. Revogar uma chave a invalida na hora.
Limites & quota
- Consultas por mês — cada requisição com resultado conta 1. Requisições que retornam 0 registros não consomem cota (são estornadas). Ao estourar, a API responde
429até a virada do mês. - Registros por consulta — teto de linhas por requisição: o
per_pageé limitado ao seu plano (max_records) e, no máximo, a 1.000 em JSON / 50.000 em CSV. Usepagepara paginar além disso (cada página é 1 consulta). - Restrição de IP — se sua conta tiver allowlist, só os IPs listados podem usar suas chaves (
403 ip_not_allowedcaso contrário). resource=metanão consome quota.
Toda resposta traz os headers:
X-RateLimit-Limit: 5000 # cota mensal (ou "unlimited")
X-RateLimit-Remaining: 4987 # quanto resta neste mês
X-RateLimit-Reset: 1751337600 # unix ts da virada do mês
GET?resource=empresas
Lista paginada de estabelecimentos pelos filtros. Período default = últimos 30 dias de abertura (use dias=0 para qualquer período). Consome 1 consulta.
Parâmetros
| Parâmetro | Descrição | Exemplo |
|---|---|---|
dias | Aberta nos últimos N dias. 0 = qualquer período. | 30 |
de / ate | Intervalo de data de abertura (YYYY-MM-DD). Tem prioridade sobre dias. | 2026-05-01 |
uf | Unidade federativa (2 letras). | SP |
cidade | Nome do município (busca parcial). | Campinas |
cnae | Código (prefixo) ou descrição da atividade. | 6201 / software |
sit | Situação cadastral (ver tabela). Default 2 (ativa). | 2 |
termo | Texto na razão social / nome fantasia. | tecnologia |
matriz | 1 = só matrizes. | 1 |
mei | only = só MEI · exclude = exclui MEI. | only |
aeronave | sim = proprietária/operadora de aeronave · prop = só proprietária · oper = só operadora. Fonte: ANAC/RAB. | sim |
bndes | sim = empresa que captou financiamento BNDES (operações não-automáticas). | sim |
finep | sim = empresa com projeto/contrato FINEP. | sim |
pncp | sim = empresa fornecedora do governo (contrato público no PNCP). | sim |
capmin / capmax | Faixa de capital social (R$). | 100000 |
cepde / cepate | Intervalo de CEP (prefixo). | 01000000 |
page | Página (1-based). | 2 |
per_page | Registros por página (limitado pela sua conta). | 100 |
format | json (default) ou csv. | csv |
Resposta
{
"meta": {
"total": 458, "page": 1, "per_page": 50, "returned": 50,
"total_pages": 10, "capped": false,
"fonte": "dados abertos do governo federal",
"quota": { "limit": 5000, "remaining": 4987 }
},
"data": [
{
"cnpj": "12.345.678/0001-90",
"cnpj_raw": "12345678000190",
"razao_social": "EXEMPLO TECNOLOGIA LTDA",
"nome_fantasia": "Exemplo",
"matriz": true,
"situacao": { "codigo": 2, "descricao": "Ativa" },
"data_inicio": "2026-06-02",
"cnae_principal": { "codigo": "6201501", "descricao": "Desenvolvimento de programas..." },
"porte": { "codigo": "01", "descricao": "Micro (ME)" },
"capital_social": 50000.0,
"endereco": { "logradouro": "RUA EXEMPLO", "numero": "100", "bairro": "Centro",
"municipio": "São Paulo", "uf": "SP", "cep": "01000000" },
"contato": { "telefone": "(11) 999990000", "email": "[email protected]" }
}
]
}
GET?resource=empresa&cnpj=…
Detalhe completo de um CNPJ (14 dígitos): cadastro, endereço, Simples/MEI e quadro societário. Consome 1 consulta.
curl "https://cfo.com.br/api?resource=empresa&cnpj=12345678000190" \
-H "Authorization: Bearer cfo_live_SUA_CHAVE"
Retorna { "data": { … , "simples": {…}, "socios": [ … ] } }. CPF de sócio pessoa física vem mascarado na origem (padrão da RFB).
GET?resource=meta
Introspecção: limites e uso da sua conta + horizonte dos dados. Não consome quota.
curl "https://cfo.com.br/api?resource=meta" -H "Authorization: Bearer cfo_live_SUA_CHAVE"
Exportar CSV
Adicione format=csv para receber um arquivo (UTF-8 com BOM, separador ;, pronto pro Excel). O streaming permite páginas grandes — respeitando o teto da sua conta.
curl -L "https://cfo.com.br/api?resource=empresas&uf=RS&dias=60&per_page=1000&format=csv" \
-H "Authorization: Bearer cfo_live_SUA_CHAVE" -o empresas.csv
Exemplos em código
const r = await fetch(
"https://cfo.com.br/api?resource=empresas&uf=SP&cnae=6201&dias=30",
{ headers: { Authorization: "Bearer cfo_live_SUA_CHAVE" } }
);
const { meta, data } = await r.json();
console.log(meta.total, data.length);
import requests
r = requests.get("https://cfo.com.br/api", params={
"resource": "empresas", "uf": "SP", "cnae": "6201", "dias": 30
}, headers={"Authorization": "Bearer cfo_live_SUA_CHAVE"})
payload = r.json()
print(payload["meta"]["total"], len(payload["data"]))
$ch = curl_init("https://cfo.com.br/api?resource=empresas&uf=SP&cnae=6201&dias=30");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["Authorization: Bearer cfo_live_SUA_CHAVE"],
]);
$res = json_decode(curl_exec($ch), true);
echo $res["meta"]["total"];
Erros
Erros vêm como { "error": { "code": "...", "message": "..." } } com o status HTTP correspondente.
| HTTP | code | Quando |
|---|---|---|
| 400 | bad_request | Parâmetro inválido (ex.: CNPJ sem 14 dígitos). |
| 401 | missing_key / invalid_key | Chave ausente, inválida ou revogada. |
| 403 | ip_blocked / ip_not_allowed / account_inactive | IP bloqueado, fora da allowlist, ou conta inativa. |
| 404 | not_found / unknown_resource | CNPJ inexistente ou recurso desconhecido. |
| 429 | quota_exceeded | Cota mensal atingida (veja Retry-After). |
| 500 | query_error | Erro interno ao consultar. |
Tabelas de código
Situação cadastral (sit)
1 | Nula |
2 | Ativa |
3 | Suspensa |
4 | Inapta |
8 | Baixada |
Porte
00 | — |
01 | Micro (ME) |
03 | Pequeno (EPP) |
05 | Demais |
Dados públicos (dados abertos do governo federal), atualizados com frequência. CFO não é um órgão público.