O SIAFI (Sistema Integrado de Administração Financeira do Governo Federal) é o principal sistema de gestão das finanças do Governo Federal brasileiro, operado pela Secretaria do Tesouro Nacional (STN). Ele registra, em tempo real, toda a execução orçamentária, financeira e patrimonial da União, incluindo:
Empenhos — compromissos de despesa assumidos pelo governo
Liquidações — confirmação de que bens foram entregues ou serviços prestados
Pagamentos — efetiva saída de recursos do Tesouro
Receitas arrecadadas — tributos e outras receitas da União
Restos a pagar — despesas empenhadas e não pagas no exercício
O SIAFI em si é um sistema interno do governo, sem API pública direta. Porém, os dados de execução orçamentária registrados no SIAFI são disponibilizados ao público por meio de duas plataformas:
Tesouro Transparente — API REST do Tesouro Nacional (apidatalake.tesouro.gov.br)
Portal da Transparência — API REST da CGU (api.portaldatransparencia.gov.br)
Veja também:Tesouro Transparente para a visão geral da plataforma de dados abertos do Tesouro.
def consultar_resultado_primario(exercicio_inicio: int, exercicio_fim: int): """ Consulta o resultado primário do Governo Central ao longo de vários exercícios. Args: exercicio_inicio: Ano inicial exercicio_fim: Ano final Returns: DataFrame consolidado com resultados primários """ todos = [] for ano in range(exercicio_inicio, exercicio_fim + 1): url = f"{BASE_URL}/resultado-primario" params = {"an_exercicio": ano, "limit": 5000} response = requests.get(url, params=params) if response.status_code == 200: dados = response.json() items = dados.get("items", []) for item in items: item["exercicio"] = ano todos.extend(items) return pd.DataFrame(todos)# Exemplo: resultado primário de 2019 a 2024df_primario = consultar_resultado_primario(2019, 2024)if not df_primario.empty: print(df_primario.groupby("exercicio").sum(numeric_only=True).head())
O SIAFI não possui API pública própria. Os dados são acessados indiretamente via Tesouro Transparente e Portal da Transparência.
Defasagem de dados
Dados mensais são publicados com aproximadamente 30 a 60 dias de atraso em relação à data de referência.
Granularidade variável
Nem todos os endpoints expõem dados no nível mais detalhado (nota de empenho individual). Para esse nível, usar o Portal da Transparência.
Paginação obrigatória
Resultados são paginados; conjuntos grandes exigem múltiplas requisições iterando sobre offset.
Classificação orçamentária complexa
A estrutura funcional-programática (função, subfunção, programa, ação, plano orçamentário) exige conhecimento técnico de orçamento público.
Mudanças de estrutura
Alterações na classificação orçamentária entre exercícios (ex: fusão/criação de ministérios) dificultam séries temporais.
Restos a pagar
Despesas empenhadas em um exercício podem ser pagas em exercícios seguintes como "restos a pagar", o que pode causar dupla contagem se não tratado corretamente.
Sem documentação Swagger
As APIs do Tesouro Transparente não possuem documentação interativa Swagger/OpenAPI completa.