Benchmark rates
SOFR, EUR STR, SONIA and SARON fixings.
| Operation | Summary |
|---|---|
GET /v1/rates/benchmarks |
List the benchmark rates |
GET /v1/rates/benchmarks/{benchmark_id} |
Get a benchmark rate |
GET /v1/rates/benchmarks/{benchmark_id}/latest |
Get the latest fixing of a benchmark |
GET /v1/rates/benchmarks/{benchmark_id}/observations |
List the fixings of a benchmark |
GET /v1/rates/benchmarks
List the benchmark rates
The overnight benchmark rates: SOFR (USD), EUR STR, SONIA (GBP) and SARON (CHF).
data describes each benchmark: its id (use it in the other endpoints), administrator,
currency, tenor, day-count convention, whether it is secured, when and where the fixing
is published, and the business-day calendar it follows.
| Authentication | an API key, where the server requires one |
| Operation id | benchmarks_v1_rates_benchmarks_get |
Parameters
| In | Name | Type | Required | Description |
|---|---|---|---|---|
| query | currency |
string or null | Only benchmarks in this currency, ISO 4217, case-insensitive, e.g. 'USD'. Default: all. | |
| query | dataset_version |
string or null | Pin the response to an archived dataset version (git SHA). Defaults to the current version. Also accepted as the X-Dataset-Version header. The version that answered is in meta.dataset_version; an archived version that does not exist gives 404. |
Example request
curl "$DATAVNEXT_URL/v1/rates/benchmarks" \
-H "X-API-Key: $DATAVNEXT_KEY"
Responses
| Status | Meaning | Body |
|---|---|---|
| 200 | OK | Envelope_list_Benchmark__ |
| 401 | Missing or invalid API key. | Error |
| 404 | Nothing found for the identifier, or the pinned dataset_version is not archived. |
Error |
| 422 | The request is invalid: {"detail": "…"} for a rule the service checks, or FastAPI's {"detail": [{"loc", "msg", "type"}]} for a malformed parameter or body. |
HTTPValidationError |
Example response (shape)
{
"data": [
{
"sources": [
null
],
"id": "string",
"name": "string",
"currency": "string",
"administrator": "string",
"tenor": "string",
"day_count": "30/360",
"secured": true,
"publication": "string",
"ingest_source": "string",
"calendar": "string"
}
],
"meta": {
"dataset_version": "string",
"as_of": "2026-09-21",
"known_at": "2026-09-21",
"sources": [
{
"authority": null,
"url": null,
"reference": null,
"verified_at": null,
"kind": null
}
],
"notes": [
"string"
]
}
}
GET /v1/rates/benchmarks/{benchmark_id}
Get a benchmark rate
One benchmark's definition and sources: administrator, day count, publication time.
It does not return fixings; use /observations or /latest for the values. 404 for an
unknown benchmark id.
| Authentication | an API key, where the server requires one |
| Operation id | benchmark_v1_rates_benchmarks__benchmark_id__get |
Parameters
| In | Name | Type | Required | Description |
|---|---|---|---|---|
| path | benchmark_id |
string | yes | Benchmark id: 'sofr', 'estr', 'sonia' or 'saron' (see GET /v1/rates/benchmarks). |
| query | dataset_version |
string or null | Pin the response to an archived dataset version (git SHA). Defaults to the current version. Also accepted as the X-Dataset-Version header. The version that answered is in meta.dataset_version; an archived version that does not exist gives 404. |
Example request
curl "$DATAVNEXT_URL/v1/rates/benchmarks/sofr" \
-H "X-API-Key: $DATAVNEXT_KEY"
Responses
| Status | Meaning | Body |
|---|---|---|
| 200 | OK | Envelope_Benchmark_ |
| 401 | Missing or invalid API key. | Error |
| 404 | Nothing found for the identifier, or the pinned dataset_version is not archived. |
Error |
| 422 | The request is invalid: {"detail": "…"} for a rule the service checks, or FastAPI's {"detail": [{"loc", "msg", "type"}]} for a malformed parameter or body. |
HTTPValidationError |
Example response (shape)
{
"data": {
"sources": [
{
"authority": null,
"url": null,
"reference": null,
"verified_at": null,
"kind": null
}
],
"id": "string",
"name": "string",
"currency": "string",
"administrator": "string",
"tenor": "string",
"day_count": "30/360",
"secured": true,
"publication": "string",
"ingest_source": "string",
"calendar": "string"
},
"meta": {
"dataset_version": "string",
"as_of": "2026-09-21",
"known_at": "2026-09-21",
"sources": [
{
"authority": null,
"url": null,
"reference": null,
"verified_at": null,
"kind": null
}
],
"notes": [
"string"
]
}
}
GET /v1/rates/benchmarks/{benchmark_id}/latest
Get the latest fixing of a benchmark
The most recent fixing of a benchmark, optionally as of a date.
data.value is the rate in percent per annum as a decimal string and data.date the
day it was published for. meta.as_of repeats the as_of parameter (null when omitted).
404 for an unknown benchmark id or when no fixing is stored on or before the date.
| Authentication | an API key, where the server requires one |
| Operation id | latest_v1_rates_benchmarks__benchmark_id__latest_get |
Parameters
| In | Name | Type | Required | Description |
|---|---|---|---|---|
| path | benchmark_id |
string | yes | Benchmark id: 'sofr', 'estr', 'sonia' or 'saron' (see GET /v1/rates/benchmarks). |
| query | as_of |
string (date) or null | Latest fixing on or before this date (ISO 8601). Defaults to the most recent fixing stored. | |
| query | dataset_version |
string or null | Pin the response to an archived dataset version (git SHA). Defaults to the current version. Also accepted as the X-Dataset-Version header. The version that answered is in meta.dataset_version; an archived version that does not exist gives 404. |
Example request
curl "$DATAVNEXT_URL/v1/rates/benchmarks/sofr/latest" \
-H "X-API-Key: $DATAVNEXT_KEY"
Responses
| Status | Meaning | Body |
|---|---|---|
| 200 | OK | Envelope_RateObservation_ |
| 401 | Missing or invalid API key. | Error |
| 404 | Nothing found for the identifier, or the pinned dataset_version is not archived. |
Error |
| 422 | The request is invalid: {"detail": "…"} for a rule the service checks, or FastAPI's {"detail": [{"loc", "msg", "type"}]} for a malformed parameter or body. |
HTTPValidationError |
Example response (shape)
{
"data": {
"benchmark_id": "sofr",
"date": "2026-09-25",
"value": "3.9",
"source": "nyfed"
},
"meta": {
"dataset_version": "3f2a9c1b7d4e",
"sources": [
{
"authority": "Federal Reserve Bank of New York",
"url": "https://www.newyorkfed.org/markets/reference-rates/sofr",
"reference": "SOFR reference rate",
"verified_at": "2026-09-29",
"kind": "official"
}
],
"notes": []
}
}
GET /v1/rates/benchmarks/{benchmark_id}/observations
List the fixings of a benchmark
Daily fixings of a benchmark between two dates.
data has one row per publication day, oldest first: value is the rate in percent per
annum as a decimal string (3.87 means 3.87%). Days with no publication (weekends,
holidays) have no row. The window is at most about 10 years. 404 for an unknown
benchmark id; 422 when start is after end or the range is longer than 10 years (use
the bulk exports for more).
| Authentication | an API key, where the server requires one |
| Operation id | observations_v1_rates_benchmarks__benchmark_id__observations_get |
Parameters
| In | Name | Type | Required | Description |
|---|---|---|---|---|
| path | benchmark_id |
string | yes | Benchmark id: 'sofr', 'estr', 'sonia' or 'saron' (see GET /v1/rates/benchmarks). |
| query | start |
string (date) or null | First fixing date to include (ISO 8601, inclusive). Defaults to 30 days before end. |
|
| query | end |
string (date) or null | Last fixing date to include (ISO 8601, inclusive). Defaults to today. | |
| query | dataset_version |
string or null | Pin the response to an archived dataset version (git SHA). Defaults to the current version. Also accepted as the X-Dataset-Version header. The version that answered is in meta.dataset_version; an archived version that does not exist gives 404. |
Example request
curl "$DATAVNEXT_URL/v1/rates/benchmarks/sofr/observations" \
-H "X-API-Key: $DATAVNEXT_KEY"
Responses
| Status | Meaning | Body |
|---|---|---|
| 200 | OK | Envelope_list_RateObservation__ |
| 401 | Missing or invalid API key. | Error |
| 404 | Nothing found for the identifier, or the pinned dataset_version is not archived. |
Error |
| 422 | The request is invalid: {"detail": "…"} for a rule the service checks, or FastAPI's {"detail": [{"loc", "msg", "type"}]} for a malformed parameter or body. |
HTTPValidationError |
Example response (shape)
{
"data": [
{
"benchmark_id": "sofr",
"date": "2026-09-21",
"value": "3.85",
"source": "nyfed"
},
{
"benchmark_id": "sofr",
"date": "2026-09-22",
"value": "3.87",
"source": "nyfed"
}
],
"meta": {
"dataset_version": "3f2a9c1b7d4e",
"sources": [
{
"authority": "Federal Reserve Bank of New York",
"url": "https://www.newyorkfed.org/markets/reference-rates/sofr",
"reference": "SOFR reference rate",
"verified_at": "2026-09-29",
"kind": "official"
}
],
"notes": []
}
}
Schemas
Benchmark
| Field | Type | Required | Description |
|---|---|---|---|
sources |
array of Source |
yes | Where the rules come from (at least one), e.g. the authority's page. (min items 1) |
id |
string | yes | Benchmark id used in the URLs, e.g. 'sofr'. (pattern ^[a-z0-9_]+$) |
name |
string | yes | Official name, e.g. 'Secured Overnight Financing Rate'. |
currency |
string | yes | ISO 4217 code of the currency the rate is for. |
administrator |
string | yes | The body that calculates and publishes the rate. |
tenor |
string | yes | 'ON' for overnight rates. |
day_count |
"30/360" | "ACT/360" | "ACT/365F" | "ACT/ACT" |
yes | Day-count convention for accruing interest at this rate. |
secured |
boolean | yes | True if the rate is based on secured (collateralised) funding. |
publication |
string | yes | When and where the fixing is published. |
ingest_source |
string or null | Ingest connector id that maintains this series. | |
calendar |
string or null | Business-day calendar the fixing follows (see /v1/calendars), e.g. 'eu.target2' for €STR. |
Envelope_Benchmark_
| Field | Type | Required | Description |
|---|---|---|---|
data |
Benchmark |
yes | |
meta |
Meta |
yes |
Envelope_RateObservation_
| Field | Type | Required | Description |
|---|---|---|---|
data |
RateObservation |
yes | |
meta |
Meta |
yes |
Envelope_list_Benchmark__
| Field | Type | Required | Description |
|---|---|---|---|
data |
array of Benchmark |
yes | |
meta |
Meta |
yes |
Envelope_list_RateObservation__
| Field | Type | Required | Description |
|---|---|---|---|
data |
array of RateObservation |
yes | |
meta |
Meta |
yes |
RateObservation
| Field | Type | Required | Description |
|---|---|---|---|
benchmark_id |
string | yes | The benchmark this fixing belongs to. |
date |
string (date) | yes | The day the fixing is for (ISO 8601). |
value |
string | yes | Percent per annum, as a decimal string (3.87 is 3.87%). (pattern ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$) |
source |
string | yes | Ingest source the value came from, e.g. 'nyfed'. |