Scrape Rightmove UK Property Listings (2026)

Thirdwatch's Rightmove Scraper returns UK property listings at $0.002 per record — title, property type, location, price, area, bedrooms, tenure, council tax, agent, posted date. Built for UK real estate research, rental-yield analysis, UK property-investment intelligence, and UK proptech aggregator products.

Why scrape Rightmove for UK property research

Rightmove dominates UK property listings. According to Rightmove's 2024 Annual report, the platform serves 13B+ page-views monthly with 1M+ active listings and 80%+ market share among UK estate agents. For UK real estate research, rental-yield analysis, and property-investment intelligence, Rightmove is canonical alongside Zoopla.

The job-to-be-done is structured. A UK property-research function maps per-postcode-area rental yields quarterly. A UK rental-yield SaaS powers UK investor-facing yield calculators with Rightmove data. A UK property-investment platform tracks new-listings + price-drops daily for investor alerts. A UK proptech aggregator builder ingests Rightmove + Zoopla for comprehensive UK coverage. All reduce to postcode + property-type queries + per-listing aggregation.

How does this compare to the alternatives?

Three options for Rightmove data:

Approach Cost per 10K records Reliability Setup time Maintenance
Rightmove Data API $25K+/year (partnership) Official Weeks (approval) Per-tier license
Manual Rightmove browsing Effectively unbounded Low Continuous Doesn't scale
Thirdwatch Rightmove Scraper $20 ($0.002 × 10K) HTTP + structured data 5 minutes Thirdwatch tracks Rightmove changes

Rightmove's official Data API requires enterprise partnership. The Rightmove Scraper actor page gives you raw listing data at materially lower per-record cost.

How to scrape Rightmove in 4 steps

Step 1: How do I authenticate against Apify?

Sign in at apify.com (free tier, no credit card), open Settings → Integrations, and copy your personal API token:

export APIFY_TOKEN="apify_api_xxxxxxxxxxxxxxxx"

Step 2: How do I pull a UK postcode batch?

Pass postcode + property-type queries.

import os, requests, pandas as pd
from itertools import product

ACTOR = "thirdwatch~rightmove-scraper"
TOKEN = os.environ["APIFY_TOKEN"]

UK_AREAS = ["London", "Manchester", "Birmingham", "Edinburgh",
            "Bristol", "Leeds", "Cardiff", "Glasgow"]
TYPES = ["flat", "house", "studio"]
LISTING = "rent"

queries = [{"area": a, "property_type": t, "listing": LISTING}
           for a, t in product(UK_AREAS, TYPES)]

resp = requests.post(
    f"https://api.apify.com/v2/acts/{ACTOR}/run-sync-get-dataset-items",
    params={"token": TOKEN},
    json={"queries": queries, "maxResults": 100},
    timeout=900,
)
df = pd.DataFrame(resp.json())
print(f"{len(df)} {LISTING} listings across {df.area.nunique()} UK areas")

8 areas × 3 types = 24 queries × 100 = up to 2,400 records, costing $4.80.

Step 3: How do I parse £ + compute rental yields?

Combine buy + rent listings to compute per-area yields.

import re

def parse_gbp(s):
    if not isinstance(s, str): return None
    m = re.search(r"£([\d,]+)", s.replace(",", ""))
    return float(m.group(1)) if m else None

df["price_gbp"] = df.price.apply(parse_gbp)
df["bedrooms"] = pd.to_numeric(df.bedrooms, errors="coerce")

# Per-area median rents
rent_med = df[df.listing == "rent"].groupby(["area", "bedrooms"]).price_gbp.median().reset_index()
rent_med.columns = ["area", "bedrooms", "median_monthly_rent"]
rent_med["annual_rent"] = rent_med.median_monthly_rent * 12

# Pull buy listings separately + cross-reference
# Assume buy_df from a separate scrape with listing="buy"
# yield_pct = (annual_rent / capital_value) × 100
print(rent_med.head(15))

UK yields typically run 3-6% in metros, 6-10% in regional cities. For accurate yield research, segment by tenure (Freehold typically yields 0.5-1% higher than Leasehold) and council tax band.

Step 4: How do I track price-drops + new-listings?

Daily snapshot enables price-change detection.

import datetime, pathlib

ts = datetime.datetime.utcnow().strftime("%Y%m%d")
df.to_json(f"snapshots/rightmove-{ts}.json", orient="records")

# Compare against yesterday
prev = pd.read_json("snapshots/rightmove-20260427.json")
combined = df.merge(prev, on="listing_id", suffixes=("", "_prev"))
combined["price_delta"] = combined.price_gbp - combined.price_gbp_prev
drops = combined[combined.price_delta < 0]
print(f"{len(drops)} listings with price drops since yesterday")

Price-drops on Rightmove buy-listings (typically £5K-£25K reductions) signal motivated sellers — high-leverage for buyer-side investment research.

Sample output

A single Rightmove listing record looks like this. Five rows weigh ~6 KB.

{
  "listing_id": "129876543",
  "title": "2 Bedroom Flat for Rent in Shoreditch",
  "property_type": "Flat",
  "area": "London",
  "postcode_area": "EC2A",
  "price": "£2,750 per month",
  "price_gbp": 2750,
  "bedrooms": 2,
  "bathrooms": 1,
  "tenure": "Leasehold",
  "council_tax_band": "D",
  "agent_name": "Foxtons",
  "posted_date": "2026-04-22",
  "available_from": "2026-05-15",
  "url": "https://www.rightmove.co.uk/properties/129876543"
}

postcode_area (EC2A) is the canonical UK location anchor — enables PostGIS-based territory analysis. tenure (Freehold/Leasehold) materially affects buy-listing yields (Leasehold typically 5-15% lower price for same property due to ground-rent + service charges).

Common pitfalls

Three things go wrong in Rightmove pipelines. Per-week vs per-month rental price — Rightmove displays rentals in weekly OR monthly format depending on agent preference; for cross-listing comparisons, normalize to monthly (× 4.33) before benchmarking. Council Tax band variance — affects total housing cost meaningfully (Band A: £1K-£1.5K/year; Band H: £4K-£6K/year); for accurate effective-cost research, factor in council tax + service charges (Leasehold). Sold STC vs Available — Rightmove shows "Sold STC" (Subject To Contract) listings alongside available; filter on status: "available" strictly to avoid stale-availability bias.

Thirdwatch's actor uses HTTP + structured data extraction at $0.05/1K, ~96% margin. Pair Rightmove with Zoopla scraper (separate actor) for comprehensive UK coverage and Adzuna Scraper for UK demographic + commute data. A fourth subtle issue worth flagging: London + South East (postcode prefixes BR, CR, DA, EN, HA, IG, KT, RM, SM, TN, TW, UB, WD) follow different price-trajectories than rest of UK; for accurate UK national benchmarks, segment by region rather than aggregating to national medians. A fifth pattern unique to UK rentals: short-let (Airbnb-style) vs long-let (12+ month tenancies) have materially different effective rates — short-let rates often 2-3x long-let for same property, but with much higher vacancy. For accurate rental-yield research, filter to long-let tenancies only. A sixth and final pitfall: stamp duty thresholds (£250K, £925K, £1.5M) drive bunched listing prices just below thresholds. For accurate price-distribution research, account for stamp-duty-driven bunching when interpreting per-area median values.

Operational best practices for production pipelines

Tier the cadence to match signal half-life. UK property data turns over moderately fast — daily polling on top postcode areas + weekly on long-tail covers most use cases. Tier the watchlist into Tier 1 (active investor-research postcodes, daily), Tier 2 (broader UK research, weekly), Tier 3 (long-tail postcodes, monthly).

Snapshot raw payloads. Pipeline cost is dominated by scrape volume, not storage. Persisting raw JSON snapshots lets you re-derive metrics — particularly useful for council-tax-band normalization as area-specific mappings evolve.

Schema validation. Run a daily validation suite asserting expected core fields with non-null rates above 80% (required) and 50% (optional). Rightmove schema occasionally changes during platform UI revisions — catch drift early. Cross-snapshot diff alerts on price-drop events, listing-removals (likely Sold STC), and agent-name changes catch market-velocity signals that pure aggregate-trend monitoring misses. A seventh and final operational pattern at production scale: cross-snapshot diff alerts. Beyond detecting individual changes, build alerts on cross-snapshot field-level diffs — name changes, category re-classifications, status changes. These structural changes precede or follow material events and are leading indicators of organization-level disruption. Persist a structured-diff log alongside aggregate snapshots: for each entity, persist (field, old_value, new_value) tuples per scrape. Surface high-leverage diffs to human reviewers; low-leverage diffs stay in the audit log.

An eighth pattern worth flagging for cost-controlled teams: implement an incremental-diff pipeline that only re-processes records whose hash changed since the previous snapshot. For watchlists where 90%+ of records are unchanged between snapshots, hash-comparison-driven incremental processing reduces downstream-compute by 80-90% while preserving full data fidelity. Combine with snapshot-storage compression for end-to-end pipeline-cost reductions of 70%+ at scale.

Related use cases

Frequently asked questions

Why scrape Rightmove for UK real estate research?

Rightmove dominates UK property listings — 1M+ active listings with 80%+ market share among UK estate agents. According to Rightmove's 2024 report, the platform serves 13B+ page-views monthly. For UK real estate research, rental-yield analysis, and property-investment intelligence, Rightmove is canonical alongside Zoopla.

What data does the actor return?

Per listing: title, property type (Detached/Semi/Terraced/Flat/Bungalow), location (postcode area + town), price (£), price per sqft, bedrooms, bathrooms, tenure (Freehold/Leasehold), council tax band, agent name, posted date, image URLs. About 95% of Rightmove listings have comprehensive metadata.

How does Rightmove compare to Zoopla + OnTheMarket?

Rightmove (80% market share) dominates UK property listings; Zoopla (50%) is secondary; OnTheMarket (~25%) is tertiary. Most UK estate agents post on multiple platforms — typical 70-80% overlap between Rightmove and Zoopla. For comprehensive UK property research, run both. Rightmove tends to have fresher listings (agent priority); Zoopla has stronger valuation tooling.

Can I compute UK rental yields per area?

Yes. Pull buy-listings (capital value) + rent-listings (annual rent) per UK postcode area + property-type. Compute (annual rent × 12) / capital value × 100 = gross rental yield. UK metro yields typically 3-6%; regional yields 6-10%. London + South East have lower yields (2-4%) but stronger capital appreciation; North England + Wales have higher yields (6-10%) with slower appreciation.

How fresh do Rightmove snapshots need to be?

For active UK property-research, daily cadence catches new listings within 24h. For UK property-investment monitoring, weekly is sufficient. UK property listings turn over fast (median 30-60 days on market for buy listings, 14-30 days for rentals); for rental-velocity research, daily polling captures rapid-turn cycles.

How does this compare to Rightmove's official API?

Rightmove's official Data API is gated behind enterprise B2B partnerships ($25K+/year). The actor delivers similar coverage at $0.002/record without partnership gatekeeping. For active estate-agency operations using full ATS integration, Rightmove's API is required. For research-only use cases, the actor is materially cheaper.

Run the Rightmove Scraper on Apify Store — pay-per-record, free to try, no credit card to test.