Mortgage Rates API
Access UK mortgage interest rates from the Bank of England, including fixed and variable rates across all LTV bands
Overview
The Mortgage Rates API provides access to UK mortgage interest rates sourced from the Bank of England Statistical Interactive Database (IADB). Our data is updated daily and covers fixed, variable, and tracker mortgage rates across various Loan-to-Value (LTV) bands.
This API provides:
- Current mortgage rates for 2-year, 5-year, and 10-year fixed products
- Variable rate and base rate tracker data
- Rates across multiple LTV bands (60%, 75%, 90%, 95%)
- Historical rate data for trend analysis
- Daily updated data from official Bank of England sources
Available Rates
- 2-Year Fixed: 60%, 75%, 90%, 95% LTV
- 5-Year Fixed: 75%, 95% LTV
- 10-Year Fixed: 75% LTV
- Variable: 90% LTV
- Tracker: Base Rate Tracker
- SVR: Standard Variable Rate
Key Features
- Bank of England official data source
- Daily automated updates
- Historical data back to 1995
- Filter by term length and LTV
- Sub-second response times
- 1-hour response caching
This API is ideal for:
- Mortgage comparison platforms
- Property investment analysis tools
- Financial planning applications
- Buy-to-let yield calculators
- Economic research and reporting
Data Source Notice
All mortgage rate data is sourced from the Bank of England Statistical Interactive Database. Rates shown are market averages and individual lender rates may vary.
Authentication
All requests to the Mortgage 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 Mortgage Rates
/mortgage-rates
Get current and historical mortgage interest rates. Returns the latest rates and historical data with optional filtering by term length and LTV band.
Request Parameters
GET /mortgage-rates
Query parameters for filtering mortgage rate data.
| Parameter | Required | Type | Description |
|---|---|---|---|
| term | Optional | String | Filter by term: "2year", "5year", "10year", or "all" (default) |
| ltv | Optional | String | Filter by LTV: "60", "75", "90", "95", or "all" (default) |
| 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 current rates and historical data.
{
"success": true,
"current": {
"IUMBV34": {
"rate": 5.47,
"term": "2year",
"ltv": "75",
"type": "fixed",
"label": "2-Year Fixed 75% LTV"
}
},
"historical": [
{ "date": "2024-01-15", "IUMBV34": 5.47 },
{ "date": "2024-01-08", "IUMBV34": 5.52 }
]
}Response Fields
| Field | Type | Description |
|---|---|---|
| current | Object | Latest rates keyed by BoE series code |
| historical | Array | Historical rate records ordered by date descending |
Examples
Example 1: Get All Current Rates
GET https://propertyinsights.co.uk/api/v1/mortgage-rates?limit=1 X-API-Key: your_api_key_here
Returns all current mortgage rates with a single historical record
Example 2: Filter by Term and LTV
GET https://propertyinsights.co.uk/api/v1/mortgage-rates?term=2year<v=75&limit=12 X-API-Key: your_api_key_here
Returns only 2-year fixed 75% LTV rates for the last 12 weeks
Example 3: Historical Data Range
GET https://propertyinsights.co.uk/api/v1/mortgage-rates?startDate=2023-01-01&endDate=2023-12-31 X-API-Key: your_api_key_here
Returns all mortgage rate data for the year 2023
Bank of England Series Codes
The API returns mortgage rates using Bank of England series codes. Here's the mapping:
| Series Code | Term | LTV | Type | Description |
|---|---|---|---|---|
| IUM2WTL | 2 Year | 95% | Fixed | 2-Year Fixed 95% LTV |
| IUMB479 | 2 Year | 90% | Variable | 2-Year Variable 90% LTV |
| IUMB482 | 2 Year | 90% | Fixed | 2-Year Fixed 90% LTV |
| IUMBV34 | 2 Year | 75% | Fixed | 2-Year Fixed 75% LTV |
| IUMZICQ | 2 Year | 60% | Fixed | 2-Year Fixed 60% LTV |
| IUM5WTL | 5 Year | 95% | Fixed | 5-Year Fixed 95% LTV |
| IUMBV42 | 5 Year | 75% | Fixed | 5-Year Fixed 75% LTV |
| IUMBV45 | 10 Year | 75% | Fixed | 10-Year Fixed 75% LTV |
| CFMZ6IY | Tracker | All | Tracker | Base Rate Tracker |
| CFMZ6IX | Variable | All | Variable | Standard Variable Rate |
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_TERM | Term must be "2year", "5year", "10year", or "all" |
| 400 | INVALID_LTV | LTV must be "60", "75", "90", "95", or "all" |
| 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 mortgage rate data found for the specified filters |
| 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 mortgage rate data found for the specified filters"
}
}Need Help?
If you need assistance with implementation or have questions about the Mortgage Rates API, our support team is here to help.