Next free-source hunt
We check for new free financial data every Wednesday.
Datasets / Macro
fiscaldata.treasury.gov/

U.S. Treasury Fiscal Data API

Freeauth: noneCustom#macro#economic-data#historical-data✓ verified Oct 22, 2026

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

EndpointReturns
/v2/accounting/od/debt_to_pennyTotal public debt outstanding, daily, since Apr 1, 1993
/v1/accounting/dts/operating_cash_balanceDaily Treasury Statement: operating cash balance, since Oct 3, 2005
/v1/accounting/mts/mts_table_1Monthly Treasury Statement: receipts, outlays and deficit, since Mar 2015
/v2/accounting/od/avg_interest_ratesAverage interest rates on Treasury securities, monthly, since Jan 2001
/v1/accounting/od/rates_of_exchangeTreasury 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.

Use in your agent

Load U.S. Treasury Fiscal Data into pandas and Parquet. Checked against the provider's documentation on Oct 29, 2026.

Raw skill file (/skills/us-treasury-fiscal-data.md)Also in our MCP server: call get_ingestion_skill with {"slug": "us-treasury-fiscal-data"}.

Access

  • No account, registration or API key.

Request

bash
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.

python
"""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

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