U.S. Treasury Fiscal Data API
U.S. Treasury Fiscal Data API
Official open API from the U.S. Treasury's Bureau of the Fiscal Service: federal debt, daily cash and debt operations, receipts and outlays, average interest rates on Treasury securities, auction data and the Treasury's reporting exchange rates for foreign currencies. No API key, account or registration; JSON, CSV or XML.
Fiscal Data is the U.S. Treasury's open data site, run by the Bureau of the Fiscal Service. Its REST API serves federal debt, the Daily and Monthly Treasury Statements, revenue collections, average interest rates on Treasury securities, auction data, TIPS/CPI reference data and the Treasury Reporting Rates of Exchange. Every request is an HTTP GET to https://api.fiscaldata.treasury.gov/services/api/fiscal_service plus an endpoint (v1 or v2), with optional fields, filter, sort, format (JSON, CSV or XML) and page[number]/page[size] parameters. Results come 100 rows per page by default.
No key or account is needed: Treasury says the API "does not require a user account or registration for a token", and the data is "offered free, without restriction, and available to copy, adapt, redistribute, or otherwise use for non-commercial or commercial purposes." No rate limit is published.
The exchange rates are the government's quarterly reporting rates for official transactions, not market rates, and the average interest rates are on outstanding Treasury debt, not market yields.
Coverage
U.S. federal finances across 181 listed API endpoints (Treasury's endpoint table, Oct 22, 2026). Daily: Debt to the Penny (total public debt outstanding, from Apr 1, 1993; posted at the end of each business day with the previous business day's data), Daily Treasury Statement (cash balance, deposits, withdrawals and debt transactions, from Oct 3, 2005) and revenue collections (from Oct 1, 2004). Monthly: Monthly Treasury Statement receipts, outlays and deficit (from Mar 2015), Monthly Statement of the Public Debt and average interest rates on Treasury securities (both from Jan 2001). Quarterly: Treasury Reporting Rates of Exchange (from Mar 31, 2001). Also auction data from Nov 15, 1979 and annual debt outstanding from 1790. No market prices.
Good for
- Daily macro features from Debt to the Penny and the Daily Treasury Statement (public debt, Treasury cash balance), lagged one business day to match publication
- Monthly fiscal features from the Monthly Treasury Statement: receipts, outlays and the deficit
- Converting foreign-currency amounts at the U.S. government's official quarterly reporting rates for 100+ currencies
Verdict
Free, official U.S. government fiscal data with no key, and Treasury says it can be copied, redistributed and used for commercial purposes. Good for macro and rates features such as daily public debt, the Treasury's cash balance, monthly deficits and average interest rates on outstanding Treasury debt. Two cautions: the exchange rates are the government's quarterly reporting rates (amended only when a rate moves 10% or more), not market FX, and the average interest rates are on outstanding debt, not market yields. Lag daily series by the publication delay in backtests: Debt to the Penny for a given day is posted at the end of the next business day. No rate limit is published; page through results (100 rows per page by default).
Endpoints
| Endpoint | Returns |
|---|---|
/v2/accounting/od/debt_to_penny | Total public debt outstanding, daily, since Apr 1, 1993 |
/v1/accounting/dts/operating_cash_balance | Daily Treasury Statement: operating cash balance, since Oct 3, 2005 |
/v1/accounting/mts/mts_table_1 | Monthly Treasury Statement: receipts, outlays and deficit, since Mar 2015 |
/v2/accounting/od/avg_interest_rates | Average interest rates on Treasury securities, monthly, since Jan 2001 |
/v1/accounting/od/rates_of_exchange | Treasury Reporting Rates of Exchange, quarterly, since Mar 31, 2001 |
Get the free weekly email
Free weekly email of newly verified free data. Unsubscribe by emailing us.
By entering your email and clicking Subscribe, you agree to receive the Signal Lab weekly email from Quantum Data Technologies Ltd., 3200-650 West Georgia Street, Vancouver, BC V6B 4P7, Canada (signal-lab@qdt.ai). You can unsubscribe at any time: reply "unsubscribe" to any email or write to signal-lab@qdt.ai. See our Privacy Policy.
Use in your agent
Load U.S. Treasury Fiscal Data into pandas and Parquet. Checked against the provider's documentation on Oct 29, 2026.
Access
- No account, registration or API key.
Request
curl 'https://api.fiscaldata.treasury.gov/services/api/fiscal_service/v2/accounting/od/debt_to_penny?fields=record_date,tot_pub_debt_out_amt&sort=-record_date&page%5Bsize%5D=5'Format
JSON: a data array of rows plus meta (count, labels, dataTypes, total-count, total-pages) and links. Numbers and dates arrive as strings.
Load into pandas and Parquet
Needs Python 3 with requests, pandas and pyarrow.
"""Debt to the Penny (U.S. Treasury Fiscal Data API) -> pandas -> Parquet. No key."""
import requests
import pandas as pd
URL = "https://api.fiscaldata.treasury.gov/services/api/fiscal_service/v2/accounting/od/debt_to_penny"
params = {"fields": "record_date,tot_pub_debt_out_amt", "filter": "record_date:gte:2020-01-01",
"sort": "record_date", "page[size]": 500, "page[number]": 1}
rows = []
while True:
r = requests.get(URL, params=params, timeout=30)
r.raise_for_status()
body = r.json()
rows += body["data"]
if params["page[number]"] >= body["meta"]["total-pages"]:
break
params["page[number]"] += 1
df = pd.DataFrame(rows)
df["record_date"] = pd.to_datetime(df["record_date"])
df["tot_pub_debt_out_amt"] = pd.to_numeric(df["tot_pub_debt_out_amt"]) # values arrive as strings
df.to_parquet("us_treasury_debt_to_penny.parquet", index=False)
print(len(df), "rows", df["record_date"].min().date(), "to", df["record_date"].max().date())Run by us on 2026-10-29 (python 3.13.5 | pandas 3.1.0 | pyarrow 26.0.0 | requests 2.34.2). Result: 1,714 daily rows, 2020-01-02 to 2026-10-28.
Limits
- Rate limit: Not stated.
- Pages default to 100 rows (page[size]); the snippet asks for 500 and follows meta total-pages.
Quirks
- Values are strings (for example "40551054852362.41"); convert with pd.to_numeric.
- Debt to the Penny is posted at the end of each business day with the previous business day's data, so there are no weekend or holiday rows.
- Each dataset has its own endpoint path and field names, listed in the API documentation.
Terms and attribution
- Treasury states the data is free "without restriction" for non-commercial or commercial use. No attribution requirement is stated.
Sources
- https://fiscaldata.treasury.gov/api-documentation/: “Our API is open, meaning that it does not require a user account or registration for a token.”
- https://fiscaldata.treasury.gov/api-documentation/: “The data is offered free, without restriction, and available to copy, adapt, redistribute, or otherwise use for non-commercial or commercial purposes.”
- https://fiscaldata.treasury.gov/datasets/debt-to-the-penny/: “Debt to the Penny is updated at the end of each business day with data from the previous business day.”
Information and education only. Not financial, investment, legal or tax advice. Listings can be inaccurate, incomplete or out of date and are provided "as is". Free tiers, limits and licenses belong to each provider and can change, so check the provider's own terms before you rely on them. Terms & Disclaimer