ArtificialGuyBR

Home / Blog / Fixing things

Portal da Transparência: dado federal de gasto sem chave de API

Skill e scripts em Python para o portal federal (CGU): 27 conjuntos de dado aberto, bucket de download público sem WAF, e as armadilhas que mordem na consult…

2 sources cited Fixing things

Portal da Transparência: dado federal de gasto sem chave de API

TL;DR

  • A skill consulta o portal federal (CGU) para despesa, licitação, contrato, convênio, cartão corporativo, salário de servidor, nota fiscal, viagem, emenda parlamentar, benefício social e sanção — sem chave de API.
  • Ela documenta 27 conjuntos e dois modos: dado aberto em massa como CSV, e as APIs internas do site para uma consulta pontual.
  • As três barreiras que ela remove são concretas: a API REST oficial exige conta gov.br prata ou ouro, o site fica atrás de AWS WAF que responde 202 ou 405 a curl, e o dado aberto em massa não é documentado de forma utilizável.
  • A descoberta útil: o bucket de dado aberto é público e não tem WAF, então os zips baixam direto — o que faltava era o mapa de qual arquivo é de qual conjunto e período.

O que é e para quem

O Portal da Transparência é uma skill para Claude Code, mais scripts em Python que funcionam sozinhos, para consultar o portal da CGU em portaldatransparencia.gov.br.

É para o analista, o jornalista e o agente que precisam de número de gasto federal por código e batem sempre nas mesmas três paredes: API que quer conta gov.br, WAF que responde desafio para tudo que não é navegador, e download em massa com nome de arquivo não documentado.

Dois modos, e por que separados

O modo massa baixa dado aberto em CSV. A descoberta do README é que dadosabertos-download.cgu.gov.br/PortalDaTransparencia/saida/ serve os zips direto, sem chave, sem cookie e sem captcha, e sem WAF. O que faltava era o mapa: qual arquivo corresponde a qual conjunto e período.

O modo consulta usa as APIs internas do site para uma consulta pontual, que é o que você quer quando a pergunta é um contrato em vez de um ano de contratos.

# quanto cada órgão gastou no cartão corporativo em maio/2026
python3 scripts/pt.py baixar cpgf 202605 --dir dados
python3 scripts/pt.py agregar dados/202605_CPGF.csv --por "NOME ÓRGÃO" --valor "VALOR TRANSAÇÃO"

# contratos federais assinados no 1º trimestre de 2026
python3 scripts/site.py consulta contratos --p assinaturaDe=01/01/2026 \
    --p assinaturaAte=31/03/2026 --tam 500 --paginas 4 --csv --out contratos.csv

O primeiro par é o padrão que vale ler duas vezes: baixar o mês em CSV e agregar localmente por coluna. É isso que torna uma pergunta respondível sem paginar API.

O que cobre

São vinte e sete conjuntos, incluindo despesa, licitação, contrato, convênio, cartão corporativo, salário de servidor, nota fiscal, viagem, emenda parlamentar, benefício social e sanção. O README diz que tudo aqui foi verificado empiricamente contra a fonte, não deduzido da documentação — e essa é a distinção que importa: endpoint documentado e endpoint que funciona são coisas diferentes neste portal.

A API REST oficial continua existindo e continua opcional. Ela exige conta gov.br prata ou ouro, o que o README chama de barreira real para script rápido, notebook de análise ou agente autônomo. Use quando você precisa do que ela oferece e tem a conta; use os outros dois modos quando não tem.

As armadilhas

O README tem uma seção chamada "armadilhas que vão te morder", e é a parte mais útil do repositório: o site responde a requisição com cara de navegador com desafio, o período no nome do arquivo muda de conjunto para conjunto, e a nomenclatura do download não é anunciada em lugar nenhum. Ler essa seção antes de escrever código economiza a tarde.

Instalação

Os scripts são Python 3.9+ e não precisam de chave de API. A skill é um diretório que você copia para a pasta de skills do agente, e os scripts rodam no terminal.

Quando usar, quando não usar

Use quando você precisa de resposta reproduzível sobre gasto federal, quando quer um mês de transação em CSV em vez de página paginada, ou quando você precisa do dado de cartão corporativo ou de convênio e a conta da API oficial é o bloqueio.

Não use como portal oficial nem no lugar dele, e não use as APIs internas como contrato estável — o README as verifica empiricamente, o que significa que elas podem mudar. E não use para dado fora dos vinte e sete conjuntos: o README documenta a cobertura que verificou, não a cobertura que o portal tem.

Sources

  1. Portal da Transparência — repositório — as três barreiras, os dois modos, a descoberta do dado aberto, os 27 conjuntos e a seção de armadilhas citados acima.
  2. README.md — exemplos de uso, instalação, lista de conjuntos, licença (MIT).

Página do projeto: Portal da Transparência

Para o portal de São Paulo, veja a skill do Portal da Transparência SP, e para o do Paraná, a skill do Portal da Transparência PR.

FAQ

Precisa de chave de API? Não. O README afirma que o bucket de dado aberto serve os zips direto, sem chave, cookie ou captcha, e o caminho testado também não precisa.

Por que a API oficial quer conta? Porque exige conta gov.br prata ou ouro, o que o README chama de barreira real para script, notebook ou agente autônomo.

Qual é a descoberta do dado aberto? Que o bucket de dado aberto é público e sem WAF, então o que faltava era o mapa de qual arquivo é de qual conjunto e período.

Quais conjuntos são cobertos? Vinte e sete, incluindo despesa, licitação, contrato, convênio, cartão corporativo, salário, nota fiscal, viagem, emenda, benefício e sanção.