Marktplaats Scraper avatar

Marktplaats Scraper

Pricing

from $0.50 / 1,000 run start fees

Go to Apify Store
Marktplaats Scraper

Marktplaats Scraper

Search Marktplaats and get classified ads as rows: title, price and what that price means (fixed, minimum bid, auction, swap, on request), city with latitude and longitude, seller id, name and verification, condition, delivery and promotion flags.

Pricing

from $0.50 / 1,000 run start fees

Rating

0.0

(0)

Developer

SR

SR

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

4 hours ago

Last modified

Share

A Marktplaats scraper that returns classified ads with the price, what that price actually means, the seller, and the exact coordinates of the ad. No login, no API key, no browser.

Marktplaats is the dominant classifieds site in the Netherlands: 245.000 ads under "fiets" and 259.000 under cars as this was written. Nothing on the Apify Store covers it.

What you get

  • A price you can trust, because price_type tells you what it is. Marktplaats mixes fixed prices, minimum bids, auctions, swaps, free items and price-on-request in the same result list. Treating them all as an asking price is the classic error, and it turns a bidding lot into a bargain that is not there
  • Latitude and longitude on every ad, which the rendered card never shows. Distance filtering and map work need no geocoding step
  • Seller id, name and verification status, so one seller's whole inventory can be grouped and a trader can be told apart from a private ad
  • Promotion flags: whether the seller paid to push the ad, and which promotion they bought
  • Condition and delivery as their own fields, plus every other attribute the ad carries
  • Real pagination. The site reports how many pages it allows and the walk follows the path form that actually moves
  • Charged per ad you receive, plus a flat $0,002 start fee. No per-compute-unit charges

Why scrape Marktplaats

Second-hand pricing is the least documented price data there is. New goods have RRPs, comparison sites and feeds; used goods have whatever someone is asking today in one town. For anyone in recommerce, refurbished electronics, bicycles, cars or furniture, Marktplaats is where the Dutch market actually clears.

There is no public API. Every result page carries its ads as JSON inside the page for the browser to render, and that payload is richer than what gets drawn: coordinates, seller ids, promotion types and the price semantics all live there and never reach the card.

The price semantics are the part that decides whether your dataset is usable. An ad at "€ 160" might be a fixed price, the opening bid of an auction, or a placeholder on an ad whose real price is "neem contact op". This actor reports the amount only where there is one, and names the type in every case.

Input

FieldTypeRequiredDefaultWhat it does
querystringyesfietsWhat to search for. Dutch terms work best
urlstringnoA marktplaats.nl search or category URL to read instead. Takes precedence
sortselectnorelevanceRelevance, newest, price ascending or descending
price_min / price_maxintegernoPrice bounds in euros
limitintegerno60Ads to return, 1 to 900
retriesintegerno3Retry attempts per page

Output

{
"position": 1,
"item_id": "m2437697090",
"url": "https://www.marktplaats.nl/v/a2437697090",
"title": "damesfiets",
"price": 160.0,
"price_cents": 16000,
"price_type": "minimum bid",
"price_type_code": "MIN_BID",
"currency": "EUR",
"city": "Rosmalen",
"country": "NL",
"latitude": 51.720768247421,
"longitude": 5.3649127431692,
"posted_label": "Vandaag",
"seller_id": 4063331,
"seller_name": "niste065",
"seller_verified": false,
"condition": "Gebruikt",
"delivery": "Ophalen",
"is_promoted": true,
"promotion_type": "DAGTOPPER",
"is_reserved": false,
"images_count": 3
}

Use cases

Second-hand price research. Run a model name, filter to price_type: "fixed price", and the distribution is the real Dutch resale market for that item. Excluding minimum bids and auctions matters more than it sounds: they cluster low and drag any average down by a third.

Recommerce sourcing. Sort by price ascending with a floor, and check condition and delivery. Because every ad carries coordinates, you can restrict to what is collectable within an hour's drive before you look at a single listing by hand.

Watching a trader. seller_id groups a seller's entire inventory and is_business_seller separates traders from private sellers. Schedule a run, store ids, and you see what they take in, what sells, and what has been sitting.

Market supply monitoring. totalResultCount on every run tells you how many ads exist for a query. Tracked over weeks, that number is a supply curve for a category, and it moves before prices do.

How it compares

this actorapify/e-commerce-scraping-tool
Per 1.000 ads$1,80$6,00
Covers Marktplaatsyesgeneric, needs configuring
Price type semantics7 types namedno
Coordinates per adyesno
Seller id and verificationyesno
Promotion flagsyesno

Honest about the other side: apify/e-commerce-scraping-tool has 575 monthly users and points at almost any shop. It is a breadth tool. This one knows one marketplace's data model.

Pricing

Two events. A flat run_start of $0,002 covers the run, and listing costs $0,0018 per ad returned, which is $1,80 per 1.000. All pricing is pay-per-event, so beyond the start fee you only pay for ads you actually receive. No per-compute-unit charges.

Limits and gotchas

  • Pagination is a path segment, not a query parameter. ?page=2 returns HTTP 200 with page one's ads. This actor uses /p/2/, which is the form that moves. Worth knowing if you build your own URLs to pass into url.
  • Not every ad has a price. Price-on-request, swap-only and see-description ads carry no number by design. price is null and price_type says which. The run summary counts them.
  • Coordinates are approximate for private sellers: Marktplaats reports a point near the ad rather than an address.
  • description is the listing excerpt, not the full ad text. Opening each ad would be a second fetch per row and is not part of this actor.
  • Promoted ads sit at the top of most result sets. Filter on is_promoted before computing market statistics.
  • 900 ads per run across 30 pages, and the site caps how deep any single search goes; the summary reports its own ceiling.

FAQ

Can I scrape Marktplaats without an API key? Yes. Every result page carries its ads as JSON for the browser to render, and that is what this actor reads. There is no credential in the input.

Why do some ads have no price? Because the seller did not set one. Marktplaats supports price-on-request, swap-only and see-description ads. Those return a null price and a price_type saying so, rather than a misleading zero.

Does it return the location of an ad? Yes, city plus latitude and longitude on every row, straight from the payload.

Can I scrape a category instead of a search? Yes. Paste any marktplaats.nl listing URL into url, including one with filters already applied.

How do I track one seller? Every row carries seller_id. Run a broad search for their category, group by that id, and repeat on a schedule.