MoneySuperMarket APImoneysupermarket.com ↗
Access live UK mortgage rates and product search via the MoneySuperMarket API. Compare rates by LTV band, region, deposit, and product type across lenders.
What is the MoneySuperMarket API?
The MoneySuperMarket API provides 2 endpoints for querying live UK mortgage data — retrieve current lowest rates grouped by product type and LTV band via get_lowest_rates, or run detailed product searches across lenders using search_mortgages with filters for property value, deposit, region, and fixed term. Each response includes per-product rate, fee, APRC, and monthly cost data drawn directly from MoneySuperMarket's comparison index.
curl -X GET 'https://api.parse.bot/scraper/b5020d03-b917-43dc-936d-5bf63f145400/get_lowest_rates?category=FirstTimeBuyer' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace moneysupermarket-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.moneysupermarket_mortgage_api import (
MoneySuperMarket,
MortgageCategory,
Region,
Sort,
FixedTerm,
ProductType,
RepaymentMethod,
)
client = MoneySuperMarket()
# Get lowest rates overview for first-time buyers
overview = client.rateoverviews.get(category=MortgageCategory.FIRST_TIME_BUYER)
for key, entry in overview.data.items():
print(key, entry.product.initial_rate, entry.product.lender.name)
# Search for fixed-rate mortgage products sorted by interest rate
for product in client.mortgageproducts.search(
property_value=300000,
deposit_amount=60000,
required_term_years=25,
region=Region.ENGLAND,
journey_type=MortgageCategory.FIRST_TIME_BUYER,
sort_by=Sort.INTEREST_RATE,
fixed_term=FixedTerm.FIVE_YEARS,
repayment_method=RepaymentMethod.REPAYMENT,
limit=5,
):
print(product.name, product.lender.name, product.costs.aprc, product.costs.total_fees)
Get current lowest mortgage rates across product types for a given mortgage category. Returns rate data as a map keyed by product type (TwoYearFixed, ThreeYearFixed, FiveYearFixed, Variable) and loan-to-value bands (SixtyLoanToValue, SeventyFiveLoanToValue, etc.). Each entry contains the best product's initial rate, monthly payment, lender info, and a pre-built enquiry object for drilling into that segment. Not paginated — returns the full rate overview in one call.
| Param | Type | Description |
|---|---|---|
| category | string | Mortgage category. |
{
"type": "object",
"fields": {
"data": "object keyed by product type / LTV band name, each value has product (initialRate, initialMonthlyPayment, lender, productType, initialTerm) and enquiry parameters"
},
"sample": {
"data": {
"data": {
"Variable": {
"enquiry": {
"journeyType": "FirstTimeBuyer",
"sortResultsBy": "MonthlyCost"
},
"product": {
"lender": {
"name": "Barclays",
"logoUrl": "https://cdn.live.podium-solutions.co.uk/static/clients/msm/lenders/logos/Barclays.svg"
},
"initialRate": 3.96,
"initialTerm": "TwoYears",
"productType": "Variable",
"initialMonthlyPayment": 714.77
}
},
"TwoYearFixed": {
"enquiry": {
"journeyType": "FirstTimeBuyer",
"sortResultsBy": "MonthlyCost"
},
"product": {
"lender": {
"name": "Lloyds Bank",
"logoUrl": "https://cdn.live.podium-solutions.co.uk/static/clients/msm/lenders/logos/Lloyds_Bank.svg"
},
"initialRate": 4.32,
"initialTerm": "TwoYears",
"productType": "Fixed",
"initialMonthlyPayment": 744.61
}
}
}
},
"status": "success"
}
}About the MoneySuperMarket API
What the API Returns
The get_lowest_rates endpoint returns current lowest mortgage rates segmented by product type — TwoYearFixed, ThreeYearFixed, FiveYearFixed, and Variable — and further broken down by loan-to-value (LTV) bands. The optional category parameter scopes results to FirstTimeBuyer, HomePurchase, or Remortgage journeys. Each rate entry includes product details and the enquiry parameters needed to fetch a full product listing.
Searching Mortgage Products
The search_mortgages endpoint accepts a broad set of filters: property_value and deposit_amount in GBP, region (England, Scotland, Wales, or NorthernIreland), journey_type, product_type (Fixed or Variable), fixed_term (TwoYears, ThreeYears, or FiveYears), and sort_by (MonthlyCost, InterestRate, or APRC). Results are paginated at 20 products per page, and the response includes pagesAvailable, totalProductsUnfiltered, and totalProductsFiltered so you can build pagination controls accurately.
Response Shape
Each product in the search_mortgages results array carries rate, fees, monthly cost, and lender details, alongside the enquiryId that ties back to a specific search session. The request object echoed in the response confirms which parameters were applied, which is useful for logging or reconstructing searches. Products are filterable at query time by product type and term length without requiring a separate API call.
Source and Coverage
MoneySuperMarket does not publish an official public developer API for mortgage data. Coverage is limited to UK mortgage products listed on the MoneySuperMarket comparison platform. Data reflects what is available at query time and may vary by region and category.
The MoneySuperMarket API is a managed, monitored endpoint for moneysupermarket.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when moneysupermarket.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official moneysupermarket.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Display a live best-rate table on a UK property portal, broken down by TwoYearFixed and FiveYearFixed LTV bands
- Build a first-time buyer mortgage calculator that inputs property value and deposit to return sorted monthly cost estimates
- Alert users when rates drop below a threshold by polling get_lowest_rates for a given category
- Compare remortgage options by region, filtering to Fixed products and sorting by APRC
- Aggregate mortgage product counts across pages using totalProductsFiltered to size search result sets
- Pre-populate a mortgage comparison widget for Scotland vs England using the region parameter
- Track rate movements over time by logging the lowest rate per LTV band from scheduled get_lowest_rates calls
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.