Browse all documentation

Yield curve history API reference

Get government yield curves across nine countries and areas through REST and MCP. Read one source date or a paginated history, with decimal percent strings.

Request

GET /v1/economics/{country}/yield-curve/history
curl --request GET \
  --url "https://api.narwhalapi.com/v1/economics/GBR/yield-curve/history?start=2026-09-09&end=2026-09-10&limit=100&maturity=2y%2C10y" \
  --header "Authorization: Bearer $NARWHAL_API_KEY"

United States request

curl --request GET \
  --url "https://api.narwhalapi.com/v1/economics/USA/yield-curve/history?start=2026-09-09&end=2026-09-10&limit=100&maturity=2y%2C10y" \
  --header "Authorization: Bearer $NARWHAL_API_KEY"

Germany request

curl --request GET \
  --url "https://api.narwhalapi.com/v1/economics/DEU/yield-curve/history?start=2026-09-09&end=2026-09-10&limit=100&maturity=2y%2C10y" \
  --header "Authorization: Bearer $NARWHAL_API_KEY"

Japan request

curl --request GET \
  --url "https://api.narwhalapi.com/v1/economics/JPN/yield-curve/history?start=2026-09-09&end=2026-09-10&limit=100&maturity=2y%2C10y" \
  --header "Authorization: Bearer $NARWHAL_API_KEY"

Canada request

curl --request GET \
  --url "https://api.narwhalapi.com/v1/economics/CAN/yield-curve/history?start=2026-09-09&end=2026-09-10&limit=100&maturity=2y%2C10y" \
  --header "Authorization: Bearer $NARWHAL_API_KEY"

Sweden request

curl --request GET \
  --url "https://api.narwhalapi.com/v1/economics/SWE/yield-curve/history?start=2026-09-09&end=2026-09-10&limit=100&maturity=2y%2C10y" \
  --header "Authorization: Bearer $NARWHAL_API_KEY"

Norway request

curl --request GET \
  --url "https://api.narwhalapi.com/v1/economics/NOR/yield-curve/history?start=2026-09-09&end=2026-09-10&limit=100&maturity=2y%2C10y" \
  --header "Authorization: Bearer $NARWHAL_API_KEY"

Australia request

curl --request GET \
  --url "https://api.narwhalapi.com/v1/economics/AUS/yield-curve/history?start=2026-09-09&end=2026-09-10&limit=100&maturity=2y%2C10y" \
  --header "Authorization: Bearer $NARWHAL_API_KEY"

Euro area request

curl --request GET \
  --url "https://api.narwhalapi.com/v1/economics/EMU/yield-curve/history?start=2026-09-09&end=2026-09-10&limit=100&maturity=2y%2C10y" \
  --header "Authorization: Bearer $NARWHAL_API_KEY"

REST and MCP use the same Bearer key, response schema and quota. MCP tool: economics_get_yield_curve_history.

Parameters

NameTypeRequiredMeaning
countrypath · ISO alpha-3YesSupported country codes: USA, GBR, DEU, JPN, CAN, SWE, NOR, AUS, EMU. United States: Nominal par yield (US Department of the Treasury). United Kingdom: Continuously compounded nominal zero-coupon yield (Bank of England). Germany: Svensson spot yield (Deutsche Bundesbank). Japan: Constant-maturity JGB yield to maturity (Ministry of Finance, Japan). Canada: Zero-coupon (discount) yield (Bank of Canada). Sweden: Government bill and bond benchmark yields (Sveriges Riksbank). Norway: Government security zero-coupon yields (Norges Bank). Australia: Government bond yield to maturity (Reserve Bank of Australia). Euro area: AAA-rated government bond spot rates (European Central Bank).
startYYYY-MM-DD stringNoInclusive lower bound. Omit for the first available period.
endYYYY-MM-DD stringNoInclusive upper bound; cannot precede start. Omit for the last available period.
limitinteger · 1–1000NoDefault 100. Counts dates or years, not individual yield points.
cursoropaque stringNoPass next_cursor unchanged with the same country, filters and limit. Cursors expire after 24 hours.
as_ofYYYY-MM-DD stringNoReturn the curves as published up to the end of this UTC day. Pro plan only.
curve_typestringNoOptional curve_type names a curve on both routes, only for NOR, AUS and EMU, which each serve two curves. Omit it for the first curve, which the response names in curve_type. A curve the country does not serve gives a 400 error.
maturitycomma-separated stringNoOptional on both routes. Omit for the whole available curve. USA: 1m, 1.5m, 2m, 3m, 4m, 6m, 1y, 2y, 3y, 5y, 7y, 10y, 20y, 30y. GBR: 0.5y, 1y, 1.5y, 2y, 2.5y, 3y, 3.5y, 4y, 4.5y, 5y, 5.5y, 6y, 6.5y, 7y, 7.5y, 8y, 8.5y, 9y, 9.5y, 10y, 10.5y, 11y, 11.5y, 12y, 12.5y, 13y, 13.5y, 14y, 14.5y, 15y, 15.5y, 16y, 16.5y, 17y, 17.5y, 18y, 18.5y, 19y, 19.5y, 20y, 20.5y, 21y, 21.5y, 22y, 22.5y, 23y, 23.5y, 24y, 24.5y, 25y, 25.5y, 26y, 26.5y, 27y, 27.5y, 28y, 28.5y, 29y, 29.5y, 30y, 30.5y, 31y, 31.5y, 32y, 32.5y, 33y, 33.5y, 34y, 34.5y, 35y, 35.5y, 36y, 36.5y, 37y, 37.5y, 38y, 38.5y, 39y, 39.5y, 40y. DEU: 1y, 2y, 3y, 4y, 5y, 6y, 7y, 8y, 9y, 10y, 11y, 12y, 13y, 14y, 15y, 16y, 17y, 18y, 19y, 20y, 21y, 22y, 23y, 24y, 25y, 26y, 27y, 28y, 29y, 30y. JPN: 1y, 2y, 3y, 4y, 5y, 6y, 7y, 8y, 9y, 10y, 15y, 20y, 25y, 30y, 40y. CAN: 0.25y, 0.5y, 0.75y, 1y, 1.25y, 1.5y, 1.75y, 2y, 2.25y, 2.5y, 2.75y, 3y, 3.25y, 3.5y, 3.75y, 4y, 4.25y, 4.5y, 4.75y, 5y, 5.25y, 5.5y, 5.75y, 6y, 6.25y, 6.5y, 6.75y, 7y, 7.25y, 7.5y, 7.75y, 8y, 8.25y, 8.5y, 8.75y, 9y, 9.25y, 9.5y, 9.75y, 10y, 10.25y, 10.5y, 10.75y, 11y, 11.25y, 11.5y, 11.75y, 12y, 12.25y, 12.5y, 12.75y, 13y, 13.25y, 13.5y, 13.75y, 14y, 14.25y, 14.5y, 14.75y, 15y, 15.25y, 15.5y, 15.75y, 16y, 16.25y, 16.5y, 16.75y, 17y, 17.25y, 17.5y, 17.75y, 18y, 18.25y, 18.5y, 18.75y, 19y, 19.25y, 19.5y, 19.75y, 20y, 20.25y, 20.5y, 20.75y, 21y, 21.25y, 21.5y, 21.75y, 22y, 22.25y, 22.5y, 22.75y, 23y, 23.25y, 23.5y, 23.75y, 24y, 24.25y, 24.5y, 24.75y, 25y, 25.25y, 25.5y, 25.75y, 26y, 26.25y, 26.5y, 26.75y, 27y, 27.25y, 27.5y, 27.75y, 28y, 28.25y, 28.5y, 28.75y, 29y, 29.25y, 29.5y, 29.75y, 30y. SWE: 1m, 3m, 6m, 2y, 5y, 7y, 10y. NOR: 6m, 9m, 1y, 2y, 3y, 4y, 5y, 6y, 7y, 8y, 9y, 10y. AUS: 2y, 3y, 5y, 10y. EMU: 3m, 6m, 9m, 1y, 2y, 3y, 4y, 5y, 6y, 7y, 8y, 9y, 10y, 11y, 12y, 13y, 14y, 15y, 16y, 17y, 18y, 19y, 20y, 21y, 22y, 23y, 24y, 25y, 26y, 27y, 28y, 29y, 30y. Duplicates are removed and terms sorted. Unsupported labels return 400.

Keep the country, range, maturity selection where applicable, and limit unchanged when following a cursor. Pagination holds one immutable publication snapshot. The default limit is 100 periods; the maximum is 1,000. A date with no curve, such as a weekend, and a history range with no curves both return 404 series_not_found.

Response

Example response Saved source sample · not a live request
{
  "country": "GBR",
  "curve_type": "nominal_zero_coupon",
  "observations": [
    {
      "date": "2026-09-09",
      "yields": [
        {
          "maturity": "2y",
          "yield_percent": "4.4821473122101274"
        },
        {
          "maturity": "10y",
          "yield_percent": "5.2493002729396405"
        }
      ]
    },
    {
      "date": "2026-09-10",
      "yields": [
        {
          "maturity": "2y",
          "yield_percent": "4.6509003413966044"
        },
        {
          "maturity": "10y",
          "yield_percent": "5.3572243604351168"
        }
      ]
    }
  ],
  "next_cursor": null
}
FieldTypeMeaning
countryISO alpha-3 stringThe requested country or territory.
curve_type"nominal_par" | "nominal_zero_coupon" | "spot_svensson" | "constant_maturity_ytm" | "zero_coupon" | "constant_maturity_benchmark" | "spot_svensson_aaa"United States: Nominal par yield (US Department of the Treasury). United Kingdom: Continuously compounded nominal zero-coupon yield (Bank of England). Germany: Svensson spot yield (Deutsche Bundesbank). Japan: Constant-maturity JGB yield to maturity (Ministry of Finance, Japan). Canada: Zero-coupon (discount) yield (Bank of Canada). Sweden: Government bill and bond benchmark yields (Sveriges Riksbank). Norway: Government security zero-coupon yields (Norges Bank). Australia: Government bond yield to maturity (Reserve Bank of Australia). Euro area: AAA-rated government bond spot rates (European Central Bank).
observationsarrayOldest first. Missing periods are omitted; an empty valid range returns an empty array.
observations[].dateYYYY-MM-DD stringThe source date shared by all points in this curve.
observations[].yieldsarrayAvailable maturities, ordered shortest to longest. Even one maturity remains an array.
observations[].yields[].maturitystringOne of the supported maturity labels.
observations[].yields[].yield_percentdecimal stringYield in percent, preserving source decimal precision.
next_cursorstring or nullOpaque continuation token; null means there is no next page.

Values retain decimal strings. No source timestamp or publication date is invented. Request and quota metadata are returned in headers.

Errors and quota

StatusMeaning
400Invalid country syntax, date, year, range, maturity, limit or cursor.
401Missing or rejected API key.
403The requested date or range ends before your plan's history window (Free 12 months, Basic 5 years).
404No available observation matches the exact date, year, range or selected maturities.
409The publication snapshot expired or was withdrawn. Restart without the cursor.
429Rate limit or monthly quota reached.
503The accepted data cannot be served safely.

A successful response consumes one request, including an empty history result. Errors consume no quota. Shared errors and headers →

Coverage and freshness

United States · USA, United Kingdom · GBR, Germany · DEU, Japan · JPN, Canada · CAN, Sweden · SWE, Norway · NOR, Australia · AUS, Euro area · EMU · United States: 2 January 1990 onward · United Kingdom: 2 January 1979 onward · Germany: 7 August 1997 onward · Japan: 1974 onward · Canada: 2 January 1986 onward · Sweden: 3 January 1983 onward · Norway: 2 January 2015 onward · Australia: 20 May 2013 onward · Euro area: 6 September 2004 onward. US Treasury curves follow its daily publication. The Bank of England aims to publish by noon Europe/London on the next business day. Deutsche Bundesbank publishes daily curves. The Ministry of Finance, Japan publishes at 09:30 Japan time on the next business day. The Bank of Canada publishes the curve roughly once a week, about 2 to 3 weeks after the observation date. The latest curve is usually 2 to 3 weeks old. Sveriges Riksbank publishes each business day. Norges Bank publishes each business day. The RBA publishes table F2 on business days, usually within two days. The ECB publishes the curve on the next business day. Weekends and holidays may have no new curve. Source values can be revised. A source check does not guarantee a new observation.

Missing maturities are omitted. Narwhal never fills a missing source point, substitutes an older curve, or invents a value.

United States: Nominal par yield. Daily history from 2 January 1990. Maturities: 1 month to 30 years.

Source: US Department of the Treasury

United Kingdom: Continuously compounded nominal zero-coupon yield. Daily history from 2 January 1979. Maturities: 0.5 to 40 years, in half-year steps.

Source: Bank of England

Germany: Svensson spot yield. Daily history from 7 August 1997. Maturities: 1 to 30 years, in yearly steps.

Source: Deutsche Bundesbank

Japan: Constant-maturity JGB yield to maturity. Daily history from 1974. Maturities: 1 to 10 years, then 15, 20, 25, 30 and 40 years.

Source: Ministry of Finance, Japan

Japan's yield data is reused under Public Data License 1.0. Narwhal formats the source data for the API. This version was not created by the Ministry of Finance, Japan. Source licence

Canada: Zero-coupon (discount) yield. Daily history from 2 January 1986. Maturities: 0.25 to 30 years, in quarter-year steps; up to 25 years before 1991.

Source: Bank of Canada

Sweden: Government bill and bond benchmark yields. Daily history from 3 January 1983. Maturities: Treasury bills at 1, 3 and 6 months; government bonds at 2, 5, 7 and 10 years, with bond series starting between 1985 and 1987.

Source: Sveriges Riksbank

Source: Sveriges Riksbank. The data date is shown alongside the data. Narwhal has no official collaboration or partnership with the Riksbank. Source licence

Norway: Government security zero-coupon yields. Daily history from 2 January 2015. Maturities: 6 and 9 months, then 1 to 10 years in yearly steps.

Source: Norges Bank

Source: Norges Bank. Values are shown as published. Source licence

Australia: Government bond yield to maturity. Daily history from 20 May 2013. Maturities: 2, 3, 5 and 10 years, with the 10 year series starting in May 2013 and the others in September 2013.

Source: Reserve Bank of Australia

Source Reserve Bank of Australia 2026. The RBA publishes this data free of charge at rba.gov.au and does not endorse Narwhal. Source licence

Euro area: AAA-rated government bond spot rates. Daily history from 6 September 2004. Maturities: 3, 6 and 9 months, then 1 to 30 years in yearly steps.

Source: European Central Bank

Source: ECB. The ECB publishes this data free of charge at ecb.europa.eu, and values are shown as published. Source licence

Dataset overview →