Automation · E-commerce
Marktplaats Netherlands Car Scraper
Scrape used-car listings from Marktplaats.nl, the Netherlands' #1 marketplace (auto's) — price, make, model, year, mileage (km), fuel, transmission, body type, drivetrain, seller (dealer/private), city, and photos. Export to JSON or CSV; optionally enrich with the full Dutch description.
Free Apify credit covers a first run. No credit card to try.
What this Actor scrapes
Marktplaats.nl is the Netherlands' largest classifieds marketplace and the default place the Dutch buy and sell used cars (auto's). It publishes no public API. This Actor wraps a polite scrape of the cars category through Marktplaats' own internal search service — paste a filtered Marktplaats search URL or use the default car listing page, and pull every listing's price, make/model, year, mileage (km), fuel, transmission, body type, drivetrain, seller type, city, and photos. Flip on detail enrichment and we fetch each listing's page for the full Dutch description and exterior colour. Built on curl-cffi with rotating browser TLS impersonation, residential proxies, and automatic retry/backoff on blocks.
What we handle for you
- 🛡️ Browser fingerprint rotation —
curl-cffiimpersonates real Chrome / Firefox / Safari TLS handshakes so the target sees a browser, not Python. - 🌐 Residential proxy rotation via Apify Proxy — fresh session and exit IP on every block.
- 🔁 Retries with exponential backoff on
408 / 429 / 5xx— up to 5 attempts per page,Retry-Afterhonoured. - 🧱 Rate-limit-aware pacing — when the target pushes back, we slow down instead of getting banned.
- 🧊 Clean, typed dataset rows — Pydantic-validated, ISO-8601 timestamps, stable IDs, JSON / CSV / Excel export straight from the Apify Console.
- 💰 Pay-Per-Event pricing — you only pay for results that hit your dataset. No data, no charge.
Use cases
- Used-car price analytics — track asking prices by make/model/year across the Dutch market.
- Dealer inventory monitoring — diff successive runs to spot new arrivals and price cuts at specific dealers.
- Market research — aggregate fuel-type and transmission mix to gauge EV/hybrid adoption in the Netherlands.
- Lead generation — build a directory of car dealers from <code>seller_name</code> + <code>location</code>.
- Arbitrage / sourcing — find under-priced listings filtered by mileage, year, and body type.
Input
Paste this into the Apify Console, or send it as the run input over the API. Proxy settings are on by default; you rarely need to touch them.
| Field | Type | Required | What it does |
|---|---|---|---|
searchUrl | string | no | Full Marktplaats cars search/results URL with your filters already applied (e.g. https://www.marktplaats.nl/l/auto-s/p/1/#f:10898,10898|q:bmw) or a category page like https://www.marktplaats.nl/l/auto-s/volkswagen/.… |
maxResults | integer | no | Hard cap on dataset rows. Marktplaats serves 30 listings per page; the Actor walks pages until this cap or the last available page. |
enrichDetails | boolean | no | Fetch each listing's detail page for the full Dutch description and exterior colour. The search payload already carries price, specs, seller, and photos — turn this off to halve the request count. |
{
"searchUrl": "",
"maxResults": 5,
"enrichDetails": true,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": [
"RESIDENTIAL"
]
}
} Output
One row per result, schema-validated before it is written. Export JSON, CSV, Excel or XML from the run, or read it over the API.
listing_idlisting_urltitlemakemodelyearpricecurrencyprice_typemileage_kmfuel_typetransmissionbody_typedrive_trainenergy_labelcolor
{
"listing_id": "m2406042278",
"listing_url": "https://www.marktplaats.nl/v/auto-s/skoda/m2406042278-skoda-octavia-1-6-comfort",
"title": "Skoda Octavia 1.6 Comfort",
"make": "Skoda",
"model": "Octavia",
"year": 2001,
"price": 1150,
"currency": "EUR",
"price_type": "Te koop",
"mileage_km": 315844,
"fuel_type": "Benzine",
"transmission": "Handgeschakeld",
"body_type": "Hatchback",
"drive_train": "Voorwielaandrijving",
"energy_label": "B",
"color": "Grijs",
"location": "Lienden",
"region": "Nederland",
"seller_type": "dealer",
"seller_name": "MBSmart",
"seller_id": "56392587",
"photo_urls": [
"https://images.marktplaats.com/api/v1/hz-mp-pro-listing/images/4933080c-8de2-40e5-95e9-e9cc46631ef3?rule=ecg_mp_eps$_85.jpg"
],
"description": "Algemene informatie Aantal deuren: 5 Kleur: Grijs Technische informatie Vermogen: 75 kW (102 PK) ...",
"posted_date": "Vandaag",
"scraped_at": "2026-06-02T00:00:00+00:00"
} Pricing
| Event | Price | When |
|---|---|---|
| Actor start | $0.20 | Once per run, covers warm-up and proxy session setup. |
| result-row | $0.0020 | Per result written to the dataset. |
You pay only for results that land. Cap any run with maxTotalChargeUsd. See pricing & billing for worked examples.
FAQ
Do I need a Marktplaats account or API key?
How do I scrape a filtered search?
Is the detail enrichment worth it?
What currency are prices in?
Why do some listings show 'Bieden' instead of a price?
Ready to run it?
Open the listing on Apify, paste the input above, and watch rows land. If it ever breaks, it is our problem before it is yours.
Related Actors