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 · Recently published - building its public record.
Run it on Apify → Free to try - runs bill per result on your own account.
Every field is optional unless marked; sensible defaults do the rest.
| Field | Type | What it does | Default |
|---|---|---|---|
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 25 items. | 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 |
One JSON object per result, with exactly these fields - no seller identities, no contact data, ever.
| Field | Type | Meaning |
|---|---|---|
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. |
Recently published - building its public record. Live record, failures included: status page.
Full documentation, examples and the AI-assistant prompt live on the store page.