OnTheMarket Property Scraper - UK Sale, Rent & New Homes avatar

OnTheMarket Property Scraper - UK Sale, Rent & New Homes

Pricing

from $1.50 / 1,000 results

Go to Apify Store
OnTheMarket Property Scraper - UK Sale, Rent & New Homes

OnTheMarket Property Scraper - UK Sale, Rent & New Homes

Scrapes UK property listings from OnTheMarket (onthemarket.com): price, address, coordinates, bedrooms, agent contacts, images, floorplans, EPC, council tax, tenure, broadband and schools. Search by location or URL, with price-change and delisting tracking.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

ActorFlow

ActorFlow

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 hours ago

Last modified

Categories

Share

OnTheMarket Property Scraper (UK Sale, Rent & New Homes)

Scrape UK property listings from OnTheMarket (onthemarket.com): price, address, coordinates, bedrooms, agent contacts, images, floorplans, EPC rating, council tax, tenure, broadband, schools, stations and area stats. Search by location or paste any filtered search URL, then export JSON, CSV or Excel, or call it as an API. It also tracks price changes and delistings between runs.

Target website: OnTheMarket (onthemarket.com)

✨ Features of this OnTheMarket property scraper

  • Property listing extraction — properties for sale, to rent and new homes from search pages, with 50+ fields per property when details are on.
  • Pagination support — walks every results page for each search.
  • Search by location, URL or property page — type london, manchester or sw1, paste a search URL with filters already applied, or paste a property URL such as https://www.onthemarket.com/details/20309371/.
  • Filtering — price, bedrooms, property type, radius, recently added, furnishing, sort order, keywords, and special filters such as reduced, auction, retirement, shared ownership, pet friendly and student.
  • Beyond the 1,000-result limit — the site stops at about 1,000 results per search. When you ask for more, the scraper splits the search into price ranges on the site's own price steps, so every range fits and you do not pay for tiny ranges.
  • Widen the area automatically — when a location has fewer properties than you asked for, the search radius grows step by step, only as far as needed.
  • Cache, price changes and delistings — use one cache name across scheduled runs to get only new properties and price changes, plus properties that have disappeared.
  • Proxy support — configurable, off by default.
  • No browser required — fast and cheap runs.

🚀 How to scrape OnTheMarket property listings in 5 steps

  1. Sign up for a free Apify account — includes $5 monthly credit.
  2. Open the actor page and click Try for free.
  3. Add one or more locations (for example london) or paste OnTheMarket search URLs.
  4. Click Start and wait for the run to complete.
  5. Download results from the Output tab in JSON, CSV, or Excel format.

You can also run this actor via the Apify API or integrate it directly into your workflows using Zapier, Make, or n8n.

💰 Pricing

This actor uses pay-per-event billing: a charge for each property saved, plus a charge for each property whose full detail page is scraped.

  • New Apify accounts include $5 of free monthly credit.
  • It uses plain HTTP requests, so it costs significantly less to run than browser-based scrapers.
  • Proxies are off by default, which keeps runs cheapest.
  • Turn Scrape property details off for fast, cheaper listing-card data.
  • With a cache name, properties you already have are skipped and not charged.

🔧 Input configuration

The form is short on purpose: paste a URL, optionally add a cache name, and set how many items you want. Everything else sits in the collapsible Filters and options section, because a search URL already carries its own filters.

OnTheMarket property scraper input form with the search URL, cache project name and max items fields marked 1, 2 and 3

The numbered markers in the screenshot show the three fields most runs need:

  1. Search or property URLs — paste an OnTheMarket search page (with any filters already applied) or a property page such as https://www.onthemarket.com/details/20309371/.
  2. Cache project name — optional. Use the same name on every scheduled run to receive only new properties and price changes.
  3. Max items per search — how many properties to save for each search URL (20 by default).
FieldTypeRequiredDefaultDescription
Search or property URLsarray—new-york for-sale searchOnTheMarket search pages (filters in the URL are used as they are) or property pages.
Cache project namestring——Same name on each scheduled run gives only new properties and price changes.
Max items per searchinteger—20Per location or search URL. Above 1,000 the search is split by price automatically.
Filters and options (collapsible)
Locationsarray——Towns, areas or postcode districts such as london, manchester, sw1.
Listing typestring—for-salefor-sale, to-rent or new-homes.
Property typestring—propertyAny, houses, flats-apartments, detached, semi-detached, terraced, bungalows, land, farms-land.
Minimum / maximum price (£)integer——Sale price, or monthly rent.
Minimum / maximum bedroomsinteger——Bedroom range.
Search radius (miles)string—this area only0.25 to 40 miles.
Recently addedstring——Last 24 hours, 3 days or 7 days.
Furnishing (rentals)string——furnished, part-furnished, unfurnished.
Sort by / directionstring—recommended / ascrecommended, price or update_date.
Special filtersarray——reduced, auction, retirement, shared-ownership, pet-friendly, online-viewings, student, house-share.
Include under offer / let agreedboolean—falseAlso return properties already under offer or let agreed.
Keywordsstring——For example garden.
Scrape property detailsboolean—trueOpen each property page for the full data set.
Widen the area if there are too few resultsboolean—trueGrow the radius until Max items can be reached.
Track delistingsboolean—falseNeeds a cache name. Adds records for properties that disappeared.
Max concurrencyinteger—4Parallel requests.
Max requests per minuteinteger—150Keeps the run under the site's rate limit.
Proxy configurationobject—no proxyFor large runs with rate-limit errors.

Supported URL types:

  • Search pages: https://www.onthemarket.com/for-sale/property/london/, /to-rent/..., /new-homes/..., with any filters in the query string
  • Property pages: https://www.onthemarket.com/details/20309371/

📦 OnTheMarket property scraper output data

The dataset is JSON, one record per property, with the keys id, url, title, propertyType, channel, label, price, priceNumeric, pricePeriod, pricePerWeek, shortPrice, priceQualifier, bedrooms, bathrooms, address, locality, postcode, latitude, longitude, features, summary, description, descriptionHtml, images, imageCount, coverImage, floorplans, virtualTours, videos, documents, agentName, agentCompany, agentBranchId, agentPhone, agentAddress, agentWebsite, agentUrl, agentLogo, agentRank, tenure, leaseYearsRemaining, councilTaxBand, keyInfo, epcRating, broadband, mobileReception, stations, schools, areaAveragePrice, areaAverageLabel, crimeLevel, crimeScore, soldNearby, totalViews, listingStatus, isReduced, isRecentlyAdded, isSpotlight, isPremium, isExclusive, isNewHome, hasVirtualTour, pricePerBedroom, priceVsAreaAveragePct, changeType, previousPrice, searchUrl and scrapedAt. With details switched off you get the listing-card fields only.

There is 1 dataset view: Overview, a compact table of id, title, price, bedrooms, bathrooms, address, postcode, type, agent, change type and link.

Output at a glance:

PropertyPriceBedsBathsPostcodeTenureEPC
3 bedroom townhouse for sale£300,00032NE29 9JEAsk agentC
2 bedroom apartment for sale£80,00021NE29 8ATLeasehold—
2 bedroom flat for sale£95,00021NE29 8DNLeaseholdD
2 bedroom terraced house for sale£159,95021NE29 8BQLeaseholdC
3 bedroom terraced house for sale£247,50031NE29 9EAFreehold—

Sample output (raw JSON):

[
{
"id": "20061523",
"url": "https://www.onthemarket.com/details/20061523/",
"title": "3 bedroom townhouse for sale",
"propertyType": "Townhouse",
"channel": "for-sale",
"label": "Spotlight Property",
"price": "£300,000",
"priceNumeric": 300000,
"pricePeriod": null,
"pricePerWeek": null,
"shortPrice": "£300k",
"priceQualifier": null,
"bedrooms": 3,
"bathrooms": 2,
"address": "Bishopbourne Court, North Shields NE29",
"postcode": "NE29 9JE",
"latitude": 55.025684,
"longitude": -1.45621,
"features": [
"Spacious Three-Bedroom Townhouse",
"Impressive Principal Bedroom with Private En-Suite"
],
"images": [
"https://media.onthemarket.com/properties/20061523/1634380724/image-0-1024x1024.jpg",
"https://media.onthemarket.com/properties/20061523/1634380724/image-1-1024x1024.jpg"
],
"imageCount": 14,
"coverImage": "https://media.onthemarket.com/properties/20061523/1634380724/image-0-1024x1024.jpg",
"agentName": "Rook Matthews Sayer - Whitley Bay",
"agentPhone": "020 4645 3863",
"agentUrl": "https://www.onthemarket.com/agents/branch/rook-matthews-sayer-whitley-bay/",
"agentLogo": "https://media.onthemarket.com/agents/companies/845/260218120131859/logo-190x100.png",
"listingStatus": "Added > 14 days",
"isReduced": false,
"isSpotlight": false,
"isPremium": true,
"isExclusive": false,
"isRecentlyAdded": true,
"hasVirtualTour": false,
"changeType": null,
"previousPrice": null,
"searchUrl": "https://www.onthemarket.com/for-sale/property/new-york/?sort-field=recommended",
"scrapedAt": "2026-10-06T17:33:53.983Z",
"locality": "North Shields",
"summary": "Arranged across three floors, this spacious three-bedroom townhouse offers an versatile layout, with generous reception space, two particularly substantial u...",
"description": "Arranged across three floors, this spacious three-bedroom townhouse offers an versatile layout, with generous reception space, two particularly substantial u...",
"descriptionHtml": "<p>Arranged across three floors, this spacious three-bedroom townhouse offers an versatile layout, with generous reception space, two particularly substantia...",
"floorplans": [
"https://media.onthemarket.com/properties/20061523/1634380724/floor-plan-0-original.jpg"
],
"virtualTours": [],
"videos": [],
"documents": [
{
"name": "Full Details",
"url": "http://www.expertagent.co.uk/in4glestates/{1228D913-6598-46D3-B2C8-D176A1DA7F9D}/{bd8957e4-e637-410b-8295-7d216da99a32}/external.pdf",
"brochure": true
}
],
"agentCompany": "Rook Matthews Sayer",
"agentBranchId": 3775,
"agentAddress": "84 Park View, Whitley Bay, NE26 2TH",
"agentWebsite": "https://www.rookmatthewssayer.co.uk",
"tenure": "Ask agent",
"leaseYearsRemaining": null,
"councilTaxBand": null,
"keyInfo": {
"Tenure": "Ask agent",
"Council tax": "Ask agent",
"Broadband": "Ultra-fast 1000Mbps *"
},
"epcRating": "C",
"broadband": {
"type": "ultra-fast",
"maxDownloadMbps": 1000,
"maxUploadMbps": 100
},
"mobileReception": {
"o2": "green",
"three": "green",
"vodafone": "green",
"ee": "green"
},
"stations": [
{
"name": "Cullercoats (Tyne and Wear Metro Station)",
"distance": "1.0mi."
},
{
"name": "Whitley Bay (Tyne and Wear Metro Station)",
"distance": "1.1mi."
}
],
"schools": [
{
"name": "Preston Grange Primary School",
"distance": "0.3mi."
},
{
"name": "John Spence Community High School",
"distance": "0.3mi."
}
],
"areaAveragePrice": 242094,
"areaAverageLabel": "3 bedroom townhouses",
"crimeLevel": "very-low",
"crimeScore": 2,
"soldNearby": [
{
"address": "Eden Place, North Shields NE30",
"propertyType": "Semi-detached house",
"price": "£325,000",
"date": null
},
{
"address": "Solway Avenue, North Shields NE30",
"propertyType": "Semi-detached house",
"price": "£320,000",
"date": null
}
],
"totalViews": "2500+",
"isNewHome": false,
"agentRank": 2,
"pricePerBedroom": 100000,
"priceVsAreaAveragePct": 23.9
}
]

🐍 How to scrape OnTheMarket with Python, JavaScript or the API

Run the actor programmatically with the official Apify clients. Replace <YOUR_API_TOKEN> with the token from your Apify Console.

Python (pip install apify-client):

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("confidential_gnat/onthemarket-property-scraper").call(run_input={
"locations": ["london"],
"channel": "for-sale",
"maxPrice": 500000,
"minBedrooms": 2,
"maxItems": 100,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

JavaScript (npm install apify-client):

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });
const run = await client.actor('confidential_gnat/onthemarket-property-scraper').call({
locations: ['london'],
channel: 'for-sale',
maxPrice: 500000,
minBedrooms: 2,
maxItems: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

cURL — start a run and wait for the dataset:

curl -X POST "https://api.apify.com/v2/acts/confidential_gnat~onthemarket-property-scraper/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"locations": ["london"], "channel": "for-sale", "maxPrice": 500000, "minBedrooms": 2, "maxItems": 100}'

💡 What you can use OnTheMarket property data for

  • Price monitoring and alerts for reduced properties in chosen areas
  • Rental yield and buy-to-let analysis using sale and rent data side by side
  • Estate agent competitor tracking by branch, listings and pricing
  • Lead lists of agents and branches with phone numbers and websites
  • Local market research on tenure, council tax, EPC ratings, broadband and schools

Property investors, estate agents, proptech companies, mortgage brokers and market researchers typically use this data.

⚠️ Limitations & known issues

  • 1,000 results per search — the site never shows more than about 1,000 results for one search. The scraper splits larger searches by price automatically, but if a single price is shared by more than 1,000 listings the first 1,000 are collected and a warning is logged.
  • Rate limiting — fast runs without a proxy can be rate limited. The default of 150 requests per minute stays under it; use a datacenter proxy for large runs.
  • Missing fields — some fields (tenure, council tax, EPC) are only shown by some agents, so they are empty for some properties.
  • UK only — only properties listed on onthemarket.com are covered.

❓ Frequently asked questions

Can I scrape OnTheMarket legally?

The actor only collects data already publicly visible on onthemarket.com — no login, paywall, or private content is accessed. Scraping publicly available data is generally considered lawful (see hiQ Labs v. LinkedIn), but you are responsible for complying with the site's Terms of Service and applicable laws such as GDPR if you process personal data like agent contact details.

What data does the OnTheMarket scraper return?

Price, address, postcode, coordinates, bedrooms, bathrooms, property type, features, images, agent name and phone. With details on you also get the description, floorplans, videos, EPC rating, council tax band, tenure and lease length, broadband and mobile signal, nearby schools and stations, area average price, crime level and nearby sold prices.

Max items per search applies to each location or URL separately. A single search shows at most about 1,000 results, so for larger numbers the actor splits it into price ranges automatically.

Do I need a proxy to scrape onthemarket.com?

No. Proxies are off by default and small and medium runs work without one. For very large runs, enable a datacenter proxy if you see rate-limit errors.

How do I scrape OnTheMarket with Python?

Use the Python example above and iterate over the dataset items returned by the run.

Can I run this OnTheMarket scraper on a schedule?

Yes, with Apify Schedules. Give every scheduled run the same Cache project name and you only receive new properties and price changes, each marked with changeType. Turn on Track delistings to also get records for properties that have disappeared.

What output formats are supported?

JSON, CSV, Excel, XML and RSS, either from the Output tab or through the Apify API.

What if my location has very few properties?

If a location has fewer properties than Max items, the actor widens the search radius step by step until the target is reachable, and logs the radius it used. Turn Widen the area off, or set a radius yourself, to stay in the exact area.

🔗 Other actors you may find useful

ActorDescription
🎓 University Living Housing ScraperScrapes student housing listings and property details from universityliving.com.
🛏️ AmberStudent Accommodation ScraperScrapes student accommodation with pricing, availability, photos, amenities and reviews.
⛪ Church Finder ScraperScrapes church listings with denomination, address, phone, service times and reviews.
🏢 UniAcco Student Accommodation ScraperScrapes UniAcco student accommodation with price range, address, amenities and reviews.
🏠 HousingAnywhere Property ScraperScrapes HousingAnywhere rentals with price, city, coordinates, facilities and images.

💬 Support & contact

If you encounter any issues or have questions, please open an issue or reach out via the Apify Community Forum.

You can also find more of our actors on the Actor Flow page.