Announcing the Budget Endpoint

The Tango API now exposes federal budget accounts at /api/budget/accounts/. One row per federal account per fiscal year, with the full money lifecycle (requested, enacted, apportioned, obligated, outlayed), the contract-versus-grant split of those obligations, and a drill-down to the funding offices and recipients behind them. It's in Beta today. Field definitions live in the Budget API reference.

Why it matters

By the time a contract shows up in USASpending, the buying decision is old news. The President requested a number, Congress enacted a different one, OMB apportioned it, a funding office put the work on the street, and a vendor won it. USASpending and FPDS sit at the trailing edge of that chain. The money was appropriated, and the work was solicited, long before any award shows up.

Following the money from appropriation through solicitation to award used to mean stitching together the President's Budget appendix (PDFs), SF-133 apportionment files, SAM.gov, and USASpending. Four systems, four grains, and a lot of reconciliation. The budget endpoint collapses that into one queryable resource in the same API as your contracts, opportunities, and entities. One API key, one query language, budget data lined up next to everything else.

What you can build with it

The budget is the foundation for a bunch of advanced government contracting workflows. We'll dig into specific workflows in upcoming Build With Tango posts, but here are some examples of what the data supports:

  • Scoring accounts by how "contractable" they are. One field, contract_share_of_obligated, separates buying accounts from transfer programs. NASA's Deep Space Exploration account runs about 88% through contracts; Medicaid Grants to States runs about 1%.
  • Mapping an account to the vendors behind it. Drill from a federal account to its funding offices and recipients, or run the lookup in reverse to see which accounts fund a given vendor.
  • Surfacing what's about to be solicited. The gap between appropriated and on-contract dollars, paired with next-year growth, is a forward-looking pipeline. Comparing it against current recipients tells you net-new scope from a recompete.

How it works

Each row in the endpoint is one federal account in one fiscal year — for example, NASA's Deep Space Exploration account in FY2024. That row carries the full dollar lifecycle (requested, enacted, apportioned, obligated, outlayed, and what's left unobligated), the split between contract and assistance obligations, the ratios you'd otherwise have to compute yourself, and a forward look at the next year's request. From that base, four endpoints branch off:

  • List and detail. GET /api/budget/accounts/ and GET /api/budget/accounts/{id}/.
  • Recipients. GET /api/budget/accounts/{id}/recipients/ returns a funding-office × recipient breakdown, with hydrated contract rows.
  • Quarters. GET /api/budget/accounts/{id}/quarters/ returns Treasury Account Symbol quarterly SF-133 flow (FY21+).
  • Budget flows (inverse). GET /api/entities/{uei}/budget-flows/ returns the federal accounts that funded a given vendor.

Coverage runs FY2017–FY2026 for lifecycle dollars, FY2008–FY2027 for OMB appendix detail and narratives, and FY2021+ for the quarterly endpoint. Data comes from public sources: OMB, Treasury SF-133, and FPDS/USASpending. Authentication is required (API key or OAuth2). Filtering, response shaping, and pagination work the same way as elsewhere in Tango.

A quick taste. Rank FY2024 accounts by total obligations and look at the contract share:

curl -G 'https://tango.makegov.com/api/budget/accounts/' \
  -H "X-API-KEY: ${TANGO_API_KEY}" \
  --data-urlencode "fiscal_year=2024" \
  --data-urlencode "ordering=-obligated_total" \
  --data-urlencode "shape=federal_account_symbol,account_title,agency_name,obligated_total,contract_obligated,contract_share_of_obligated_capped" \
  --data-urlencode "limit=25"

Try it

If you want to reason about federal money before it becomes an award or understand how agencies have spent their budgets in the past, that's what this endpoint is for. Sign up at the Tango API and pull a few accounts; the reference docs cover every field. The same endpoint is also live on the Tango MCP server at govcon.dev/mcp, so any MCP-capable client can query it directly with your API key. And the Python and Node SDKs both include the endpoints. All are included in the free tier.

Ready to get started with Tango?

If you're working with federal procurement data, Tango provides a unified API that combines federal procurement data sets and improves on them with a developer-friendly approach. Skip the complexity of scraping and joining multiple government APIs yourself.

Sign up for Tango