OnTheMarket Property Scraper avatar

OnTheMarket Property Scraper

Pricing

Pay per event

Go to Apify Store
OnTheMarket Property Scraper

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

Stas Persiianenko

Maintained by Community

Actor 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.

EventFree tierBronzeSilverGoldPlatinumDiamond
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 savedFree tier estimateBronze 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

FieldDescription
listing_idOnTheMarket listing identifier
titleListing headline
priceDisplayed listing price
price_qualifierPrice qualifier such as guide price
addressPublic listing address
property_typeProperty type label
bedroomsBedroom count
bathroomsBathroom count
featuresBullet-point features
descriptionDetail-page description when enabled
key_infoDetail-page key information object
agent_nameListing agent or branch name
agent_phonePublic agent phone number
agent_branch_urlAgent branch page URL
agent_logo_urlAgent logo image URL
latitudeListing latitude when available
longitudeListing longitude when available
image_urlsListing image URLs
detail_urlListing detail URL
source_urlSearch or detail page that produced the row
days_since_added_or_reducedAdded/reduced text from the site
labelListing label such as Reduced
is_reducedBoolean reduced flag
is_recently_addedBoolean recently-added flag
scraped_atISO 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

  1. Open OnTheMarket in your browser.
  2. Search for a location, sale/rent type, or property category.
  3. Copy the search result URL.
  4. Paste it into startUrls.
  5. Choose maxItems and maxPages.
  6. Run the actor.
  7. 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 ApifyClient
client = 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.

You may also find these Automation Lab actors useful:

Changelog

Initial version extracts OnTheMarket search and detail-page property data using HTTP and embedded JSON.