Marktplaats.nl Scraper (search, radius, price & new-ad alerts) avatar

Marktplaats.nl Scraper (search, radius, price & new-ad alerts)

Pricing

from $0.80 / 1,000 result items

Go to Apify Store
Marktplaats.nl Scraper (search, radius, price & new-ad alerts)

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

Viktor Dubnytskiy

Maintained by Community

Actor 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):

FieldExample valueWhat it is
idmp-m2438655770Stable row key (mp- + Marktplaats ad id)
titleBatterij Gazelle Grenoble C8 HMBAdvertisement headline
price / currency295 / EURNumeric price in euros
priceTypemin_bidfixed, min_bid, negotiable, free, on_request, exchange, reserved, …
conditionZo goed als nieuwCondition, when the seller filled that attribute
city's-GravenhageTown the ad is listed in (lat 52.10603, lon 4.32769)
dateTextVandaagPosting date exactly as Marktplaats prints it
isReservedfalseWhether 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

FieldMeaningDefault
queriesFree-text searches, e.g. ["fiets"]; each is paginated separately["fiets"]
l1CategoryId / l2CategoryIdMarktplaats numeric category / sub-category ids from its URLs, e.g. 445—
postcodeDutch postcode for a radius search, e.g. 1012AB—
distanceMetersRadius around postcode in metres, e.g. 10000—
priceFrom / priceToPrice range in whole euros, e.g. 50 / 500—
sortBySORT_INDEX, PRICE or LOCATIONSORT_INDEX
sortOrderDECREASING or INCREASINGDECREASING
maxPagesPages per query, 30 ads each5
maxItemsStop after this many ads20
modescrape, or monitor for new/changed onlyscrape
webhookUrl, telegramBotToken, telegramChatIdWhere monitor-mode change summaries are sent—

Pricing

EventPrice
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.
  • priceType and isReserved are 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; dateText is 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.