UK Landregistry Sold Price History Scraper avatar
UK Landregistry Sold Price History Scraper

Pricing

Pay per event

Go to Store
UK Landregistry Sold Price History Scraper

UK Landregistry Sold Price History Scraper

Developed by

Dhrumil Bhankhar

Dhrumil Bhankhar

Maintained by Community

Scrape UK Land Registry sold price data by postcode or outcode. Get structured datasets grouped by house number/street for real estate analysis, matching, and enrichment. Export in JSON/CSV/Excel. Ideal for Rightmove, Zoopla, and UK property projects.

0.0 (0)

Pricing

Pay per event

0

Total users

2

Monthly users

2

Runs succeeded

>99%

Last modified

2 days ago

🏡 UK Land Registry Sold Price History Scraper

This actor scrapes historical sold price data for UK properties from the official Land Registry dataset, using postcodes or outcodes as input. It can be used standalone or as a data enrichment step for other property datasets (e.g., Rightmove, Zoopla, OnTheMarket, etc.).

🚪 What can this Land Registry Scraper do?

📈 Fetches all historical sales for a given postcode or outcode

🏠 Groups sales by house number and street for easy matching

🔗 Can be used to cross-match with other property datasets (e.g., Rightmove listings)

⬇️ Download enhanced UK property sales data in Excel, CSV, JSON, and other formats

📚 How do I start scraping with this scraper?

  1. Register for your free Apify account here
  2. No credit card required for a free account. Just click "Get Started" and complete registration.
  3. Free account comes with credits to try out this actor. This actor also comes with a free trial.
  4. Run this actor and download the data, or connect it to your workflow using Apify integrations.

🌳 What fields does it provide?

📝 Field📝 Description
postcodePostcode or outcode queried
houseNumberHouse number and street
historyArray of all sales for that house (see below)

Each history entry contains:

FieldDescription
transactionIdUnique transaction ID
priceSale price
transferDateDate of sale
postcodeFull postcode
propertyTypeType (terraced, detached, etc.)
newBuildWas it a new build?
estateTypeFreehold/Leasehold
houseNumberHouse number
streetStreet name
townTown
districtDistrict
countyCounty
transactionUrlLink to official record

⬇️ Input

Input fields explained

  • postcodes (array of strings): List of UK outcodes or postcodes to scrape. Example: ["N16 9NH", "AL1"]. If left empty, the actor will run for the whole UK (all outcodes) — this may take a long time and use more resources.
  • fromDate (string, optional): Start date in YYYY-MM-DD format. Only sales from this date onwards will be included. Leave blank to include all available history.
  • toDate (string, optional): End date in YYYY-MM-DD format. Only sales up to this date will be included. Leave blank to include all available history.

If you want to quickly test, the default prefill is ["N16 9NH"].

Input example

{
"postcodes": ["AL1", "PL4 9EP"],
"fromDate": "2012-01-01",
"toDate": "2024-12-31"
}

⬆️ Output

The scraped data is stored in the dataset of each run. The data can be viewed or downloaded in many popular formats, such as JSON, CSV, Excel, XML, RSS, and HTML.

Output example

{
"postcode": "AL1",
"houseNumber": "5, ORIENT CLOSE",
"history": [
{
"transactionId": "79A74E21-9273-1289-E053-6B04A8C01627",
"price": "700000",
"transferDate": "2018-09-21",
"postcode": "AL1 1AJ",
"propertyType": "terraced",
"newBuild": "No",
"estateType": "Freehold",
"secondaryName": "",
"houseNumber": "5",
"street": "ORIENT CLOSE",
"locality": "",
"town": "ST ALBANS",
"district": "ST ALBANS",
"county": "HERTFORDSHIRE",
"extra3": "A",
"transactionUrl": "http://landregistry.data.gov.uk/data/ppi/transaction/79A74E21-9273-1289-E053-6B04A8C01627/current"
}
// ...more sales history
]
}

❓Limitations

  • The actor fetches official UK Land Registry sales data. Some properties may not have sales history or may not be present in the dataset.
  • Scraping all UK outcodes will take significant time and resources.

💸 Pricing Model & Usage Logic

This actor uses a tiered pay-per-event pricing model, with usage tracked and charged based on the number of properties processed and additional multipliers. Charges are triggered at specific usage thresholds and events.

🟢 Charge Events & Tiers

The actor uses a tiered pricing model based on the number of properties processed. Each tier has a specific charge event and rate per 1,000 properties:

🔻 Cost Efficiency as You Scale: The tier-based pricing model is designed to reduce your cost per property as your usage increases. The more properties you process, the lower your per-unit cost becomes, helping keep your overall costs under control as you scale up to higher volumes.

Starter Tier (starter-tier-1K)

For the first 25,000 properties processed, the cost per 1,000 properties is $2 USD. This tier is ideal for small to medium jobs and ensures a low entry cost for initial usage.

Growth Tier (growth-tier-1K)

For properties processed from 25,000 up to 50,000 the cost per 1,000 properties drops to $1 USD. This tier rewards higher volume usage with a reduced rate, making it cost-effective for scaling up.

Scale Tier (scale-tier-1K)

For properties processed from 50,000 up to 100,000 the cost per 1,000 properties is $0.80 USD. This tier is designed for large-scale operations, offering further discounts as your volume increases.

Enterprise Tier (enterprise-tier-1K)

For properties processed above 100,000 the cost per 1,000 properties is $0.60 USD. This tier is for enterprise-level usage, providing the lowest rate for very high-volume processing.

These pricing tiers are applied on a monthly basis, and your usage count resets at the start of each new month. This ensures you always start fresh and only pay for what you use each month.

Example:

  • Scraping 200,000 properties in a month:
    • $2 per 1K properties for the first 25,000 properties ($50)
    • $1 per 1K properties upto 50,000 properties ($25)
    • $0.8 per 1K properties upto 100,000 properties ($40)
    • $0.6 per 1K properties above 100,000 properties ($60)
    • Total: $175

⚡ Usage Multipliers

Additional usage multipliers are applied based on input and environment:

  • Memory Usage:
    • If memory >512 MB, usage multiplier increases (e.g., 1024 MB = 2x usage)

How Multipliers Affect Quota

  • Multipliers do not bill you directly, but increase properties processing usage by given multiplier.
  • Example:
    • Default: 1,000 properties
    • With additional 1x multiplier: 500 items
    • With additional 1.5x multiplier: ~400 items

💡 Tip: For best cost efficiency, run this actor on 256 MB memory. Higher memory increases your usage multiplier and quota consumption rate.

🙋‍♀️ For custom solutions

For custom solutions or questions, contact: dhrumil@techvasu.com

Or learn more about me on GitHub: https://github.com/dhrumil4u360