Rightmove Yield Scanner
One run samples an area's sale and rental markets, groups them by bedrooms and property type, and delivers gross yield per group - buy medians, monthly...
One run samples an area's sale and rental markets, groups them by bedrooms and property type, and delivers gross yield per group - buy medians, monthly rent medians, annualized rent and the yield percent, sample sizes attached. Asking prices and advertised rents, honestly labeled. Aggregates only.
$19.24 / 1,000 · 100.0% success over 26 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.
| Field | Type | What it does | Default |
|---|---|---|---|
location |
string | The area to scan: a UK city, town, district or postcode as you would type it on Rightmove, e.g. "Manchester" or "LS6". | Manchester |
priceMinGbp |
integer | Only consider sale listings at or above this price. | - |
priceMaxGbp |
integer | Only consider sale listings at or below this price - your actual budget. | - |
radiusMiles |
integer | Widen the scan this many miles around the location (0-40). | - |
samplePages |
integer | Result pages sampled per market side - sale and rental (2-42). More pages = steadier medians. | 10 |
maxItems |
integer | Upper bound on yield rows (one per property group). | 50 |
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:
{
"annualRentGbp": 13200,
"bucket": "3-bed terraced",
"buyMedianGbp": 240000,
"buyP25Gbp": 225000,
"buyP75Gbp": 280000,
"buySampleSize": 10,
"currency": "GBP",
"grossYieldPct": 5.5,
"location": "Leeds",
"rentMedianMonthlyGbp": 1100,
"rentSampleSize": 6
}
| Field | Type | Meaning |
|---|---|---|
location |
string | The searched area. |
bucket |
string | Property group: bedrooms + property type. |
buySampleSize |
integer | Sale listings behind the buy-side stats. |
buyMedianGbp |
integer | Median asking price of the group, GBP. |
buyP25Gbp |
integer | 25th percentile asking price. |
buyP75Gbp |
integer | 75th percentile asking price. |
rentSampleSize |
integer | Monthly rental listings behind the rent-side stats. |
rentMedianMonthlyGbp |
integer | Median advertised monthly rent, GBP. |
annualRentGbp |
integer | Median monthly rent times twelve. |
grossYieldPct |
number | annualRentGbp / buyMedianGbp x 100, one decimal. Gross of all costs - asking prices, honestly labeled. |
currency |
string | Always GBP. |
Health
100.0% success over 26 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.