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
Para usar a API você precisa de uma conta liberada e de uma chave. Solicitar acesso · Entrar · gere suas chaves no painel.

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

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âmetroDescriçãoExemplo
diasAberta nos últimos N dias. 0 = qualquer período.30
de / ateIntervalo de data de abertura (YYYY-MM-DD). Tem prioridade sobre dias.2026-05-01
ufUnidade federativa (2 letras).SP
cidadeNome do município (busca parcial).Campinas
cnaeCódigo (prefixo) ou descrição da atividade.6201 / software
sitSituação cadastral (ver tabela). Default 2 (ativa).2
termoTexto na razão social / nome fantasia.tecnologia
matriz1 = só matrizes.1
meionly = só MEI · exclude = exclui MEI.only
aeronavesim = proprietária/operadora de aeronave · prop = só proprietária · oper = só operadora. Fonte: ANAC/RAB.sim
bndessim = empresa que captou financiamento BNDES (operações não-automáticas).sim
finepsim = empresa com projeto/contrato FINEP.sim
pncpsim = empresa fornecedora do governo (contrato público no PNCP).sim
capmin / capmaxFaixa de capital social (R$).100000
cepde / cepateIntervalo de CEP (prefixo).01000000
pagePágina (1-based).2
per_pageRegistros por página (limitado pela sua conta).100
formatjson (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);

Erros

Erros vêm como { "error": { "code": "...", "message": "..." } } com o status HTTP correspondente.

HTTPcodeQuando
400bad_requestParâmetro inválido (ex.: CNPJ sem 14 dígitos).
401missing_key / invalid_keyChave ausente, inválida ou revogada.
403ip_blocked / ip_not_allowed / account_inactiveIP bloqueado, fora da allowlist, ou conta inativa.
404not_found / unknown_resourceCNPJ inexistente ou recurso desconhecido.
429quota_exceededCota mensal atingida (veja Retry-After).
500query_errorErro interno ao consultar.

Tabelas de código

Situação cadastral (sit)

1Nula
2Ativa
3Suspensa
4Inapta
8Baixada

Porte

00
01Micro (ME)
03Pequeno (EPP)
05Demais

Dados públicos (dados abertos do governo federal), atualizados com frequência. CFO não é um órgão público.