Policy rates API reference
Read current, as-of and historical central-bank policy rates, official reserves and balance sheets (total assets), with the original instrument and source date.
Requests
GET /v1/economics/{country}/central-bank/policy-rate
GET /v1/economics/{country}/central-bank/policy-rate?date=2026-09-15
GET /v1/economics/{country}/central-bank/policy-rate/history?start=2008-01-01&limit=1000
GET /v1/economics/{country}/central-bank/reserves?period=2026-07
GET /v1/economics/{country}/central-bank/balance-sheet?period=2026-09Use an uppercase ISO alpha-3 code for country.
Without date, the response returns the latest source observation at or before today in UTC. With date, it returns the latest observation at or before the requested date. Days without observations remain absent, and future effective dates never replace the current rate early.
MCP tools are economics_, economics_, economics_ and economics_. REST and MCP share a Bearer key, schema and quota; each request counts as one call.
Policy rates are live on every plan. The latest rate has no history limit, while requests with a date, history range, reserves period or balance-sheet period use the plan's history window: Free 12 months, Basic 5 years, Pro full history. Requests that end before the window return 403 plan_.
Response
The examples use saved values to show the response shape. The values are not live data.
{
"country": "CAN",
"authority": "bank_of_canada",
"currency": "CAD",
"instrument": "overnight_rate_target",
"rate_type": "point",
"rate": "2.25",
"qualifier": "exact",
"unit": "percent",
"effective_on": null,
"observed_on": "2025-12-10",
"announced_on": null
}{
"country": "USA",
"authority": "federal_reserve",
"currency": "USD",
"instrument": "federal_funds_target_range",
"rate_type": "range",
"lower_bound": "3.50",
"upper_bound": "3.75",
"unit": "percent",
"effective_on": "2025-12-11",
"observed_on": null,
"announced_on": null
}Point rates have rate and qualifier; target ranges have lower_ and upper_ instead. Values are decimal strings in percent per year, and negative rates are valid.
| Field | Meaning |
|---|---|
country | Requested ISO alpha-3 code. |
authority | Central bank identifier, such as federal_. |
currency | Currency of the rate. |
instrument | Exact instrument set by the bank. History retains changes to the instrument. |
rate_ | point or range. |
rate, qualifier | Point rate with the qualifier exact. |
lower_ | Lower and upper limits of a target range. |
unit | Always percent. |
effective_ | Exactly one is set. effective_ records when a change took effect; observed_ records the date of a rate observation. The rate may be unchanged on an observation date. |
announced_ | Source announcement date, or null if none is supplied. |
History
startandend: inclusive dates inYYYY-MM-DDformat.limit: 1 to 1000; default 100.cursor:next_from the previous page.cursor
Results are ordered from oldest to newest. Send next_ as cursor with the same filters and limit for each subsequent page, until it is null. Cursors keep all pages on the original publication for 24 hours. An older cursor or withdrawn bank data returns 409 cursor_; restart without a cursor.
The response includes country, observations and next_. Each observation uses the fields of a single rate response.
History requests raise start to the start of the plan's history window: Free 12 months, Basic 5 years, Pro full history. The United States, Australia, Czechia, Canada and Malaysia record decision dates only, and history does not carry an earlier rate forward into the window. If the window contains no decision, the response has an empty observations list ([]) and next_ set to null. A current-rate request without date returns the rate in force, with no history limit on any plan.
{
"country": "USA",
"observations": [
{
"country": "USA",
"authority": "federal_reserve",
"currency": "USD",
"instrument": "federal_funds_target",
"rate_type": "point",
"rate": "1.00",
"qualifier": "exact",
"unit": "percent",
"effective_on": "2008-10-29",
"observed_on": null,
"announced_on": null
},
{
"country": "USA",
"authority": "federal_reserve",
"currency": "USD",
"instrument": "federal_funds_target_range",
"rate_type": "range",
"lower_bound": "0.00",
"upper_bound": "0.25",
"unit": "percent",
"effective_on": "2008-12-16",
"observed_on": null,
"announced_on": null
}
],
"next_cursor": "eyJhIjoiMjAwOC0xMi0xNiJ9"
}Reserves
Returns total official reserve assets as published by the bank. Use YYYY-MM for period, or omit it to get the latest month.
{
"country": "AUS",
"period": "2026-07",
"value": "145344",
"currency": "AUD",
"scale": "millions",
"released_on": "2026-08-07"
}value is a positive decimal string. The bank's published unit determines scale, which is units or millions; currency identifies the value's currency. Narwhal never converts the scale or currency. The reference month is period, and released_ is the date the publisher last updated its file. Unpublished months remain absent and are never filled.
Reserves are available for Australia (RBA table A4), Malaysia (Bank Negara Malaysia, gross international reserves), and Germany, France, Ireland, the Netherlands, Portugal, Slovenia, Estonia, Latvia, Lithuania and Croatia, plus Czechia, through the ECB reserve-assets series in euros. Czechia's value is the Czech National Bank figure recorded by the ECB. Other countries return 404 series_.
Balance sheets
Read a central bank's monthly total assets (balance-sheet total) through GET / or MCP tool economics_. Set the optional period to a reference month in YYYY-MM format, or omit it to return the latest month.
{
"country": "CAN",
"period": "2026-09",
"value": "242657",
"currency": "CAD",
"scale": "millions",
"released_on": "2026-10-15"
}period is the reference month, and released_ records the release date. For Canada, released_ is the date Narwhal captured the figure because the Bank of Canada's file has no update date. value is a positive decimal string exactly as published, with currency and scale (units or millions) identifying the bank's published units; Narwhal never converts it.
Monthly data is available on every plan for Canada (CAN, Bank of Canada, CAD) and Malaysia (MYS, Bank Negara Malaysia, MYR); every other country returns 404 series_. An explicit period that ends before the plan's history window returns 403 plan_: Free has 12 months, Basic has 5 years, and Pro has full history.
Coverage
The euro area has one policy rate. Each listed euro member code returns the ECB deposit facility rate from that country's euro adoption date.
| Country | Central bank | Instrument | History starts | Date field |
|---|---|---|---|---|
| USA | Federal Reserve | federal_ | 2003-06-25 | effective_ |
| CAN | Bank of Canada | overnight_ | 2009-04-21 | observed_ |
| AUS | Reserve Bank of Australia | cash_ | 1990-01-23 | effective_ |
| CZE | Czech National Bank | two_ | 1995-12-08 | effective_ |
| MYS | Bank Negara Malaysia | overnight_ | 2004 | observed_ |
| SWE | Sveriges Riksbank | policy_ | 1994-06-01 | observed_ |
| NOR | Norges Bank | sight_ | 1991-01-01 | observed_ |
| DNK | Danmarks Nationalbank | certificate_ | 1992-04-01 | observed_ |
| BRA | Banco Central do Brasil | selic_ | 1999-03-05 | observed_ |
| DEU, FRA, IRL, NLD, PRT | European Central Bank | deposit_ | 1999-01-01 | observed_ |
| SVN | European Central Bank | deposit_ | 2007-01-01 | observed_ |
| EST | European Central Bank | deposit_ | 2011-01-01 | observed_ |
| LVA | European Central Bank | deposit_ | 2014-01-01 | observed_ |
| LTU | European Central Bank | deposit_ | 2015-01-01 | observed_ |
| HRV | European Central Bank | deposit_ | 2023-01-01 | observed_ |
Rows for the United States, Australia, Czechia, Canada and Malaysia list rate-decision dates (changes only). Rows for Sweden, Norway, Denmark, Brazil and euro members list dated observations that can repeat the previous rate.
Sweden's policy_ was the repo rate until 8 June 2022. Brazil has policy-rate coverage only, and dates not yet in force are excluded.
Sources and notices
The Bank of Canada, the ECB and the RBA publish their data free of charge on their websites. Narwhal changes the format and returns the published values. These institutions do not endorse Narwhal.
- Source: Bank of Canada. This information is available free of charge on the Bank of Canada website: https://www.bankofcanada.ca.
- Source: European Central Bank (ECB). This information is available free of charge on the ECB website: https://www.ecb.europa.eu.
- Source: Reserve Bank of Australia 2026. This information is available free of charge on the RBA website: https://www.rba.gov.au.
Retain the source credit wherever you display the data. The Riksbank notice carries the date of the data on pages that read live data.
- Source: Board of Governors of the Federal Reserve System
- Source: Bank Negara Malaysia. Data and information are subject to Terms of Use for BNM Datasets.
- Source: Sveriges Riksbank, with the date of the data.
- Source: the CNB
- Source: Norges Bank
- Source: Danmarks Nationalbank
- Source: Statistics Denmark - StatBank.dk/dnrentd
- Source: Banco Central do Brasil (SGS 432), Open Data Commons Open Database License (ODbL).
Terms: Reserve Bank of Australia · Czech National Bank · Federal Reserve
Errors
400 invalid_Invalid country, date or filter.query 400 invalid_Malformed cursor or a cursor issued for different filters.cursor 401 invalid_Missing or rejected Bearer key.api_ key 403 plan_The requested date or range ends before your plan's history window.upgrade_ required 404 series_No rate matches the request, or the country has no coverage.not_ found 409 cursor_The cursor is more than 24 hours old or its data has been withdrawn.expired 429 rate_A short-window limit has been reached. Wait for the time specified bylimit_ exceeded Retry-After.429 quota_The account has used its monthly allowance.exhausted 503 economics_The source data cannot be served safely.unavailable
Errors and quota · Economics API reference · Central bank interest rates API
Docs