UK Sold House Prices | Official Land Registry Data
Pricing
from $1.50 / 1,000 results
UK Sold House Prices | Official Land Registry Data
Real sold prices for UK property from HM Land Registry Price Paid Data - not asking prices. Search 31.5M official transactions by town, district, county or postcode, with date, price, property type, tenure and new-build flags. Includes quarterly market statistics.
Pricing
from $1.50 / 1,000 results
Rating
0.0
(0)
Developer
אלון זריהן
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
UK Sold House Prices — Official HM Land Registry Data
What properties actually sold for, from HM Land Registry's Price Paid Data — the official record of every registered property sale in England and Wales.
This is not listing data. Portals show what sellers ask. This shows what buyers paid, as recorded on the transfer deed.
Coverage
| Transactions | 31.5 million, 1995 to present |
| Geography | Every town, district and county in England & Wales |
| Search by | Town, district, county, or postcode prefix |
| Filters | Date range, price range, property type, transaction category |
| Speed | ~4 seconds per month of data queried |
Who uses this
- Estate agents and valuers — comparable evidence for a valuation, with a citable official source.
- Property investors — what a street or postcode actually transacts at, before making an offer.
- Mortgage and credit analysts — collateral checks and portfolio review against recorded sale prices.
- Developers and land buyers — new-build versus resale pricing in a target area.
- Researchers and journalists — defensible numbers from the official register.
Two output modes
transactions — one row per sale.
{"transactionId": "2F7F2B42-A40E-E08F-E063-4804A8C05A49","price": 790000,"date": "2025-01-31","address": "41 CHARLTON ROAD","street": "CHARLTON ROAD","locality": "KEYNSHAM","town": "BRISTOL","district": "BATH AND NORTH EAST SOMERSET","county": "BATH AND NORTH EAST SOMERSET","postcode": "BS31 2JG","postcodeArea": "BS31","propertyType": "Semi-detached","tenure": "Freehold","newBuild": false,"category": "Standard","isStandardSale": true}
stats — quarterly medians and quartiles per postcode area and property type. Thousands of sales collapse into a few dozen rows.
{"area": "BS1","period": "2025-Q1","propertyType": "Flat/Maisonette","salesCount": 74,"minPrice": 92000,"p25Price": 230000,"medianPrice": 315000,"p75Price": 415000,"maxPrice": 1150000,"meanPrice": 341216,"newBuildCount": 12,"freeholdCount": 3}
Examples
Everything sold in a city last quarter:
{ "town": "BRISTOL", "dateFrom": "2025-01-01", "dateTo": "2025-04-01" }
One neighbourhood, a price band, flats only:
{"postcodePrefix": "BS8","dateFrom": "2025-01-01","dateTo": "2025-07-01","minPrice": 400000,"maxPrice": 900000,"propertyTypes": ["flat"]}
Market trend for a whole postcode area:
{"postcodePrefix": "M","dateFrom": "2023-01-01","dateTo": "2026-01-01","outputFormat": "stats"}
At least one location is required — town, district, county or postcode prefix. An unbounded query would sweep all 31.5M records, so the Actor refuses it rather than running for an hour.
The category filter matters more than it looks
Land Registry splits sales into two categories, and mixing them quietly corrupts any price analysis:
- Standard — an ordinary sale at full market value between private parties.
- Additional — repossessions, buy-to-let portfolio transfers, sales to non-private buyers, and property types recorded as "Other". Between 12% and 19% of records, depending on area and period.
An "average house price" computed over both is not an average house price. This Actor defaults to standard only and labels every row with its category, so the choice is explicit rather than accidental.
Field reference
| Field | Meaning |
|---|---|
transactionId | Land Registry's unique reference for the sale |
price | Sale price on the transfer deed, GBP |
date, year, month | Date of transfer |
address | SAON + PAON + street, joined |
saon / paon | Secondary / primary addressable object (flat number / house number) |
street, locality, town, district, county | Address components as recorded |
postcode / postcodeArea | Full postcode and its outward code (e.g. BS31) |
propertyType | Detached, Semi-detached, Terraced, Flat/Maisonette, Other |
tenure | Freehold or Leasehold (leases of 7 years or less are not registered) |
newBuild | True if newly built at the time of sale |
category / isStandardSale | Standard or Additional — see above |
sourceUrl, scrapedAt | Provenance |
Statistics mode adds salesCount, minPrice, p25Price, medianPrice, p75Price, maxPrice, meanPrice, newBuildCount, freeholdCount.
Notes on the data
- Recent months are incomplete. Registration lags completion by two weeks to two months. A query ending today will under-report the last few weeks — this is a property of the register, not of this Actor.
- Deleted and corrected records are already resolved. The bulk CSV feed carries raw add/change/delete markers that must be applied by hand; this Actor reads the endpoint that serves current state, so superseded sales never appear.
- Very low prices are real but are not market sales. A handful of records sit below £1,000 — transfers between related parties, not open-market transactions. Most carry the Additional category, so the default filter removes them.
- Postcodes are as recorded at the time of sale and are not updated if the postcode is later reallocated.
- England and Wales only. Scotland and Northern Ireland maintain separate registers.
Source and conduct
Data comes from HM Land Registry's public Price Paid Data via its open SPARQL endpoint at landregistry.data.gov.uk. No authentication, no access controls, no scraping of protected pages. Requests are rate-limited and retried politely.
Contains HM Land Registry data © Crown copyright and database right. Licensed under the Open Government Licence v3.0. You must preserve this attribution when redistributing the data.
Integrations
Output lands in a standard Apify dataset: export as JSON, CSV, Excel or XML, or connect it to Make, Zapier, n8n, Google Sheets, Slack, or your own code via the Apify API. Schedule it to track a market over time.