Marktplaats Car Scraper - Dutch Car Listings, Prices & Dealers avatar

Marktplaats Car Scraper - Dutch Car Listings, Prices & Dealers

Pricing

from $1.50 / 1,000 result items

Go to Apify Store
Marktplaats Car Scraper - Dutch Car Listings, Prices & Dealers

Marktplaats Car Scraper - Dutch Car Listings, Prices & Dealers

Scrape Marktplaats.nl car listings with prices, mileage, specs and dealer details. 21 fields per car, no proxy needed, one flat price per result.

Pricing

from $1.50 / 1,000 result items

Rating

0.0

(0)

Developer

Yusuke Suda

Yusuke Suda

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Marktplaats Car Scraper — Dutch car listings, prices and dealers

Marktplaats is the largest classifieds site in the Netherlands, and its car section is where most Dutch used cars are listed, by dealers and by private sellers alike. This Actor turns the car listings into a clean table: what the car is, what it costs, and who is selling it.

Press Start. The defaults return listings with no configuration needed.

What a row looks like

{
"title": "Mercedes-Benz C-klasse 180 CGI BlueEFFICIENCY Business Class",
"make": "Mercedes-Benz",
"model": "C-Klasse",
"year": 2011,
"mileage_km": 91317,
"fuel_type": "Benzine",
"gearbox": "Automaat",
"engine_capacity_ccm": 1796,
"price": 11995,
"currency": "EUR",
"city": "Almere",
"seller_name": "LDK automotive",
"seller_type": "professional",
"dealer_id": "10448340",
"posted_at": "2026-09-17",
"source_url": "https://www.marktplaats.nl/v/auto-s/mercedes-benz/m2437728568-mercedes-benz-c-klasse-180-cgi-blueefficiency-business-class",
"thumbnail_url": "https://images.marktplaats.com/api/v1/hz-mp-pro-listing/images/6febfbf9-5fd2-4911-8bac-ce6b9cc93e8f?rule=ecg_mp_eps$_82.jpg",
"external_id": "m2437728568"
}

Each row has 24 columns and most carry 22 of them, because Marktplaats does not fill in every detail: in a 100-row sample the engine power was there 20 times and the engine size 8. Every row also has source_site and scraped_at. Where a dealer is identified, the identity comes with the row — no second request and no extra charge.

Read this part before you buy: a seller is named only when Marktplaats itself labels the listing as a business. That is about 13 in 100 rows on a default run. Marktplaats leaves most sellers unlabelled, and an unlabelled seller is treated as a private person: seller_name, seller_url, dealer_id and seller_type all come back empty. seller_url needs a labelled dealer who also lists a website, which no row in that sample had. Some of those unlabelled sellers really are dealers, and this Actor will not guess — a profile picture or a website in a profile is not proof of a business, and guessing would mean publishing private people's names. You still get the car, the price and the city on every row. Phone numbers, email addresses and sellers' descriptions are never collected, for anyone.

What people use it for

Price monitoring, where you re-run a saved search on a schedule and watch a segment of the Dutch market move. Dealer and inventory research, where the seller fields matter as much as the cars. And feeding a comparison or valuation tool that needs Dutch market data it cannot get from an official API.

Input

FieldWhat it does
searchTermsMakes to filter by. Leave empty for everything.
postedAfterOnly keep listings posted on or after this date (ISO 8601). Marktplaats shows dates by day, so this filter works by day. Handy for daily runs that should return just what is new.
maxItemsHard stop, so your bill is predictable.
proxyConfigurationOff by default. Most runs do not need one.

There is no location input. Marktplaats only offers distance filtering through an internal endpoint that its robots.txt asks crawlers not to use, and this Actor respects that. If you pass a location anyway, the run stops and tells you, rather than quietly returning the whole country and charging you for it. Filter by city in your own pipeline instead.

Pricing

$3.00 per 1,000 listings, dropping to $1.50 per 1,000 on higher Apify plans, plus $0.005 each time a run starts. There is no separate charge for dealer details, and platform usage is not passed on to you.

You are charged for rows you actually receive. If you set a maximum charge for the run, it stops cleanly at that limit instead of overshooting it.

Scope and limits

Public listings only. Nothing behind a login.

Marktplaats' listing pages are not strictly sorted by date, so postedAfter checks two full pages of older listings before it stops, to avoid missing new ones that sit behind promoted ads.

If Marktplaats changes its page structure, the run goes red. It does not return zero rows and report success — a silent scraper is worse than a broken one, because you find out weeks later.

A run that is blocked or cut short partway also goes red, even though the rows it did collect are in the dataset and yours to keep. Red here means "this is not the complete answer", not "you lost the data" — on a schedule, a run that quietly came back short is the thing you most need to hear about.

Every run also publishes the site's own result count next to the rows it delivered, so you can see "60 rows of 9,969 the site reports" without going back to the site to check. That number is what the site says, not a promise about what one run returns.

Same data, other countries

This Actor shares its output shape with the Otomoto Scraper (Poland) and the Standvirtual Scraper (Portugal). A parser you write for one keeps working on the others, and on the countries added next.

Support

Open an issue on this Actor with the run ID and your input. Answered within one business day.