Rightmove Scraper — UK Property Listings
Pricing
Pay per event
Rightmove Scraper — UK Property Listings
Scrape UK property listings from Rightmove (for-sale or to-rent) — price, address, bedrooms, agent phone, floor plan, EPC, photos, full description — export to JSON or CSV. A Rightmove data scraper that enriches from each detail page, going beyond the public search payload.
Pricing
Pay per event
Rating
0.0
(0)
Developer
DevilScrapes
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
20 hours ago
Last modified
Categories
Share
🎯 What this scrapes
Rightmove is the UK's largest property portal and publishes no public API. This Actor is your Rightmove scraper: search by location, filter by price, bedrooms, or listing type (for-sale or to-rent), and optionally enrich each result with detail-page data — agent phone, full description, floor plan URL, and EPC graph image. Built on curl-cffi with browser TLS impersonation; every request looks like a real browser visit from a UK residential IP.
Rightmove's site actively resists automated access. We run the gauntlet so you get clean rows.
🔥 Features
- 🛡️ Browser fingerprint rotation —
curl-cffireplays real Chrome / Firefox / Safari TLS handshakes so every request looks like a real browser, not a script. - 🌐 Residential proxy rotation via Apify Proxy — a fresh UK exit IP on every session, automatically swapped whenever the target pushes back.
- 🔁 Retries with exponential backoff on
408 / 429 / 5xx— up to 5 attempts per page withRetry-Afterhonoured. - 🧱 Rate-limit-aware pacing — we slow down when Rightmove signals overload instead of hammering until banned.
- 🧊 Clean, typed dataset rows — Pydantic-validated, ISO-8601 timestamps, stable property IDs, ready for JSON / CSV / Excel export.
- 💰 Pay-Per-Event pricing — you only pay for rows that land in your dataset. No data, no charge.
💡 Use cases
- Property-market analytics — track price-per-square-foot trends across UK postcodes over time.
- Buyer alerting — daily diff for new sub-£500k 2-bed flats in your target postcode.
- Landlord intelligence — aggregate
to-rentrows by postcode to estimate rental yields across a portfolio. - Agent prospecting — build a directory of UK estate agents using
agent_name+agent_phonefrom each listing. - Floor-plan + EPC enrichment — detail-page data that cheaper competitors miss entirely: full description, floor plan URL, and EPC graph image.
- UK property data API substitute — Rightmove's official data access is restricted to registered agents. This Actor gives PropTech founders a clean postcode-property-data feed without a partner contract.
⚙️ How to use it
- Click Try for free at the top of the page.
- Fill in the input form — most fields have sensible defaults (London, for-sale, 50 results).
- Click Start. Results stream into the run's dataset in real time.
- Export from Storage → Dataset as JSON, CSV, or Excel — or pull via the Apify API.
📥 Input
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
searchLocation | string | yes | London | Free-form UK location — city, district, postcode prefix (SW1A), or region. Resolved via Rightmove's location autocomplete. |
listingType | string | no | for-sale | Which Rightmove channel to scrape — for-sale or to-rent. |
radiusMiles | string | no | 0.0 | Search radius around the centroid of the resolved location (miles). |
maxPriceGbp | integer | no | — | Upper price filter. Total £ for for-sale; £ per month for to-rent. Leave empty for no cap. |
minBedrooms | integer | no | — | Minimum number of bedrooms. Leave empty for no floor. |
maxProperties | integer | no | 50 | Hard cap on dataset rows. Rightmove's own search caps at ~1 000 results per query. |
enrichDetails | boolean | no | true | Fetch each listing's detail page for full description, floor plan URL, EPC graph URL, and agent phone. Doubles request count and run time; disable to get search-payload fields only. |
proxyConfiguration | object | no | {"useApifyProxy": true} | Apify Proxy spec. UK residential exits are recommended for stable access. |
Example input
{"searchLocation": "London","listingType": "for-sale","maxProperties": 5,"enrichDetails": true,"proxyConfiguration": {"useApifyProxy": true}}
📤 Output
Every row is one dataset item.
| Field | Type | Notes |
|---|---|---|
property_id | string | Rightmove property ID. |
property_url | string | Absolute URL to the listing detail page. |
address | string | Display address (Rightmove's truncated form). |
postcode | string | null | Full postcode (e.g. E17 6ZL) — only present when enriched from the detail page. |
latitude | number | null | Latitude (WGS-84). |
longitude | number | null | Longitude (WGS-84). |
price_gbp | integer | null | Amount in GBP — total for sale, monthly for rent. |
price_qualifier | string | null | Price qualifier (e.g. Offers in Excess of, Guide Price). |
price_frequency | string | null | monthly for rentals, not specified for sales. |
listing_type | string | for-sale or to-rent. |
property_type | string | null | Property sub-type (Apartment, Detached, Semi-detached, etc.). |
property_type_full | string | null | Human-readable description (e.g. 1 bedroom apartment for sale). |
bedrooms | integer | null | Number of bedrooms. |
bathrooms | integer | null | Number of bathrooms. |
sqft | integer | null | Floor area in square feet (when published by the agent). |
tenure | string | null | Tenure type (FREEHOLD / LEASEHOLD / SHARE_OF_FREEHOLD). |
epc_graph_url | string | null | URL of the EPC graph image. Enrichment-only. |
epc_rating | string | null | EPC rating letter (A–G) when extractable. Currently always null — the letter is image-only; OCR the graph if you need it. |
description | string | null | Full property description (HTML stripped to plain text). Enrichment-only. |
key_features | array | Bullet list of key features published by the agent. |
listing_added_date | string | null | ISO timestamp when the listing first appeared on Rightmove. |
listing_update_reason | string | null | Last update reason (e.g. price_reduced). |
agent_name | string | null | Estate agent branch display name. |
agent_phone | string | null | Agent's contact phone number. |
agent_url | string | null | Absolute URL to the agent's Rightmove branch page. |
photo_urls | array | List of property photo URLs. |
floor_plan_url | string | null | Floor plan image URL when published. Enrichment-only. |
scraped_at | string | ISO timestamp when this row was recorded. |
Example output
{"property_id": "167180126","property_url": "https://www.rightmove.co.uk/properties/167180126","address": "Gainsford Road, Walthamstow","postcode": "E17 6ZL","latitude": 51.587363,"longitude": -0.027555,"price_gbp": 300000,"price_qualifier": "Offers in Excess of","listing_type": "for-sale","property_type": "Apartment","bedrooms": 1,"bathrooms": 1,"sqft": 443,"agent_name": "haart, Walthamstow","agent_phone": "020 3910 6244","floor_plan_url": "https://media.rightmove.co.uk/property-floorplan/.../...jpeg","epc_graph_url": "https://media.rightmove.co.uk/property-epc/.../...png"}
💰 Pricing
Pay-Per-Event — you pay only when these events fire:
| Event | USD | What it is |
|---|---|---|
actor-start | $0.05 | One-off warm-up charge per run |
result-row | $0.002 | Per result pushed to your dataset |
Example: 1 000 results at the rates above ≈ $0.05 per 1 000. No subscription, no minimum, no card to start — Apify gives every new account $5 of free credit.
🚧 Limitations
Rightmove's own search caps any query at ~1 000 results. Enabling detail enrichment roughly doubles request count and run time. The EPC rating letter (A–G) is not available in structured form — only the graph image is surfaced; OCR with Tesseract if you need the letter. Some agent phone numbers are masked behind a click-to-reveal widget on certain listings; in those cases agent_phone may be null.
❓ FAQ
What is the Rightmove scraper?
It is an Apify Actor that extracts UK property listings from Rightmove — for-sale or to-rent — and returns structured data including price, address, bedrooms, bathrooms, agent phone, floor plan URL, EPC graph, and full description. No Rightmove API key required.
Is there an official Rightmove API?
Rightmove offers no public API. Their data-access programme is restricted to registered agents under the Property Data Trust Framework. This Actor gives PropTech founders and landlords a practical Rightmove data export without a partner contract.
Can I export Rightmove data to a spreadsheet?
Yes. Every run writes to an Apify dataset that you can export as CSV or Excel directly from the Apify Console, or pull programmatically via the Apify API. That makes this Actor a drop-in Rightmove data export tool.
What is postcode property data and does this include it?
Yes. When enrichDetails is enabled the Actor fetches each listing's detail page and returns the full postcode (e.g. SW1A 1AA), latitude/longitude, and floor area — everything you need for postcode-level property data analysis.
Does this work for rentals?
Yes — set listingType to to-rent. price_gbp is then £ per month and price_frequency reads monthly.
Is detail enrichment optional?
Yes — set enrichDetails to false to halve the request count. You still get price, address, bedrooms, photos, lat/long, and agent name from the search payload — just no floor plan, EPC image, or full description.
Does it cover Zoopla or OnTheMarket?
This Actor covers Rightmove only. Zoopla and OnTheMarket are separate sites with separate structures — a dedicated zoopla-uk-property Actor would be needed for those.
Why isn't the EPC rating letter populated?
Rightmove publishes the EPC as a rendered graph image, not a structured field. We surface epc_graph_url; use Tesseract OCR if you need the letter extracted from the image.
Will the Actor handle blocks if Rightmove pushes back?
Yes — we rotate UK residential proxy exit IPs, rotate browser fingerprints, and retry with exponential backoff. If Rightmove rate-limits mid-run the Actor surfaces a clear status message with the partial result count rather than returning a silent empty dataset.
💬 Your feedback
Spotted a bug, hit a weird edge case, or need a new field? Open an issue on the Actor's Issues tab on Apify Console — we ship fixes weekly and we read every report.