OnTheMarket Scraper — UK Property, Prices & Days Listed
Pricing
from $1.83 / 1,000 property results
OnTheMarket Scraper — UK Property, Prices & Days Listed
Scrape OnTheMarket UK property listings by location & operation (sale/rent). Returns numeric price, days listed, Reduced flag, agent name & phone, GPS, images, parse confidence per record. Pay per result.
Pricing
from $1.83 / 1,000 property results
Rating
0.0
(0)
Developer
Vitalii Bondarev
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
4 days ago
Last modified
Categories
Share
OnTheMarket Properties Scraper
Scrape property listings from OnTheMarket.com — the UK's leading property portal. Extract properties for sale or to rent by location, with bedroom, bathroom, and price filters.
What you get (20+ fields per property)
| Field | Description |
|---|---|
id | OTM property ID |
title | Full property title (e.g. "2 bedroom flat for sale") |
operation | sale or rent |
property_type | Flat, House, Studio, etc. |
address | Full address string |
price | Numeric price in GBP |
price_text | Original price string (e.g. "£300,000") |
price_qualifier | e.g. "Offers in excess of", "Guide price" |
bedrooms | Number of bedrooms |
bathrooms | Number of bathrooms |
location_lat / location_lon | GPS coordinates |
agent_name | Estate agency name |
agent_telephone | Agent phone number |
url | Direct link to the property listing |
images | Array of image objects (default + webp URLs) |
thumbnail | First image URL |
days_listed | Listing age label (e.g. "Added today", "Reduced > 14 days") |
recently_added | Boolean |
reduced | Boolean — price was reduced |
exclusive | Boolean — OTM exclusive listing |
features | Array of property feature strings |
Input
| Parameter | Type | Description |
|---|---|---|
operation | string | sale or rent (default: sale) |
location | string | Location slug from OTM URL (e.g. london, manchester, bristol) |
minBeds | integer | Minimum bedrooms |
maxBeds | integer | Maximum bedrooms |
priceMin | integer | Minimum price (GBP) |
priceMax | integer | Maximum price (GBP) |
maxItems | integer | Max properties to return (default: 100; 0 = all) |
proxyConfiguration | object | Proxy settings (RESIDENTIAL GB recommended) |
Finding the location slug
Visit OnTheMarket.com, search for a location, and copy the slug from the URL:
https://www.onthemarket.com/for-sale/property/london/→ slug islondonhttps://www.onthemarket.com/for-sale/property/west-london/→ slug iswest-londonhttps://www.onthemarket.com/to-rent/property/edinburgh/→ slug isedinburgh
Pricing
Pay per result — you are charged only for properties actually returned:
property-item: $0.00189 per property ($1.89 per 1,000)
Usage examples
50 cheapest 2-bed flats for rent in London under £2,500/month:
{"operation": "rent","location": "london","minBeds": 2,"maxBeds": 2,"priceMax": 2500,"maxItems": 50}
All 3+ bed houses for sale in Manchester between £200k–£500k:
{"operation": "sale","location": "manchester","minBeds": 3,"priceMin": 200000,"priceMax": 500000,"maxItems": 200}
Technical notes
- Data source:
__NEXT_DATA__embedded Redux state (no scraping of CSS classes — structural JSON extraction only). - Proxy: Apify RESIDENTIAL GB proxy prefilled — recommended for reliable access.
- Pagination: up to 34 pages × 30 results = ~1,020 properties per search (OTM platform limit).
- Parse confidence: every record includes
parse_confidence(0–1) andwarningsso you know immediately if OTM changed their data structure.
More scrapers from our toolkit
Building a data pipeline? These actors pair well with this one — each runs on your own Apify account with the same pay-per-result pricing, no subscription:
- Dubai Property Scraper
- Realtor Scraper
- Redfin Scraper
- Rightmove Listings
- Zillow Scraper
- Zoopla Properties Scraper
Chain any of them together from the Integrations tab (the Run succeeded trigger) to build a multi-step workflow — one actor's output feeds the next.
Use it from your existing tools
Use with Claude Desktop / Cursor / Cline (MCP)
Load this actor as a tool in your AI assistant. Call it directly from your AI assistant via the Apify MCP server — no Store browsing needed. Paste this into your MCP client config (e.g. claude_desktop_config.json) and restart the client:
{"mcpServers": {"apify-onthemarket-properties-scraper": {"command": "npx","args": ["-y","@apify/actors-mcp-server","--tools","bovi/onthemarket-properties-scraper"],"env": {"APIFY_TOKEN": "YOUR_APIFY_TOKEN"}}}}
Replace YOUR_APIFY_TOKEN with your own Apify API token (free at apify.com → Settings → Integrations). Curated to a handful of tools so the agent selects reliably.
Works with Clay
Run this actor as an HTTP enrichment step inside a Clay table:
- Method:
POST - URL:
https://api.apify.com/v2/acts/bovi~onthemarket-properties-scraper/run-sync-get-dataset-items?token={{apify_token}} - Body (JSON): map your Clay columns to the actor input (see the Input section above), e.g.
{"location": "{{clay_column}}"}
The run finishes synchronously and returns the dataset rows straight into your Clay table. It runs on Apify's cloud under your own token and usage. Synchronous runs must complete within 300 seconds.