Check if the yield curve is inverted
Compare two yields and read the spread in basis points.
Read the guide →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.
curl --request GET \
--url "https://api.narwhalapi.com/v1/economics/GBR/yield-curve?date=2026-09-10&maturity=2y%2C10y" \
--header "Authorization: Bearer $NARWHAL_API_KEY"curl --request GET \
--url "https://api.narwhalapi.com/v1/economics/USA/yield-curve?date=2026-09-10&maturity=2y%2C10y" \
--header "Authorization: Bearer $NARWHAL_API_KEY"curl --request GET \
--url "https://api.narwhalapi.com/v1/economics/DEU/yield-curve?date=2026-09-10&maturity=2y%2C10y" \
--header "Authorization: Bearer $NARWHAL_API_KEY"curl --request GET \
--url "https://api.narwhalapi.com/v1/economics/JPN/yield-curve?date=2026-09-10&maturity=2y%2C10y" \
--header "Authorization: Bearer $NARWHAL_API_KEY"curl --request GET \
--url "https://api.narwhalapi.com/v1/economics/CAN/yield-curve?date=2026-09-10&maturity=2y%2C10y" \
--header "Authorization: Bearer $NARWHAL_API_KEY"curl --request GET \
--url "https://api.narwhalapi.com/v1/economics/SWE/yield-curve?date=2026-09-10&maturity=2y%2C10y" \
--header "Authorization: Bearer $NARWHAL_API_KEY"curl --request GET \
--url "https://api.narwhalapi.com/v1/economics/NOR/yield-curve?date=2026-09-10&maturity=2y%2C10y" \
--header "Authorization: Bearer $NARWHAL_API_KEY"curl --request GET \
--url "https://api.narwhalapi.com/v1/economics/AUS/yield-curve?date=2026-09-10&maturity=2y%2C10y" \
--header "Authorization: Bearer $NARWHAL_API_KEY"curl --request GET \
--url "https://api.narwhalapi.com/v1/economics/EMU/yield-curve?date=2026-09-10&maturity=2y%2C10y" \
--header "Authorization: Bearer $NARWHAL_API_KEY"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"/v1/economics/{country}/yield-curveOne observation for a country: the latest, or the exact source date you ask for.
countryrequiredThree-letter code: USA, GBR, DEU, JPN, CAN, SWE, NOR, AUS, EMU.
dateoptionalOmit for the latest admitted observation. A supplied value selects that exact period; unavailable periods return 404.
version_idoptionalOptional immutable publication version. Omit to read the current admitted curve.
curve_typeoptionalOptional 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.
maturityoptionalOptional 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.
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).
dateYYYY-MM-DD stringThe source date shared by all points in this curve.
yieldsarrayAvailable maturities, ordered shortest to longest. Even one maturity remains an array.
yields[].maturitystringOne of the supported maturity labels.
yields[].yield_percentdecimal stringYield in percent, preserving source decimal precision.
/v1/economics/{country}/yield-curve/historyEvery observation in a range, oldest first, up to 1,000 per page. Follow next_cursor until it is null.
countryrequiredThree-letter code: USA, GBR, DEU, JPN, CAN, SWE, NOR, AUS, EMU.
startoptionalInclusive lower bound. Omit for the first available period.
endoptionalInclusive upper bound; cannot precede start. Omit for the last available period.
limitoptionalDefault 100. Counts dates or years, not individual yield points.
cursoroptionalPass next_cursor unchanged with the same country, filters and limit. Cursors expire after 24 hours.
as_ofoptionalReturn the curves as published up to the end of this UTC day. Pro plan only.
curve_typeoptionalOptional 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.
maturityoptionalOptional 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.
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.
Compare two yields and read the spread in basis points.
Read the guide →Take inflation off a nominal yield with the Fisher formula.
Read the guide →Download a full series page by page and resume if it stops.
Read the guide →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
Source: Sveriges Riksbank. The data date is shown alongside the data. Narwhal has no official collaboration or partnership with the Riksbank.
Source: Norges Bank. Values are shown as published.
Source Reserve Bank of Australia 2026. The RBA publishes this data free of charge at rba.gov.au and does not endorse Narwhal.
Source: ECB. The ECB publishes this data free of charge at ecb.europa.eu, and values are shown as published.
Official indicators for prices, labour, output, trade, and rates.
Explore the API →Release schedules, status, and publication versions.
Explore the API →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.
Curve measures differ by country. Keep the source, curve type and maturity with each value.
Norway: Use curve_type=constant_maturity_benchmark for Norges Bank generic rates: Treasury bills at 3, 6 and 12 months and government bonds at 3, 5, 7 and 10 years. History starts on 2 January 2019. Australia: Use curve_type=zero_coupon for RBA table F17 zero-coupon yields, from 0.25 to 10 years in quarter-year steps. History starts on 3 January 2017, and the RBA adds rows about a month after their date. Euro area: Use curve_type=spot_svensson_all_issuers for the ECB curve covering all euro area central government issuers: 3, 6 and 9 months, then 1 to 30 years in yearly steps, with daily history from 6 September 2004.
Choose an inclusive start and end. Responses are oldest first, with up to 1,000 source dates per page. Follow next_cursor with the same filters and limit until it is null. A cursor keeps its publication snapshot for up to 24 hours; an expired or withdrawn snapshot returns 409, so restart without the cursor.
Create a free key and call the API from your own code.