UK Land Registry Prices Scraper avatar

UK Land Registry Prices Scraper

Pricing

from $0.30 / 1,000 property sale records

Go to Apify Store
UK Land Registry Prices Scraper

UK Land Registry Prices Scraper

Filter official HM Land Registry Price Paid Data for England and Wales by postcode, location, date, price, property type, new-build status, tenure, category, and monthly record status. Returns one normalized sale record per dataset item.

Pricing

from $0.30 / 1,000 property sale records

Rating

0.0

(0)

Developer

Muhammad Afzal

Muhammad Afzal

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Filter official HM Land Registry Price Paid Data and return structured property-sale records for England and Wales. Search by postcode, address or location, transfer date, price, property type, new-build status, tenure, Price Paid category, and monthly record status.

The Actor streams HM Land Registry CSV downloads, applies filters without loading the whole file into memory, and stops once maxResults records have been delivered.

What it extracts

Each dataset item includes:

  • Transaction ID, sale price, and transfer date
  • Postcode and normalized full address
  • PAON, SAON, street, locality, town/city, district, and county
  • Property type code and label
  • New-build status
  • Tenure code and label
  • Standard or Additional Price Paid category
  • Added, changed, or deleted record status when supplied
  • Official source URL and retrieval timestamp

Input example

{
"dataSource": "yearly",
"year": 2026,
"postcode": "NG8",
"minPrice": 150000,
"maxPrice": 600000,
"propertyTypes": ["D", "S", "T"],
"maxResults": 100
}

yearly files contain corrected records grouped by the transfer/deed year and are the best default for market research. latestMonthlyUpdate contains the latest additions, changes, and deletions received by HM Land Registry; when using monthly updates, preserve transactionId and apply the recordStatus semantics to any stored copy.

Postcode matching ignores spaces and case and accepts a full postcode or prefix. locationQuery performs case-insensitive containment across all address fields. Price and date bounds are inclusive. Empty filter arrays include all available values.

Output example

{
"transactionId": "559C5AD5-6944-AFE3-E063-4804A8C004A4",
"price": 205500,
"transferDate": "2026-02-05",
"postcode": "NG8 2DT",
"propertyType": "D",
"propertyTypeLabel": "Detached",
"newBuild": false,
"tenure": "F",
"tenureLabel": "Freehold",
"paon": "336",
"saon": null,
"street": "TROWELL ROAD",
"locality": null,
"townCity": "NOTTINGHAM",
"district": "CITY OF NOTTINGHAM",
"county": "CITY OF NOTTINGHAM",
"categoryType": "A",
"categoryTypeLabel": "Standard Price Paid",
"recordStatus": "A",
"recordStatusLabel": "Added",
"fullAddress": "336, TROWELL ROAD, NOTTINGHAM, CITY OF NOTTINGHAM, NG8 2DT",
"sourceUrl": "https://price-paid-data.publicdata.landregistry.gov.uk/pp-2026.csv",
"retrievedAt": "2026-08-27T12:00:00.000Z"
}

Results are written one sale per default-dataset item. SUMMARY in the default key-value store records the source, applied filters, scanned and returned counts, skipped malformed rows, warnings, attribution, and a truthful DATA, EMPTY, or REJECTED outcome.

Pricing

EventPriceValue
Actor start$0.00010One run
Property sale record$0.00030One dataset item

A 100-record run costs up to $0.03010 in event charges, excluding any account-level platform usage Apify may apply. Valid searches with no matching records incur no dataset-item events.

Data source, licence, and limitations

The Actor downloads public CSV files directly from HM Land Registry. It does not use private credentials, scrape personal profiles, or rely on a third-party property-data provider.

Contains HM Land Registry data © Crown copyright and database right 2021. This data is licensed under the Open Government Licence v3.0.

HM Land Registry states that the two most recent months are incomplete because registration follows the sale, and data can be corrected later. Price Paid Data excludes sales that were not lodged for registration or were not for value. Address data has additional Royal Mail and Ordnance Survey conditions: it is permitted for personal/non-commercial use and for displaying residential property-price information; contact Royal Mail for other address-data uses. Review the official Price Paid Data guidance before republishing.

Yearly files can exceed 200 MB. Broad filters that do not match early rows may need to scan the entire file. The Actor preserves already-written valid records if a source connection fails mid-stream and reports the failure rather than fabricating data.

Use cases

  • Compare listings, locations, availability, and market signals for property research.
  • Schedule repeatable collection and export results to downstream workflows.
  • Run a one-off research job and export the structured result as JSON, CSV, Excel, XML, or RSS from Apify.
  • Schedule the same input to monitor changes over time and send completed datasets to a webhook or integration.
  • Feed schema-shaped records into a database, spreadsheet, BI tool, or AI workflow with the source URL retained for verification.

Run UK Land Registry Prices Scraper with the Apify API

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('muhammadafzal/uk-land-registry-prices-scraper').call({
"dataSource": "yearly",
"year": 2026,
"postcode": "NG8",
"locationQuery": "",
"dateFrom": "",
"dateTo": "",
"propertyTypes": [],
"tenures": []
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

You can also run the Actor from Apify Console, schedules, webhooks, the REST API, Make, Zapier, n8n, or the hosted Apify MCP server.

Responsible use

Use this Actor only for data you are authorized to access. Follow the target website's terms, robots and access policies, and applicable privacy, database, copyright, anti-spam, and data-protection laws. Do not use it to bypass authentication or other access controls, collect private data, harass people, or make high-impact decisions without independent verification.

Support

When reporting a problem, include the Actor run ID, a redacted input, the expected result, and a small public example URL when applicable. Do not post API tokens, cookies, credentials, or personal data in an issue.