BYTETOOLS

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.

No API key requiredCORS enabledHTTPSFree tier

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
curl 'https://markets.newyorkfed.org/api/rates/all/latest.json'
JavaScript (fetch)
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);
Python (requests)
import requests

res = requests.get("https://markets.newyorkfed.org/api/rates/all/latest.json", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
{
  "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,
      "percentPerc

2. Fetch the SOFR secured overnight financing rate

GET https://markets.newyorkfed.org/api/rates/secured/sofr/last/5.json

curl
curl 'https://markets.newyorkfed.org/api/rates/secured/sofr/last/5.json'
JavaScript (fetch)
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);
Python (requests)
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())
Response — HTTP 200
{
  "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

ParameterTypeRequiredDescription
rates/all/latest.jsonpathOptionalMost recent value of every rate type in one response. all/latest.json
rates/{secured|unsecured}/{rate}/last/{n}.jsonpathOptionalLast 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.jsonpathOptionalSearch a rate over a date range with `startDate` and `endDate`. secured/sofr/search.json
startDate / endDatequeryOptionalDate 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

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.