New York Fed Reference Rates API
Free New York Fed markets API with no key: SOFR, EFFR, OBFR, TGCR and BGCR reference rates with volumes and percentiles, plus the SOFR averages and index. Tested example.
Endpoint tested and returned HTTP 200 on 2026-08-21
What is the New York Fed Reference Rates API?
The Federal Reserve Bank of New York publishes its administered reference rates through a free JSON API with no key. One request returns the latest SOFR, EFFR, OBFR, TGCR and BGCR values with transaction volumes and rate percentiles.
SOFR replaced USD LIBOR as the reference rate for a very large share of dollar-denominated contracts, and this API is where the administrator publishes it. That distinction matters: this is not a vendor's estimate of a benchmark, it is the benchmark, published by the institution that calculates it, free and without registration.
The response mixes record shapes in one array, which is the main thing to handle. A `SOFRAI` record carries `average30day`, `average90day`, `average180day` and `index` and has no `percentRate` at all; an `EFFR` record carries `percentRate`, percentiles and `volumeInBillions` and has no averages. Branch on `type` before reading fields. Rates are percentages (`3.63` means 3.63 percent), volumes are in billions of dollars, and everything publishes on US business days with a one-day lag, so `effectiveDate` is usually yesterday.
Quick facts
- Base URL
https://markets.newyorkfed.org/api- Authentication
- No key or registration. Published by the Federal Reserve Bank of New York as public data.
- Rate limit
- No documented limit. Rates publish once per US business day at around 08:00 New York time.
- Pricing
- Free.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the New York Fed Reference Rates API
Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.
1. Latest values of every published reference rate
GET https://markets.newyorkfed.org/api/rates/all/latest.json
curl 'https://markets.newyorkfed.org/api/rates/all/latest.json'const res = await fetch("https://markets.newyorkfed.org/api/rates/all/latest.json");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://markets.newyorkfed.org/api/rates/all/latest.json", timeout=20)
res.raise_for_status()
print(res.json()){
"refRates": [
{
"effectiveDate": "2026-08-20",
"type": "SOFRAI",
"average30day": 3.64252,
"average90day": 3.63829,
"average180day": 3.66034,
"index": 1.25553243,
"revisionIndicator": ""
},
{
"effectiveDate": "2026-08-19",
"type": "EFFR",
"percentRate": 3.63,
"percentPercentile1": 3.6,
"percentPercentile25": 3.62,
"percentPercentile75": 3.63,
"percentPercentile99": 3.69,
"targetRateFrom": 3.5,
"targetRateTo": 3.75,
"volumeInBillions": 95,
"revisionIndicator": ""
},
{
"effectiveDate": "2026-08-19",
"type": "OBFR",
"percentRate": 3.63,
"percentPercentile1": 3.55,
"percentPercentile25": 3.62,
"percentPercentile75": 3.63,
"percentPercentile99": 3.69,
"volumeInBillions": 216,
"revisionIndicator": ""
},
{
"effectiveDate": "2026-08-19",
"type": "TGCR",
"percentRate": 3.6,
"percentPercentile1": 3.54,
"percentPercentile25": 3.6,
"percentPercentile75": 3.6,
"percentPercentile99": 3.66,
"volumeInBillions": 1202,
"revisionIndicator": ""
},
{
"effectiveDate": "2026-08-19",
"type": "BGCR",
"percentRate": 3.6,
"percentPercentile1": 3.55,
"percentPercentile25": 3.6,
"percentPercentile75": 3.6,
"percentPercentile99": 3.66,
"volumeInBillions": 1228,
"revisionIndicator": ""
},
{
"effectiveDate": "2026-08-19",
"type": "SOFR",
"percentRate": 3.62,
"percentPerc2. Fetch the SOFR secured overnight financing rate
GET https://markets.newyorkfed.org/api/rates/secured/sofr/last/5.json
curl 'https://markets.newyorkfed.org/api/rates/secured/sofr/last/5.json'const res = await fetch("https://markets.newyorkfed.org/api/rates/secured/sofr/last/5.json");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://markets.newyorkfed.org/api/rates/secured/sofr/last/5.json", timeout=20)
res.raise_for_status()
print(res.json()){
"refRates": [
{
"effectiveDate": "2026-08-19",
"type": "SOFR",
"percentRate": 3.62,
"percentPercentile1": 3.58,
"percentPercentile25": 3.6,
"percentPercentile75": 3.67,
"percentPercentile99": 3.7,
"volumeInBillions": 2923,
"revisionIndicator": ""
},
{
"effectiveDate": "2026-08-18",
"type": "SOFR",
"percentRate": 3.65,
"percentPercentile1": 3.6,
"percentPercentile25": 3.63,
"percentPercentile75": 3.7,
"percentPercentile99": 3.72,
"volumeInBillions": 3010,
"revisionIndicator": ""
},
{
"effectiveDate": "2026-08-17",
"type": "SOFR",
"percentRate": 3.66,
"percentPercentile1": 3.6,
"percentPercentile25": 3.64,
"percentPercentile75": 3.71,
"percentPercentile99": 3.74,
"volumeInBillions": 3068,
"revisionIndicator": ""
},
{
"effectiveDate": "2026-08-14",
"type": "SOFR",
"percentRate": 3.62,
"percentPercentile1": 3.59,
"percentPercentile25": 3.6,
"percentPercentile75": 3.68,
"percentPercentile99": 3.7,
"volumeInBillions": 2957,
"revisionIndicator": ""
},
{
"effectiveDate": "2026-08-13",
"type": "SOFR",
"percentRate": 3.62,
"percentPercentile1": 3.59,
"percentPercentile25": 3.6,
"percentPercentile75": 3.67,
"percentPercentile99": 3.7,
"volumeInBillions": 2932,
"revisionIndicator": ""
}
]
}Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
rates/all/latest.json | path | Optional | Most recent value of every rate type in one response. all/latest.json |
rates/{secured|unsecured}/{rate}/last/{n}.json | path | Optional | Last N observations for one rate. SOFR, TGCR and BGCR are secured; EFFR and OBFR are unsecured. secured/sofr/last/5.json |
rates/{group}/{rate}/search.json | path | Optional | Search a rate over a date range with `startDate` and `endDate`. secured/sofr/search.json |
startDate / endDate | query | Optional | Date bounds in `YYYY-MM-DD` on the search endpoints. 2026-08-01 |
Response fields
refRates[].typestring- Which rate this record is — `SOFR`, `SOFRAI`, `EFFR`, `OBFR`, `TGCR` or `BGCR`. Branch on it before reading other fields.
refRates[].effectiveDatestring- The business day the rate applies to, normally the previous one.
refRates[].percentRatenumber- The rate as a percentage — 3.63 means 3.63 percent. Absent on `SOFRAI` records.
refRates[].percentPercentile1 / 25 / 75 / 99number- Distribution of the underlying transactions, showing how tight the day's trading was.
refRates[].volumeInBillionsnumber- Transaction volume behind the rate, in billions of US dollars.
refRates[].average30day / 90day / 180daynumber- Compounded SOFR averages. Present only on `SOFRAI` records.
refRates[].indexnumber- The SOFR index level, used to compute compounded interest between any two dates.
refRates[].revisionIndicatorstring- Non-empty when a previously published value has been revised.
What you can build with the New York Fed Reference Rates API
- Display the current SOFR or EFFR on a rates dashboard
- Pull the SOFR index to compute compounded interest between two dates
- Chart the rate distribution using the published percentiles
- Detect revisions to previously published rates through `revisionIndicator`
Common errors and how to fix them
Undefined percentRate
You read a `SOFRAI` record as if it were a rate record.
Fix: Branch on `type`. Averages-and-index records have no `percentRate` field at all.
Empty refRates array
The date range covers only non-business days.
Fix: Rates publish on US business days with a one-day lag and skip Federal Reserve holidays.
Yesterday's date
Not an error.
Fix: Rates for a business day publish the following morning, so `effectiveDate` normally trails today by one business day.
New York Fed Reference Rates API — frequently asked questions
Is the New York Fed rates API free?
Yes. It requires no key, no registration and no headers, and returns permissive CORS headers so browser code can call it directly.
What is the difference between SOFR and the SOFR averages?
SOFR is the daily overnight rate. The averages are SOFR compounded over 30, 90 and 180 days, published in a separate `SOFRAI` record along with the SOFR index. They answer different questions and have different record shapes.
Are the rates percentages or decimals?
Percentages. A `percentRate` of 3.63 means 3.63 percent, so divide by 100 before using it in an interest formula that expects a decimal.
Why is the effective date not today?
Reference rates for a business day are published the following morning New York time. A one-business-day lag is normal and expected, and weekends and Fed holidays extend it.
Tools that pair with this API
Compound Interest Calculator
Calculate compound interest with optional monthly contributions. See final balance, total interest and a year-by-year growth table for any rate and term.
Simple Interest Calculator
Calculate simple interest with the I = P × r × t formula. Enter principal, annual rate and time to see the interest and total amount instantly.
Percentage Change Calculator
Work out the percentage increase or decrease between an old and a new value. See the absolute change and whether it went up or down, instantly and privately.
New York Fed Reference Rates is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.