USAspending budget_authority is not budget authority, and the snapshot has no year in it
Checked 2026-09-08 · Federal budget and spending
In the federal-account snapshot the field named budget_authority is total budgetary resources: it equals appropriations plus balance_brought_forward, exactly, in every year checked. The field that matches what OMB calls budget authority is appropriations. Separately, the response body carries no fiscal-year field, so a request that leaves the year out of the path returns the open year and there is nothing in the payload to tell you.
What we saw
budget_authority = appropriations + balance_brought_forward, to the cent, FY2023 through FY2026. Source (results.budget_authority, results.appropriations, results.balance_brought_forward, 2026-09-08).
FY2023 appropriations=419527402600.58 bbf=1896072768.03 sum=421423475368.61 budget_authority=421423475368.61 match=True FY2024 appropriations=388681350795.73 bbf=152843155.50 sum=388834193951.23 budget_authority=388834193951.23 match=True FY2025 appropriations=444126814742.86 bbf=1869983827.79 sum=445996798570.65 budget_authority=445996798570.65 match=True FY2026 appropriations=496549860439.82 bbf=541494237.00 sum=497091354676.82 budget_authority=497091354676.82 match=True
Omitting the year returns the open fiscal year, and the body is byte-identical to the explicit FY2026 request. Source (results object, 2026-09-08).
no-year body identical to FY2026? True
The results object contains no fiscal-year key at all. Source (top-level keys of results, 2026-09-08).
{
"results": {
"outlay": 408182004260.39,
"budget_authority": 497091354676.82,
"obligated": 410599125517.83,
"unobligated": 86492229158.99,
"balance_brought_forward": 541494237.0,
"other_budgetary_resources": 0.0,
"appropriations": 496549860439.82,
"name": "Federal Hospital Insurance Trust Fund - Treasury Managed, Health and Human Services"
}
}The two endpoints one path segment apart take different key types: the snapshot takes the numeric account id, the detail endpoint takes the account code, and the wrong one returns a bare Django 404. Source (path parameter, 2026-09-08).
GET /api/v2/federal_accounts/075-8005/fiscal_year_snapshot/2025/ -> http=404 (HTML 'Not Found')
GET /api/v2/federal_accounts/5599/ -> http=404 (HTML 'Not Found')
GET /api/v2/federal_accounts/075-8005/ -> {'account_title': 'Federal Hospital Insurance Trust Fund - Treasury Managed, Health and Human Services', 'agency_identifier': '075', 'main_account_code': '8005'}The command
for y in 2023 2024 2025 2026; do curl -sS "https://api.usaspending.gov/api/v2/federal_accounts/5599/fiscal_year_snapshot/$y/"; done # identity check
FY2023 appropriations=419527402600.58 bbf=1896072768.03 sum=421423475368.61 budget_authority=421423475368.61 match=True outlay=408062736621.70 FY2024 appropriations=388681350795.73 bbf=152843155.50 sum=388834193951.23 budget_authority=388834193951.23 match=True outlay=407385121062.23 FY2025 appropriations=444126814742.86 bbf=1869983827.79 sum=445996798570.65 budget_authority=445996798570.65 match=True outlay=444839228359.41 FY2026 appropriations=496549860439.82 bbf=541494237.00 sum=497091354676.82 budget_authority=497091354676.82 match=True outlay=408182004260.39
Checked 2026-09-08.
curl -sS -w " http=%{http_code}\n" "https://api.usaspending.gov/api/v2/federal_accounts/075-8005/fiscal_year_snapshot/2025/"<!doctype html> <html lang="en"> <head> <title>Not Found</title> </head> <body> <h1>Not Found</h1><p>The requested resource was not found on this server.</p> </body> </html> http=404
Checked 2026-09-08.
| Field | What it actually is | FY2025 value |
|---|---|---|
| appropriations | the figure comparable to OMB budget authority | 444,126,814,742.86 |
| balance_brought_forward | unobligated balance carried in | 1,869,983,827.79 |
| budget_authority | total budgetary resources (the sum of the two above) | 445,996,798,570.65 |
| outlay | gross outlays, positive | 444,839,228,359.41 |
Limits
- Checked on one account, 075-8005 / account_id 5599, across four fiscal years. I did not test whether the identity holds for accounts with non-zero other_budgetary_resources, which is where it would most plausibly break.
- FY2026 is an open year. Its figures move.
- The default-year behaviour is what the endpoint did today. It is not documented in the response, so it can change without notice.
Open question
Whether budget_authority is still appropriations + balance_brought_forward for an account where other_budgetary_resources is non-zero, or whether that term enters too.