Fed H.10 Exchange Rate History: Download Federal Reserve Daily Rates 2016 to 2025 as CSV, Excel or API
The Federal Reserve's H.10 release is the standard public source for daily US dollar exchange rates: it is what tax preparers use for a transaction-date rate, what analysts use for a clean long series, and what many accounting policies name for translation. The Fed's own download tool works, but it hands you one wide file with its own codes and "ND" markers. This guide shows the series already tidied, and how to use it.
What H.10 is
The Federal Reserve describes the rates as "noon buying rates in New York for cable transfers payable in foreign currencies", "certified by the Federal Reserve Bank of New York for customs purposes as required by section 522 of the amended Tariff Act of 1930". The schedule: "On Mondays at 4:15 p.m. the Federal Reserve Board releases daily bilateral exchange rates and U.S. dollar indexes for the previous business week." If Monday is a federal holiday, the release moves to the next business day.
Three practical consequences:
- The data is daily but arrives weekly. Monday's release contains the five business days of the week before. The rate for last Tuesday is not available until the following Monday.
- No rate on federal holidays. The Fed's files show "ND" (no data). In 2025 the series has 250 daily tables.
- Four currencies are quoted the other way round. The euro, pound, Australian dollar and New Zealand dollar are in US dollars per unit. Everything else is in currency units per US dollar.
The tidy series: one CSV per year
The central-bank-exchange-rates repository holds the official H.10 tables under data/fed/history/, one file per year from 2016:
https://raw.githubusercontent.com/AllRates-Today/central-bank-exchange-rates/main/data/fed/history/2025.csv
date,base,quote,type,value
2025-01-02,AUD,USD,reference,0.6208
2025-01-02,EUR,USD,reference,1.0261
...
2025-01-02,USD,JPY,reference,... The base and quote columns make the direction explicit: EUR,USD,1.0261 is dollars per euro, USD,JPY is yen per dollar. Holidays are simply absent, with no "ND" rows to filter. The files cover 22 currencies. Licence: CC BY-NC 4.0, free for research, personal filing and internal non-commercial use with attribution; commercial systems use the API.
Excel and Google Sheets
In Excel: Data > Get Data > From Web, paste the raw URL, and Power Query loads a table you can filter by base or quote. In Google Sheets:
=QUERY(IMPORTDATA("https://raw.githubusercontent.com/AllRates-Today/central-bank-exchange-rates/main/data/fed/history/2025.csv"),
"select Col1, Col5 where Col2 = 'EUR'", 1) pandas: one frame, one direction
import pandas as pd
base = "https://raw.githubusercontent.com/AllRates-Today/central-bank-exchange-rates/main/data/fed/history/{}.csv"
df = pd.concat(pd.read_csv(base.format(y), parse_dates=["date"]) for y in range(2016, 2026))
# normalise everything to "foreign currency units per 1 USD"
inv = df.base != "USD"
df["ccy"] = df.quote.where(~inv, df.base)
df["per_usd"] = df.value.where(~inv, 1 / df.value)
wide = df.pivot(index="date", columns="ccy", values="per_usd")
print(wide.loc["2025-12-31", ["EUR", "GBP", "JPY", "CAD"]].round(4))
# EUR 0.8521, GBP 0.7437, JPY 156.8000, CAD 1.3712
print(wide.loc["2025"].mean()[["EUR", "GBP", "JPY"]].round(4)) # 2025 averages
print(wide["EUR"].asof("2025-12-25")) # holiday -> Dec 24 rate Two details in that snippet are the ones that cause wrong numbers elsewhere. The inversion puts all currencies on one basis before you average or compare. And asof returns the last available rate for a holiday or weekend date, which is the usual fallback for a transaction dated on a non-business day.
Check values
| Date | EUR (USD per EUR) | GBP (USD per GBP) | JPY per USD | CAD per USD | INR per USD |
|---|---|---|---|---|---|
| Dec 31, 2024 | 1.0351 | 1.2521 | 157.37 | 1.4400 | 85.55 |
| Dec 31, 2025 | 1.1736 | 1.3447 | 156.80 | 1.3712 | 89.84 |
| 2025 average (250 days) | 1.1306 | 1.3192 | 149.57 | 1.3973 | 87.15 |
| 2025 low | 1.0209 | 1.2158 | 140.81 | 1.3556 | 84.27 |
| 2025 high | 1.1848 | 1.3754 | 158.31 | 1.4601 | 91.03 |
One date, as an API call
The latest released table:
curl "https://allratestoday.com/api/open/central-bank/fed"
# "rate_date": "2026-11-06", "cadence": "weekly",
# "rates": [ { "base": "EUR", "quote": "USD", "type": "reference", "value": 1.1154 }, ... ] A past date or a range:
curl -H "Authorization: Bearer YOUR_KEY" \
"https://allratestoday.com/api/v1/central-bank/fed/2025-12-31"
curl -H "Authorization: Bearer YOUR_KEY" \
"https://allratestoday.com/api/v1/central-bank/fed/history?symbol=EUR&from=2025-01-01&to=2025-12-31" Add ?format=csv, xml or xlsx to any table endpoint. Dated tables and history are on paid plans; a history request counts as one call per currency per month of data.
What the series is used for
- Transaction-date rates for a sale, dividend or bonus on a US return.
- Payment-date rates and yearly averages for the foreign tax credit. See the Form 1116 guide.
- Fiscal-year averages for Form 5471. See Form 5471 exchange rates.
- Monthly averages for a salary on Form 2555. See the Form 2555 guide.
For the FBAR and Form 8938, do not use H.10: those forms call for the Treasury year-end rate. The three tables are compared in exchange rates as of December 31, 2025.
FAQ
Where can I download Federal Reserve H.10 historical exchange rates?
The Federal Reserve offers the series through its H.10 pages and data download program. The same official daily tables are available as one tidy CSV per year from 2016 in the AllRates-Today central-bank-exchange-rates repository, and by date through the AllRatesToday API.
How often is H.10 published?
Weekly. On Mondays at 4:15 p.m. the Federal Reserve Board releases daily rates for the previous business week, or on the next business day if Monday is a federal holiday.
Which H.10 currencies are quoted in dollars per unit?
The euro, the UK pound, the Australian dollar and the New Zealand dollar. All other currencies in the release are quoted in currency units per US dollar.
Why is there no H.10 rate for some dates?
No rate is published on US federal holidays or weekends. The Fed's files mark those dates ND for no data. Use the last available rate before the date.
Can I use H.10 rates for the FBAR?
No. The FBAR and Form 8938 instructions point to the Treasury rate for the last day of the year. H.10 is the usual source for transaction-date rates and for computing averages.
H.10 by date, in any format
The Federal Reserve H.10 table for any day since 2016 as JSON, CSV, XML or Excel. Dated tables and history on paid plans.
See plansRelated Articles
- Federal Reserve H.10 exchange rates: the table and endpoints
- Exchange rates as of December 31, 2025: Treasury, Fed H.10 and IRS
- Foreign tax credit (Form 1116): which exchange rate for foreign taxes
- Form 5471 exchange rates: average, year-end and the divide-by convention
- Form 2555: converting foreign salary to dollars
- IRS yearly average exchange rates, computed and compared
- Treasury Reporting Rates of Exchange: the table and endpoints