top of page

How to scrape commercial real estate data from OnTheMarket using the Minexa API

Jul 15
2 min read

Commercial property data sitting inside a browser tab is not useful to a pipeline. Structured rows in a dataset are. This guide shows how to extract commercial real estate listings from OnTheMarket using the Minexa API, covering every step from scraper training to a working Python request.

Watch the full walkthrough first

The video below covers the complete extraction workflow on OnTheMarket's commercial listings page for Kent. Watch it before going through the screenshots so the steps make sense in sequence.


Step 1: Open Minexa and navigate to OnTheMarket

Go to onthemarket.com/for-sale/commercial/property/kent/ in Chrome. Open the Minexa Chrome extension. The extension detects the page automatically.

Once the page loads, click the extension icon and confirm you are on the right page using the 'I'm on the right page' button.

Step 2: Confirm pagination and choose extraction depth

Minexa detects the pagination method on OnTheMarket and displays it for confirmation. You then choose whether to extract only the listing page or also follow each property link to scrape detail pages.

After confirming pagination, select 'single list' to extract only the listing rows, or 'list and linked details' to go deeper into each property page.

Step 3: Train the scraper and review extracted fields

Minexa highlights the full listing container automatically. After clicking 'create scraper', all detected data points appear with navigation controls to preview each column.

Key fields extracted per listing include listing_address, price_sqft, property_description, and tooltip_id. The tooltip_id field encodes a numeric property identifier per record, for example 'tooltip-19396479', which can be used for reliable deduplication across paginated runs without relying on address matching.

Sample extracted data

[{"listing_address":"208-212 High St Orpington BR6 0JN","price_sqft":"4,416 sq ft","property_description":"Retail property (high street) for sale","tooltip_id":"tooltip-19396479"},{"listing_address":"12 Park Av Dover CT16 1HE","price_sqft":"£1,350,000 | 4,910 sq ft","property_description":"Mixed use for sale","tooltip_id":"tooltip-19395681"}]

The price_sqft field surfaces both the asking price and the floor area as a combined string per record, for example '£975,000 | 1,780 sq ft', which means both values are available for parsing without a secondary request. The property_image_links field returns an array of typed objects per listing, encoding the WebP srcset URL, the JPG src URL, and the alt text all within a single traversable structure.

Step 4: Get the API request and run at scale

Click 'API request' inside the extension to generate the scraper ID and a ready-to-run Python snippet. Use the endpoint below with your scraper ID to call the extraction programmatically.

import requests
url = "https://api.minexa.ai/data"
payload = {"scraper_id": 5291,"columns": "top_20","urls": ["https://www.onthemarket.com/for-sale/commercial/property/kent/"]}
headers = {"Content-Type": "application/json","x-api-key": "YOUR_API_KEY"}
response = requests.post(url, json=payload, headers=headers)
print(response.json())

Results export to Excel or JSON directly from the interface. For ongoing collection across multiple county URLs, set up a cron job on your side and pass each URL into the same API call using the stable scraper ID.

Get started at minexa.ai. For more on real estate data pipelines, see Scraping real estate data: what actually works and where most pipelines break.

Recent Posts

See All

Comments


Heading 2

bottom of page