Rightmove BMV Deal Finder

One run samples an area, builds the market median per bedrooms and property type, and delivers the listings priced well below their group...

One run samples an area, builds the market median per bedrooms and property type, and delivers the listings priced well below their group - below-market-value leads with the discount percent computed. Asking prices, honestly labeled. No agent contact data.

$3.86 / 1,000 · 100.0% success over 30 public runs in the last 30 days.

Run it on Apify → Free to try - runs bill per result on your own account.

What you give it

Every field is optional unless marked; sensible defaults do the rest.

FieldTypeWhat it doesDefault
location string Place to search, exactly as you would type it in the Rightmove search box: a town ("Manchester"), area ("Camden, London") or outcode ("EN2"). The first suggestion Rightmove offers for it is used. Manchester
channel string Search properties for sale (buy) or to rent (rent). buy
priceMinGbp integer Only include properties priced at least this many pounds. For rentals this is pounds per month. -
priceMaxGbp integer Only include properties priced at most this many pounds. For rentals this is pounds per month. -
bedroomsMin integer Only include properties with at least this many bedrooms. -
bedroomsMax integer Only include properties with at most this many bedrooms. -
radiusMiles integer Widen the search this many miles around the location. 0 = the location only. -
maxItems integer Upper bound on deals delivered. Free-plan runs are capped at 5 items. The form starts at 25 for a cheap first run - that is the form's prefill, not a cap on your plan; clear it to use the default of 100. 100
discountThresholdPct integer A listing must be at least this far below its group median (same bedrooms + property type) to count as a deal. 15 is a sensible sourcing bar. 15
samplePages integer Result pages sampled to establish the market medians (2-42). More pages = steadier medians, longer run. 12
reportFailures boolean When a run fails, send the developer the actor name and build, an error category, the error message (truncated) and a one-way hash of your input - so a bug can be fixed without anyone asking you to reproduce it. Your input itself, your results and your identity are never sent, and successful runs send nothing at all. Switch this off and the actor behaves exactly the same. True

What you get back

One JSON object per result, with exactly these fields - no seller identities, no contact data, ever.

A real result row from a recent run:

{
  "addedOrReduced": "Added today",
  "agencyName": "Auction House, South Yorkshire",
  "auction": true,
  "bathrooms": 1,
  "bedrooms": 2,
  "bucket": "2-bed flat",
  "bucketMedianGbp": 125000,
  "bucketSize": 9,
  "channel": "buy",
  "currency": "GBP",
  "discountPct": 88,
  "displayAddress": "Flat 22, Meridian House, 2 Artist Street, Armley, Leeds LS12 2EW",
  "displaySize": null,
  "featured": false,
  "firstVisibleDate": "2026-10-15T13:41:36Z",
  "imageUrls": [
    "https://media.rightmove.co.uk:443/dir/crop/10:9-16:9/property-photo/ddfdbd0e0/94350300/ddfdbd0e00215f5098deab343ba86cb5_max_476x317.jpeg",
    "https://media.rightmove.co.uk:443/dir/crop/10:9-16:9/property-photo/c7218169a/94350300/c7218169a9bee2b22919e5a9e63c4cb4_max_476x317.jpeg",
    "https://media.rightmove.co.uk:443/dir/crop/10:9-16:9/property-photo/277c822b2/94350300/277c822b2191f349a8bd4a2eb5b980c5_max_476x317.jpeg",
    "https://media.rightmove.co.uk:443/dir/crop/10:9-16:9/property-photo/c3f1380d7/94350300/c3f1380d7d9b424ec7eb4b3e3cce33c4_max_476x317.jpeg",
    "https://media.rightmove.co.uk:443/dir/crop/10:9-16:9/property-photo/7a612eb22/94350300/7a612eb22fee778ce0e15ffa49f868f6_max_476x317.jpeg",
    "https://media.rightmove.co.uk:443/dir/crop/10:9-16:9/property-photo/2a3e62796/94350300/2a3e62796b4fad0a113d968bb0b73223_max_476x317.jpeg",
    "https://media.rightmove.co.uk:443/dir/crop/10:9-16:9/property-photo/1f30df9bc/94350300/1f30df9bc48e402dcb7cb0316e908db2_max_476x317.jpeg"
  ],
  "listingUpdateDate": "2026-10-15T13:47:07Z",
  "listingUpdateReason": "new",
  "priceFrequency": null,
  "priceGbp": 15000,
  "priceQualifier": "Guide Price",
  "propertyId": "94350300",
  "propertyType": "Flat",
  "summary": "FOR SALE VIA NATIONAL ONLINE AUCTION. BIDDING OPENS ON MONDAY 16th NOVEMBER AT 1PM, AND CLOSES TUESDAY 17th NOVEMBER FROM 11AM. REGISTER TO ...",
  "tenureType": "LEASEHOLD",
  "title": "2 bedroom flat for sale",
  "url": "https://www.rightmove.co.uk/properties/94350300"
}
FieldTypeMeaning
propertyId string Rightmove property ID.
url string Direct link to the property listing.
title string The site's full listing headline.
displayAddress string The address exactly as the listing displays it - the granularity the agent chose to publish. Exact coordinates are never collected.
priceGbp ['integer', 'null'] Asking price in pounds; for rentals see priceFrequency (usually per month).
currency string Always GBP.
priceFrequency ['string', 'null'] Rental payment frequency (monthly, weekly). Null for sales.
priceQualifier ['string', 'null'] The site's price qualifier, e.g. Guide Price, Offers Over.
bedrooms ['integer', 'null'] Number of bedrooms.
bathrooms ['integer', 'null'] Number of bathrooms, when the listing reports it.
propertyType ['string', 'null'] Property subtype, e.g. End of Terrace, Apartment, Detached.
channel ['string', 'null'] buy or rent.
tenureType ['string', 'null'] FREEHOLD or LEASEHOLD, when reported.
displaySize ['string', 'null'] Floor area as displayed, e.g. "1,033 sq. ft.".
summary string Listing summary text as the agent wrote it.
firstVisibleDate ['string', 'null'] When the listing first appeared (ISO timestamp).
listingUpdateReason ['string', 'null'] Last update kind, e.g. price_reduced, new.
listingUpdateDate ['string', 'null'] When the listing was last updated (ISO timestamp).
addedOrReduced ['string', 'null'] The site's added/reduced banner text.
agencyName ['string', 'null'] Estate agency trading name and branch - business identity only. Agent phone numbers and contact routes are never collected.
featured boolean True for featured/premium paid placements.
auction boolean True when the property is sold at auction.
imageUrls array Listing photo URLs (up to 8).
bucket string The comparison group the deal was scored in (bedrooms + property type).
bucketSize integer Priced listings in the comparison group sample.
bucketMedianGbp integer The group's median asking price in the sampled area.
discountPct integer How far below the group median this listing is priced, in percent.

Health

100.0% success over 30 public runs in the last 30 days. Live record, failures included: status page.

Full documentation, examples and the AI-assistant prompt live on the store page.