OnTheMarket Property Scraper
Pricing
Pay per event
OnTheMarket Property Scraper
Scrape public OnTheMarket UK property listings with prices, agents, coordinates, images, labels, and optional detail-page descriptions.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Scrape public OnTheMarket property listings from UK search pages and listing detail pages.
Use this actor to collect property prices, addresses, bedroom counts, agent contact details, images, coordinates, listing labels, and optional long-form descriptions from OnTheMarket.
What does OnTheMarket Property Scraper do?
OnTheMarket Property Scraper extracts structured property data from public pages on onthemarket.com.
It reads search result pages such as London houses for sale and optionally visits individual property detail pages for richer information.
The output is a clean dataset that can be exported as JSON, CSV, Excel, XML, RSS, or HTML from Apify.
Who is it for?
🏡 Real estate analysts use it to monitor local property supply and asking prices.
📈 Investors use it to compare areas, property types, and price bands.
🏢 Estate agencies use it to benchmark competing listings and agent coverage.
🧭 Relocation teams use it to collect available housing options in target cities.
🧪 Data teams use it to feed property intelligence dashboards and enrichment workflows.
Why use this actor?
The actor converts OnTheMarket pages into a normalized dataset.
You do not need to manually copy prices, addresses, links, and agent details from the website.
You can schedule the actor to run daily or weekly and track market changes over time.
Main use cases
- Track property listings in a location
- Collect comparable homes for pricing analysis
- Monitor newly added and reduced listings
- Build local property supply dashboards
- Enrich internal CRM records with public listing URLs
- Compare agent inventory by branch
- Export property data for spreadsheet analysis
How much does it cost to scrape OnTheMarket properties?
This actor uses pay-per-event pricing.
There is a small start event per run and a per-result event for each property listing saved.
| Event | Free tier | Bronze | Silver | Gold | Platinum | Diamond |
|---|---|---|---|---|---|---|
| Run start | $0.005 | $0.005 | $0.005 | $0.005 | $0.005 | $0.005 |
| Property listing saved | $0.00115 | $0.00100 | $0.00078 | $0.00060 | $0.00040 | $0.00028 |
Example actor charges before any Apify platform credits or plan-specific terms:
| Listings saved | Free tier estimate | Bronze estimate |
|---|---|---|
| 20 listings | $0.028 | $0.025 |
| 100 listings | $0.120 | $0.105 |
| 1,000 listings | $1.155 | $1.005 |
The prefilled input is intentionally small (maxItems: 20, maxPages: 2), so first tests are usually only a few cents of actor charges.
Apify Free plan users can run small tests using their included monthly platform credits; for predictable spend, start with 20 results, review the dataset, and then increase maxItems for production monitoring.
For larger monitoring jobs, set maxItems and maxPages to match the number of listings you actually need.
Input options
You can provide either full OnTheMarket URLs or a location slug.
startUrls accepts search pages and detail pages.
locationSlug can build a URL such as https://www.onthemarket.com/for-sale/property/london/.
searchType supports sale and rental searches.
maxItems limits the total dataset rows.
maxPages limits pagination per search URL.
includeDetails turns on detail-page enrichment.
Example input
{"startUrls": [{ "url": "https://www.onthemarket.com/for-sale/property/london/" }],"maxItems": 20,"maxPages": 2,"includeDetails": false}
Output data
Each dataset item represents one property listing.
The actor stores listing metadata, agent data, media links, coordinates, and scrape metadata.
Optional detail mode can add descriptions and key information fields such as tenure or service charges when they are exposed on the listing page.
Output field table
| Field | Description |
|---|---|
listing_id | OnTheMarket listing identifier |
title | Listing headline |
price | Displayed listing price |
price_qualifier | Price qualifier such as guide price |
address | Public listing address |
property_type | Property type label |
bedrooms | Bedroom count |
bathrooms | Bathroom count |
features | Bullet-point features |
description | Detail-page description when enabled |
key_info | Detail-page key information object |
agent_name | Listing agent or branch name |
agent_phone | Public agent phone number |
agent_branch_url | Agent branch page URL |
agent_logo_url | Agent logo image URL |
latitude | Listing latitude when available |
longitude | Listing longitude when available |
image_urls | Listing image URLs |
detail_url | Listing detail URL |
source_url | Search or detail page that produced the row |
days_since_added_or_reduced | Added/reduced text from the site |
label | Listing label such as Reduced |
is_reduced | Boolean reduced flag |
is_recently_added | Boolean recently-added flag |
scraped_at | ISO timestamp of scraping |
Example output
{"listing_id": "18740866","title": "3 bedroom flat for sale","price": "£390,000","price_qualifier": "Guide price","address": "Headlam Street, London, E1","property_type": "Flat","bedrooms": 3,"bathrooms": 1,"agent_name": "Bairstow Eves - Bow","latitude": 51.52193,"longitude": -0.057377,"detail_url": "https://www.onthemarket.com/details/18740866/"}
How to scrape OnTheMarket search pages
- Open OnTheMarket in your browser.
- Search for a location, sale/rent type, or property category.
- Copy the search result URL.
- Paste it into
startUrls. - Choose
maxItemsandmaxPages. - Run the actor.
- Export the dataset from Apify.
How to scrape OnTheMarket detail pages
You can also paste individual property URLs into startUrls.
Detail URLs usually look like /details/18740866/.
When the actor receives a detail URL, it extracts the detail-page property data directly.
This is useful when you already have a list of known listings.
Tips for best results
Use one or a few targeted search URLs per run.
Keep maxItems low while testing.
Increase maxPages only when you need deeper pagination.
Enable includeDetails when descriptions and key-info fields matter more than speed.
Disable includeDetails for faster market snapshots from search pages.
Integrations
Send results to Google Sheets for quick property review.
Load CSV exports into Excel for price analysis.
Connect the dataset to BigQuery, Snowflake, or a data warehouse using Apify integrations.
Trigger the actor from Make or Zapier when your workflow needs fresh market data.
Use webhooks to notify your system when a monitoring run finishes.
API usage with Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/onthemarket-property-scraper').call({startUrls: [{ url: 'https://www.onthemarket.com/for-sale/property/london/' }],maxItems: 20,maxPages: 2});console.log(run.defaultDatasetId);
API usage with Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_APIFY_TOKEN')run = client.actor('automation-lab/onthemarket-property-scraper').call(run_input={'startUrls': [{'url': 'https://www.onthemarket.com/for-sale/property/london/'}],'maxItems': 20,'maxPages': 2,})print(run['defaultDatasetId'])
API usage with cURL
curl -X POST "https://api.apify.com/v2/acts/automation-lab~onthemarket-property-scraper/runs?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"startUrls":[{"url":"https://www.onthemarket.com/for-sale/property/london/"}],"maxItems":20,"maxPages":2}'
MCP access
Use this actor from MCP-compatible tools through the Apify MCP server.
Claude Code example MCP URL:
https://mcp.apify.com/?tools=automation-lab/onthemarket-property-scraper
Add it from Claude Code with:
$claude mcp add apify-onthemarket --transport http "https://mcp.apify.com/?tools=automation-lab/onthemarket-property-scraper"
Claude Desktop can use this JSON configuration:
{"mcpServers": {"apify-onthemarket": {"url": "https://mcp.apify.com/?tools=automation-lab/onthemarket-property-scraper"}}}
Example prompts:
- “Scrape 20 OnTheMarket listings in London and summarize price ranges.”
- “Find recently reduced flats from this OnTheMarket URL.”
- “Collect property listings and return agent names and phone numbers.”
Scheduling
Schedule the actor on Apify to monitor the same market regularly.
Daily runs can help detect new supply and price reductions.
Weekly runs are useful for slower trend reporting.
Use consistent input URLs if you want comparable time-series data.
Data freshness
The actor scrapes live public pages when the run starts.
The scraped_at field records when each row was saved.
OnTheMarket content can change at any time, especially prices, availability, and agent details.
Limitations
The actor can only scrape public pages that OnTheMarket returns to the run.
Some listings may have missing fields if OnTheMarket does not expose them in page data.
Detail-page enrichment is slower because it requests one extra page per listing.
The actor does not bypass login-only or private content.
FAQ
Can I scrape both sale and rental listings?
Yes. Use a sale or rental URL in startUrls, or set searchType to for-sale or to-rent when using locationSlug.
Does this actor visit every detail page?
Only when includeDetails is enabled. Search-only mode is faster and still returns core listing fields.
Troubleshooting
If you receive fewer results than expected, increase maxPages or check whether the source search has enough listings.
If a search URL returns no data, open it in a browser and confirm it is a valid OnTheMarket URL.
If detail descriptions are missing, enable includeDetails.
If the run is slow, disable detail mode and scrape from search pages only.
Legality and responsible use
This actor is designed to extract publicly available information from OnTheMarket pages.
You are responsible for using the data in compliance with applicable laws, website terms, and privacy rules.
Do not use scraped data for unlawful discrimination, harassment, spam, or other prohibited activities.
Related scrapers
You may also find these Automation Lab actors useful:
- https://apify.com/automation-lab/zillow-scraper
- https://apify.com/automation-lab/airbnb-listing
- https://apify.com/automation-lab/booking-scraper
- https://apify.com/automation-lab/rightmove-scraper
- https://apify.com/automation-lab/realla-scraper
Changelog
Initial version extracts OnTheMarket search and detail-page property data using HTTP and embedded JSON.