Onthemarket scraper[$1.5/1k] avatar

Onthemarket scraper[$1.5/1k]

Pricing

from $1.49 / 1,000 results

Go to Apify Store
Onthemarket scraper[$1.5/1k]

Onthemarket scraper[$1.5/1k]

Extract detailed property listings from OnTheMarket in seconds. Scrape both properties for sale and rent using search result URLs or building a query just by some clicks, Get structured JSON including prices, location, features, images, estate agent details and more, all ready for analysis.

Pricing

from $1.49 / 1,000 results

Rating

4.4

(5)

Developer

Melah Elkanah

Melah Elkanah

Maintained by Community

Actor stats

5

Bookmarked

10

Total users

6

Monthly active users

0.15 hours

Issues response

6 days ago

Last modified

Share

OnTheMarket Scraper

Scrape property listings from OnTheMarket.com: for sale, to rent, and new homes. Get clean, structured data: price, address, bedrooms, features, images, coordinates, agent details and more.

You can start a run in two ways:

  1. Search by URL: paste OnTheMarket search URLs.
  2. Search by query: fill in location and filters, just like using the website's search form.

You can also use both in the same run.


Option 1: Search by URL

Best when you already have a search set up on the website.

  1. Go to onthemarket.com and run your search (location, price, bedrooms, filters, etc.).
  2. Copy the URL from your browser's address bar.
  3. Paste it into Search URLs (startUrls).
  4. Set Max items and click Start.

Example input:

{
"startUrls": [
{ "url": "https://www.onthemarket.com/for-sale/property/london/" }
],
"maxItems": 100
}

You can add multiple URLs, and each one will be scraped. Note that maxItems is a single limit for the whole run, not per URL. With 3 URLs and maxItems: 100, you get 100 listings in total, and the run stops once that limit is reached.


Option 2: Search by query

Best when you don't want to build the URL yourself, or want to run the same filters across many locations. It works like the search form on the website.

Fill in Locations and any filters. The filters apply to all locations you list, and maxItems is shared across all of them (not per location).

Example: 2 to 3 bedroom flats to rent in Bristol and Manchester, up to £1,800 pcm, added in the last 7 days:

{
"location": ["Bristol", "Manchester"],
"operationType": "to-rent",
"radiusMiles": "2",
"maxPrice": 1800,
"minBedrooms": 2,
"maxBedrooms": 3,
"propertyType": ["flats-apartments"],
"addedToSite": "7-days",
"maxItems": 200
}

Input reference

FieldTypeDescriptionDefault
maxItemsintegerMax number of listings to scrape in total for the whole run, shared across all URLs and locations (not per URL or per location)100
startUrlsarrayOnTheMarket search URLsnone
locationarray of stringsPlace names or postcodes (e.g. "Bristol", "BS1")none
operationTypestringfor-sale, to-rent, new-homesfor-sale
radiusMilesstring0 (this area only), 0.25, 0.5, 1, 2, 3, 4, 5, 7.5, 10, 15, 20, 30, 400
minPrice / maxPriceintegerPrice rangenone
minBedrooms / maxBedroomsintegerBedroom rangenone
propertyTypearraydetached, semi-detached, terraced, bungalow, flats-apartments, farms-land, park-homesnone
addedToSitestringany, 24-hours, 3-days, 7-daysany
toursAndMediaarraymatterport-3d-tour, 3d-tours, videonone
onlyShowarrayshared-ownership, new-build-homes, retirement-homes, auction, accessible-features, greener-choice, recently-reducednone
dontShowarrayshared-ownership, new-build-homes, retirement-homes, auctionnone

Tips

  • Postcodes work. Use them (e.g. BS1) for tighter areas than a city name.
  • Widen with radius. radiusMiles expands the search around each location.
  • Fresh listings only. Use addedToSite: "24-hours" for daily monitoring runs.
  • Exclude noise. Use dontShow to drop auctions, retirement homes, etc.
  • Mixing modes. URLs and query fields can run together; results come from both.
  • maxItems is global. It is one cap for the entire run, shared across all URLs and locations, not split between them. If you search several locations, raise it (e.g. 3 locations × 100 each → set maxItems: 300).
  • Keep maxItems realistic. It keeps runs fast and cheap.

Output

Each listing is one dataset item:

{
"sourceType": "search url",
"url": "https://www.onthemarket.com/details/7846308/",
"id": "7846308",
"title": "6 bedroom maisonette to rent",
"address": "7 St Stephens Street, City Centre, Bristol BS1",
"price": "£4,530 pcm (£1,045 pw)",
"shortPrice": "£4,530",
"priceQualifier": null,
"propertyType": "Maisonette",
"bedrooms": 6,
"bathrooms": 2,
"addedOrReduced": "Added < 7 days",
"recentlyAdded": true,
"features": [
"Online viewing",
"Student",
"473 sq ft floor area",
"Nearest station 0.8mi.",
"Furnished",
"Nearest school 0.2mi."
],
"images": ["https://media.onthemarket.com/properties/7846308/1652743891/image-0-480x320.jpg"],
"coverImage": "https://media.onthemarket.com/properties/7846308/1652743891/image-0-480x320.jpg",
"matterportTour": false,
"latitude": 51.4548247,
"longitude": -2.5958018,
"agentName": "Berkeley Property Management - Bristol",
"agentPhone": "0117 444 9527",
"agentLogo": "https://media.onthemarket.com/agents/branches/49925/181123103657046/logo-190x100.png",
"agentBranchUrl": "https://www.onthemarket.com/agents/branch/berkeley-property-management-bristol/"
}

Output fields

FieldDescription
sourceTypeHow the listing was found (e.g. search url)
url / idListing page URL and OnTheMarket listing ID
titleListing headline
addressFull address
pricePrice as displayed (includes pcm/pw for rentals)
shortPriceHeadline price only
priceQualifierQualifier such as "Guide price", if any (else null)
propertyTypeProperty type (e.g. Maisonette)
bedrooms / bathroomsCounts
addedOrReducedWhen added or reduced
recentlyAddedtrue if recently added
featuresListing feature tags (furnished, floor area, nearest station/school, etc.)
images / coverImageImage URLs / main image
matterportTourtrue if a Matterport 3D tour exists
latitude / longitudeCoordinates
agentName / agentPhone / agentLogo / agentBranchUrlListing agent details

Export results from the dataset as JSON, CSV, Excel, or via the API..