Desenvolvedores
Dados abertos do FarejaLeads para sistemas e agentes: empresas ativas no Brasil por setor, estado, município, porte e ano de abertura (base de CNPJ da Receita Federal) e contratos públicos por categoria, fornecedores e compradores (PNCP). Só leitura, em JSON e CSV, licença CC BY 4.0.
Início rápido
Sem cadastro: copie e rode.
curl https://farejaleads.com/api/v1
curl https://farejaleads.com/api/v1/conjuntos
curl https://farejaleads.com/api/v1/conjuntos/empresas-ativas-por-setor-e-uf.json
curl https://farejaleads.com/api/v1/paginas/empresas/software/pe.jsonA especificação completa está em /openapi.json (OpenAPI 3.1). O catálogo com o dicionário de cada coluna está em /dados, e o método em /dados/metodologia.
Chaves de API e ambiente de testes
A API de dados abertos não usa chave: é pública, só leitura e com CORS liberado. Não há ambiente de testes separado porque nenhuma chamada altera nada — use a produção à vontade, respeitando o limite abaixo. Precisa de mais volume ou de um recorte que não está no catálogo? Escreva para contact@gvosd.com com o assunto “API”.
Listas de leads com contato (e-mail, telefone) não saem pela API pública: elas ficam no aplicativo, por conta, e só o lead entregue é cobrado (preços).
Rotas
GET /api/v1— índice: versão, rotas e links.GET /api/v1/conjuntos— os 7 conjuntos do catálogo, com links JSON e CSV.GET /api/v1/conjuntos/{id}.json|csv— um conjunto inteiro.GET /api/v1/paginas/{caminho}.json|csv— os números de uma página pública, comoempresas/software/pe/recifeoucontratos-publicos/software-e-ti/sp.
Os endereços /dados/arquivo/…, citados nas páginas de dados, continuam funcionando com o mesmo conteúdo.
Erros
Todo erro sai como application/problem+json (RFC 9457): type, title, status, detail e instance, mais code (estável, para o seu código decidir) e hint (o que fazer). Exemplo:
HTTP/1.1 404
Content-Type: application/problem+json; charset=utf-8
{
"type": "https://farejaleads.com/developers#erro-conjunto_inexistente",
"title": "Conjunto de dados inexistente",
"status": 404,
"detail": "O conjunto \"xyz\" não existe.",
"instance": "/api/v1/conjuntos/xyz.json",
"code": "conjunto_inexistente",
"hint": "Liste os conjuntos em /api/v1/conjuntos."
}- 404 rota_inexistente
- Rota inexistente. Veja as rotas em /api/v1 ou em /openapi.json.
- 404 formato_invalido
- Formato não suportado. Termine o caminho em .json ou .csv.
- 404 conjunto_inexistente
- Conjunto de dados inexistente. Liste os conjuntos em /api/v1/conjuntos.
- 404 pagina_inexistente
- Página de dados inexistente. Use o caminho de uma página pública, como empresas/software/pe ou contratos-publicos/software-e-ti.
- 405 metodo_nao_permitido
- Método não permitido. A API é só leitura: use GET.
- 429 limite_excedido
- Limite de requisições excedido. Espere os segundos do cabeçalho Retry-After e diminua o ritmo.
- 503 indisponivel
- Fonte indisponível agora. Tente de novo em alguns minutos (veja Retry-After).
- 500 erro_interno
- Erro interno. Tente de novo; se continuar, escreva para o suporte informando o instance.
Fora da API, um endereço que não existe responde 404 em Markdown para quem pede Accept: text/markdown, e em JSON para quem pede só JSON.
Limites
120 requisições a cada 60 segundos por IP. Toda resposta da API informa a cota nos cabeçalhos do draft IETF de limites (RateLimit-Policy e RateLimit) e nos X-RateLimit-Limit, X-RateLimit-Remaining e X-RateLimit-Reset. Passou do limite: 429 com Retry-After em segundos.
RateLimit-Policy: "padrao";q=120;w=60
RateLimit: "padrao";r=119;t=60As respostas de sucesso têm cache público de 1 hora: repetir a mesma chamada não precisa ir ao servidor.
Versões e depreciação
A versão está no caminho (/api/v1) e no cabeçalho API-Version de toda resposta. Dentro de uma versão só entram mudanças compatíveis: campos e rotas novos. Mudança incompatível sai numa versão nova (/api/v2), e a anterior continua no ar por pelo menos 6 meses, anunciada com os cabeçalhos Deprecation (RFC 9745) e Sunset (RFC 8594) e nesta página.
Versões ativas: v1 (atual, sem data de fim).
Servidor MCP (ChatGPT e outros agentes)
https://farejaleads.com/mcp — MCP por Streamable HTTP, sem estado e sem autenticação, só leitura. Ferramentas: porte e faturamento estimado de um CNPJ, contratos públicos de um CNPJ, empresas de um ramo que vendem para o governo, panorama de um mercado, maiores fornecedores de um órgão, empresas por atividade e cidade e os guias de prospecção. Nunca devolve sócio, CPF, telefone ou e-mail.
curl -X POST https://farejaleads.com/mcp \
-H 'content-type: application/json' \
-H 'accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'Instalação no Claude, ChatGPT, Cursor e VS Code, a lista das ferramentas e o servidor autenticado da sua conta: Servidor MCP. Para agentes que leem texto: /llms.txt diz quando usar o FarejaLeads e lista as páginas principais.