---
title: "GET /api/macro/policy-rates/history"
method: GET
path: "/api/macro/policy-rates/history"
tags: ["Macro"]
---

# GET /api/macro/policy-rates/history

`GET /api/macro/policy-rates/history`

## Request

- Base URL: `https://api.unirateapi.com`
- URL: `https://api.unirateapi.com/api/macro/policy-rates/history`
- Auth: none declared
- TypeScript: <https://skmtc.dev/unirateapi/apis/unirate-api/docs/api/macro/policy-rates/history/get.ts> (a function with typed inputs; its response is checked against the schema)

Policy rate history for ONE central bank (free tier — counts against the normal daily request quota). Returns every rate change between `start_date` and `end_date` plus `rate_at_start` — the rate already in force on `start_date` — so a range with no decisions in it is still answered. Histories go back decades (US from 1954, UK from 1946). `country` accepts an ISO country code or a currency code (EUR -> ECB). CSV/TSV output contains the change rows only. Source: Bank for International Settlements (BIS), https://data.bis.org — UniRate is not affiliated with or endorsed by the BIS. Provided for information only; not investment advice.

## Query parameters

- `api_key` string, required
- `country` string, required
- `start_date` string
- `end_date` string
- `format` 'json' | 'xml' | 'csv' | 'tsv'
- `callback` string

## Response `200`

Rate changes in the requested window.

## Other responses

- `400`: Missing/multiple country, or invalid dates
- `401`: Missing or invalid API key
- `404`: No policy rate for that country/currency
- `429`: Daily request quota exceeded (shared with the currency endpoints: free 200/day, Pro 25,000/day)
- `503`: Policy rate data not loaded yet

---

[API](https://skmtc.dev/unirateapi/apis/unirate-api.md) - [All operations](https://skmtc.dev/unirateapi/apis/unirate-api/llms.txt) - [OpenAPI document](https://skmtc.dev/unirateapi/apis/unirate-api/revisions/e5fd92902326?raw)
