A API de Emendas Parlamentares do Portal da Transparência disponibiliza dados sobre emendas ao orçamento federal propostas por parlamentares (deputados e senadores). Os dados incluem autor da emenda, valor destinado, localidade beneficiada, órgão executor, valores empenhados, liquidados e pagos.
As emendas parlamentares representam um dos principais mecanismos de transferência de recursos federais e são uma fonte essencial para rastrear o fluxo de dinheiro público. Ao cruzar dados de emendas com doações de campanha (TSE) e dados societários de empresas beneficiadas (Receita Federal), é possível mapear redes de influência política e identificar potenciais conflitos de interesse.
import requestsimport pandas as pdAPI_KEY = "SEU_TOKEN_AQUI"BASE_URL = "https://api.portaldatransparencia.gov.br/api-de-dados"headers = { "chave-api-dados": API_KEY, "Accept": "application/json",}def listar_emendas(ano: int, nome_autor: str = None, pagina: int = 1): """ Lista emendas parlamentares de um ano. Args: ano: Ano do orçamento (ex: 2024) nome_autor: Nome do parlamentar autor (opcional, busca parcial) pagina: Número da página Returns: Lista de emendas em formato dict """ url = f"{BASE_URL}/emendas" params = { "ano": ano, "pagina": pagina, } if nome_autor: params["nomeAutor"] = nome_autor response = requests.get(url, headers=headers, params=params) response.raise_for_status() return response.json()# Exemplo: emendas do ano de 2024emendas = listar_emendas(2024)df = pd.DataFrame(emendas)print(f"Emendas retornadas: {len(df)}")print(df[["codigoEmenda", "nomeAutor", "valorEmpenhado", "localidadeDoGasto"]].head())
def todas_emendas_do_ano(ano: int, max_paginas: int = 10): """ Coleta emendas de múltiplas páginas para um ano. Args: ano: Ano do orçamento max_paginas: Número máximo de páginas a consultar Returns: DataFrame com todas as emendas coletadas """ import time todas = [] for pagina in range(1, max_paginas + 1): dados = listar_emendas(ano, pagina=pagina) if not dados: break todas.extend(dados) time.sleep(2) # Respeitar rate limit de 30 req/min return pd.DataFrame(todas)# Coletar e analisardf_todas = todas_emendas_do_ano(2024, max_paginas=5)if not df_todas.empty: # Ranking de autores por valor empenhado ranking = ( df_todas.groupby("nomeAutor")["valorEmpenhado"] .sum() .sort_values(ascending=False) ) print("Top 10 parlamentares por valor empenhado:") print(ranking.head(10))
import requestsimport pandas as pdAPI_KEY = "SEU_TOKEN_AQUI"BASE_URL = "https://api.portaldatransparencia.gov.br/api-de-dados"headers = {"chave-api-dados": API_KEY, "Accept": "application/json"}# 1. Obter emendas de um parlamentar específicoresp = requests.get( f"{BASE_URL}/emendas", headers=headers, params={"ano": 2024, "nomeAutor": "NOME DO PARLAMENTAR", "pagina": 1},)emendas = pd.DataFrame(resp.json())if not emendas.empty: print(f"Total de emendas: {len(emendas)}") print(f"Valor total empenhado: R$ {emendas['valorEmpenhado'].sum():,.2f}") print(f"Valor total pago: R$ {emendas['valorPago'].sum():,.2f}") # 2. Identificar localidades beneficiadas por_local = emendas.groupby("localidadeDoGasto")["valorPago"].sum() print("\nLocalidades beneficiadas:") print(por_local.sort_values(ascending=False).head()) # 3. Próximo passo: cruzar com dados do TSE para verificar se # empresas/entidades beneficiadas são doadores do parlamentar print("\nPróximo passo: cruzar com prestação de contas do TSE")
90 requisições por minuto (6h-24h) / 300 requisições por minuto (0h-6h) por token. Exceder resulta em HTTP 429.
Emendas de relator
Emendas do relator-geral (RP9, "orçamento secreto") historicamente tinham menos transparência. A partir de 2023, há maior detalhamento, mas dados anteriores podem ser incompletos.
Identificação do beneficiário final
A API informa a localidade do gasto, mas nem sempre identifica o beneficiário final (empresa ou entidade) que recebeu o recurso.
Execução financeira
Os valores empenhados podem diferir significativamente dos valores pagos. Restos a pagar podem se acumular por anos.
Paginação
Resultados paginados; para análises completas é necessário iterar todas as páginas.
Cobertura temporal
Dados mais completos a partir de 2015. Anos anteriores podem ter informações incompletas.
Emendas impositivas
A distinção entre emendas impositivas e não impositivas nem sempre é clara nos dados retornados.
Disponibilidade
A API pode apresentar instabilidade em horários de pico (9h-12h BRT). Implemente retry com backoff exponencial.