Marktplaats.nl Scraper (search, radius, price & new-ad alerts)
Pricing
from $0.80 / 1,000 result items
Marktplaats.nl Scraper (search, radius, price & new-ad alerts)
Marktplaats scraper for marktplaats.nl: search by keyword, category, postcode radius and price, and get flat rows with price and price type, condition, city, coordinates, photos and every listing attribute. Monitor mode alerts on new listings, price changes and reservations. No login, no proxy.
Pricing
from $0.80 / 1,000 result items
Rating
0.0
(0)
Developer
Viktor Dubnytskiy
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
13 days ago
Last modified
Categories
Share
A Marktplaats scraper for marktplaats.nl, the largest Dutch classifieds site: give it keywords plus optional category, postcode radius and price filters, and every matching advertisement comes back as one flat row. In monitor mode it returns only what changed since your last run — new ads, price changes and ads that just went reserved.
What you get — example output
One row per advertisement. Real values from the example dataset (query fiets):
| Field | Example value | What it is |
|---|---|---|
id | mp-m2438655770 | Stable row key (mp- + Marktplaats ad id) |
title | Batterij Gazelle Grenoble C8 HMB | Advertisement headline |
price / currency | 295 / EUR | Numeric price in euros |
priceType | min_bid | fixed, min_bid, negotiable, free, on_request, exchange, reserved, … |
condition | Zo goed als nieuw | Condition, when the seller filled that attribute |
city | 's-Gravenhage | Town the ad is listed in (lat 52.10603, lon 4.32769) |
dateText | Vandaag | Posting date exactly as Marktplaats prints it |
isReserved | false | Whether the item is already reserved for a buyer |
params | {"delivery": "Ophalen", "condition": "Zo goed als nieuw"} | Every listing attribute as label → value |
Full field list: id, url, platform, country, title, description (search snippet), price, currency, priceLabel, priceNegotiable, priceType, categoryId, condition, city, lat, lon, images[], sellerId, sellerName, sellerType, isPromoted, priorityProduct, isReserved, dateText, traits[], params{}, query, rank, source, scrapedAt.
Use cases
- Reselling and sourcing: watch a keyword inside a postcode radius and get an alert the minute a cheap unit is posted.
- Price research: pull a whole category with price, price type and condition to see what things actually sell for in the Netherlands.
- Trade-in and stock monitoring: dealers track how long comparable items stay online and when they are reserved.
How it works
The actor queries Marktplaats's own search endpoint, the same one the website uses, so rows come back structured instead of parsed out of HTML — no login, no cookies, no proxy. Each query is paginated separately, 30 ads per page, until maxPages or maxItems is hit. In monitor mode the run compares the current result set with the state saved by the previous run of the same Task and pushes only new, re-priced or newly reserved ads, with an optional webhook or Telegram summary.
Input
| Field | Meaning | Default |
|---|---|---|
queries | Free-text searches, e.g. ["fiets"]; each is paginated separately | ["fiets"] |
l1CategoryId / l2CategoryId | Marktplaats numeric category / sub-category ids from its URLs, e.g. 445 | — |
postcode | Dutch postcode for a radius search, e.g. 1012AB | — |
distanceMeters | Radius around postcode in metres, e.g. 10000 | — |
priceFrom / priceTo | Price range in whole euros, e.g. 50 / 500 | — |
sortBy | SORT_INDEX, PRICE or LOCATION | SORT_INDEX |
sortOrder | DECREASING or INCREASING | DECREASING |
maxPages | Pages per query, 30 ads each | 5 |
maxItems | Stop after this many ads | 20 |
mode | scrape, or monitor for new/changed only | scrape |
webhookUrl, telegramBotToken, telegramChatId | Where monitor-mode change summaries are sent | — |
Pricing
| Event | Price |
|---|---|
| result | $0.001 per listing ($1 per 1,000) |
| monitor-check | $0.005 per monitor run |
| change | $0.001 per new/changed listing |
Charged only for listings actually pushed — an empty run costs you nothing.
Why this actor
- Postcode + radius search, so you can watch only what is drivable from your address.
priceTypeandisReservedare kept, so "bieden" ads and already-sold items are distinguishable instead of silently priced.- Monitor mode with new-ad and price-change alerts, delivered by webhook or Telegram.
- No Marktplaats account, no cookies and no proxy configuration.
- Every listing attribute survives in
params, including brand and delivery method.
Limits
- Listing detail pages are not opened: the full description, seller phone and view counts are not included (search snippets and attributes are).
- Marktplaats shows relative dates in search;
dateTextis passed through unchanged.
FAQ
Can I monitor new listings for a search? Yes. Save your input as a Task, set mode: monitor and schedule it. Every run then returns only ads that are new, re-priced or newly reserved since the previous run, and can POST a summary to webhookUrl or a Telegram chat.
Can I search only near my city? Yes — set postcode to a Dutch postcode like 1012AB and distanceMeters to the radius, e.g. 10000 for 10 km, and optionally sort by LOCATION.
Do I need a Marktplaats login or a proxy? No. The actor reads the site's public search endpoint, so there is nothing to configure and no account to risk.
Changelog
- 0.1: initial release — search, filters, monitor mode.
If this actor saved you time, please leave a review on its Store page — it is the main way other buyers find it. Bug reports and field requests are welcome in the Issues tab.