U.S. Treasury API: Get reporting exchange rates
Gets the U.S. Treasury quarterly reporting exchange rate for a country or currency on a given date. If that quarter has no published record, it uses the latest preceding quarter.
Unofficial. Not affiliated with or endorsed by U.S. Treasury.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Date optional
date Date in YYYY-MM-DD, for example 2025-03-15; defaults to today.
2025-03-15
- Country or Currency, required
country_or_currency Country or currency name, for example Japan, Mexico, or euro.
euro
Input as JSON
{ "date": "2025-03-15", "country_or_currency": "euro"}Output
{ "country": "Euro Zone", "currency": "Euro", "page_url": "https://fiscaldata.treasury.gov/datasets/treasury-reporting-rates-exchange/" , "record_date": "2025-03-31", "effective_date": "2025-03-31", "currency_per_usd": 0.924}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"treasury.gov/get_reporting_exchange_rates","input":{"date":"2025-03-15","country_or_currency":"euro"}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "treasury.gov/get_reporting_exchange_rates" , "input": { "date": "2025-03-15", "country_or_currency": "euro" }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "treasury.gov/get_reporting_exchange_rates" , "input": { "date": "2025-03-15", "country_or_currency": "euro" } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run treasury.gov/get_reporting_exchange_rates# with {"date":"2025-03-15","country_or_currency":"euro"}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "country_or_currency" ], "properties": { "date": { "type": "string", "description": "Date in YYYY-MM-DD, for example 2025-03-15; defaults to today." }, "country_or_currency": { "type": "string", "minLength": 1, "description": "Country or currency name, for example Japan, Mexico, or euro." } }}Output schema
{ "type": "object", "required": [ "country", "currency", "currency_per_usd", "effective_date", "record_date", "page_url" ], "properties": { "country": { "type": "string" }, "currency": { "type": "string" }, "page_url": { "type": "string" }, "record_date": { "type": "string" }, "effective_date": { "type": "string" }, "currency_per_usd": { "type": "number" } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
treasury.gov/get_reporting_exchange_rates- Returns
- country, currency, currency per USD, effective date, record date
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method treasury.gov/get_reporting_exchange_rates with the inputs above.
Ask your agent
- What was the Treasury reporting exchange rate for Japan on 2025-03-15?
- I need the quarterly reporting rate for the euro as of 2024-11-01, with the currency per USD and effective date.
- Look up the U.S. Treasury exchange rate for Mexico for a date in late 2023.
- Which currency per USD did treasury.gov report for Canada on 2025-06-30?
- Give me the official Treasury reporting exchange rate for India for the quarter containing 2024-08-12.
See more
All U.S. Treasury methodsGets official daily Treasury par yield curve rates for a date, or the latest published date on or before it.
home.treasury.gov/get_treasury_yieldsReturns US national debt (Debt to the Penny) for a given date, or the latest published day. Dates without a record use the previous published day.
home.treasury.gov/get_national_debtGets the official ECB euro reference exchange rates for a day, or the latest published day. Weekends, holidays and dates before publication return the previous published day.
ecb.europa.eu/get_euro_exchange_ratesGets XE's daily mid-market exchange rate for a past UTC date and converts an amount with it.
xe.com/get_historical_rateConverts an amount between currencies using ECB euro reference rates, including euro and cross-currency conversions. Uses the latest preceding published rate when the date has none.
ecb.europa.eu/convert_currencyReturns seven key economic indicators for a country from its public Trading Economics overview: GDP growth rate, inflation rate, interest rate, unemployment rate, government debt to GDP, currency and stock market. Indicators absent from the overview are null; the US dollar index is not reported as a USD exchange rate.
tradingeconomics.com/get_country_overviewReturns Freddie Mac's U.S. 30-year and 15-year fixed mortgage rates for the latest survey or a chosen date, with weekly and year-ago changes, and optionally a weekly history for a date range.
freddiemac.com/get_mortgage_ratesReturns the ECB's current deposit facility, main refinancing operations and marginal lending facility rates with their effective date. Optionally includes earlier rate changes, newest first.
ecb.europa.eu/get_key_interest_rates