Bank Rates API
Access the Bank of England Official Bank Rate - the UK's key interest rate that influences borrowing and saving rates
Overview
The Bank Rates API provides access to the Bank of England Official Bank Rate (also known as the Base Rate), sourced directly from the Bank of England Statistical Interactive Database (IADB). This is the single most important interest rate in the UK economy.
This API provides:
- Current Bank of England Official Bank Rate
- Complete rate change history back to 1975
- Each record shows the date a rate change took effect
- Daily automated updates from official BoE sources
What is the Bank Rate?
The Bank Rate is set by the Bank of England's Monetary Policy Committee (MPC). It influences all other interest rates in the economy, including mortgage rates, savings rates, and loan rates. When the Bank Rate changes, banks typically adjust their rates accordingly.
Key Features
- Official Bank of England data source
- Daily automated updates
- Historical data back to 1975
- Rate change filtering
- Sub-second response times
- 1-hour response caching
This API is ideal for:
- Financial applications and dashboards
- Mortgage calculators
- Economic analysis tools
- Property investment platforms
- Savings comparison services
Data Source Notice
All bank rate data is sourced from the Bank of England Statistical Interactive Database (Series Code: IUDBEDR). Data is updated daily when markets are open.
Authentication
All requests to the Bank Rates API require authentication using an API key. You can obtain your API key from your PropertyInsights dashboard after subscribing to an API plan.
Include your API key in the request header as follows:
X-API-Key: your_api_key_here
Security Warning
Endpoints
Base URL
https://propertyinsights.co.uk/api/v1/
Get Bank Rates
/bank-rates
Get current and historical Bank of England Official Bank Rate data. Returns the latest rate, metadata, and historical data with optional filtering.
Request Parameters
GET /bank-rates
Query parameters for filtering bank rate data.
| Parameter | Required | Type | Description |
|---|---|---|---|
| startDate | Optional | String | Start date for historical data (YYYY-MM-DD format) |
| endDate | Optional | String | End date for historical data (YYYY-MM-DD format) |
| limit | Optional | Integer | Maximum records to return (default: 100, max: 500) |
Billing details in the response
Successful chargeable JSON responses include a top-level billing object. The endpoint examples on this page focus on the endpoint-specific data, so this repeated block may not be shown in every example.
"billing": {
"mode": "prepaid",
"creditsCharged": 1,
"creditsRemaining": 1999,
"creditsRefreshAt": "2026-08-14T09:30:00.000Z"
}| Field or header | Meaning |
|---|---|
| billing.creditsCharged X-Credits-Charged | Credits charged by this call. Failed and non-chargeable calls return 0 in the header. |
| billing.creditsRemaining X-Credits-Remaining | The credit balance after the call. |
| billing.creditsRefreshAt X-Credits-Refresh-At | The next monthly credit refresh as an ISO 8601 timestamp. Trial and non-renewing balances return null and omit the header. |
All authenticated API-key calls expose the billing headers, including validation errors and zero-credit status or management requests. Only successful chargeable JSON responses add the billing object to the response body.
Response Format
All API responses are returned in JSON format. The response includes the current rate and a list of rate changes. Each record represents a date when the rate changed to a new value - the rate remains in effect until the next change date.
{
"success": true,
"current": {
"rate": 3.75,
"effectiveFrom": "2025-12-18",
"label": "Bank of England Official Bank Rate"
},
"rateChanges": [
{ "date": "2025-12-18", "rate": 3.75 },
{ "date": "2025-11-06", "rate": 4.0 },
{ "date": "2025-09-17", "rate": 4.25 },
{ "date": "2025-08-06", "rate": 4.5 }
]
}Response Fields
| Field | Type | Description |
|---|---|---|
| current.rate | Number | Current bank rate as a percentage |
| current.effectiveFrom | String | Date the current rate took effect (YYYY-MM-DD) |
| rateChanges | Array | Rate change records - each shows when a new rate took effect |
Examples
Example 1: Get Current Bank Rate
GET https://propertyinsights.co.uk/api/v1/bank-rates?limit=1 X-API-Key: your_api_key_here
Returns the current bank rate with the date it took effect
Example 2: Get Recent Rate Changes
GET https://propertyinsights.co.uk/api/v1/bank-rates?limit=20 X-API-Key: your_api_key_here
Returns the 20 most recent rate changes
Example 3: Rate Changes in Date Range
GET https://propertyinsights.co.uk/api/v1/bank-rates?startDate=2020-01-01&endDate=2023-12-31 X-API-Key: your_api_key_here
Returns all bank rate changes between 2020 and 2023
Example 4: Full Rate History
GET https://propertyinsights.co.uk/api/v1/bank-rates?limit=500 X-API-Key: your_api_key_here
Returns up to 500 rate changes (covers most of the history back to 1975)
Error Handling
The API uses standard HTTP response codes and returns detailed error information in JSON format. All errors follow a consistent structure to help you handle them appropriately in your application.
| HTTP Code | Error Code | Description |
|---|---|---|
| 400 | INVALID_DATE_FORMAT | Date must be in YYYY-MM-DD format |
| 400 | INVALID_LIMIT | Limit must be between 1 and 500 |
| 404 | NO_DATA_FOUND | No bank rate data found for the specified date range |
| 401 | AUTHENTICATION_REQUIRED | Valid API key is required |
| 402 | INSUFFICIENT_CREDITS | Not enough API credits remaining to perform operation |
| 500 | DATABASE_ERROR | Error accessing database - please try again |
| 500 | INTERNAL_SERVER_ERROR | An unexpected error occurred |
Error Response Format
{
"success": false,
"error": {
"code": "NO_DATA_FOUND",
"message": "No bank rate data found for the specified date range"
}
}Need Help?
If you need assistance with implementation or have questions about the Bank Rates API, our support team is here to help.