Scrape Marktplaats.nl listings as clean JSON — titles, prices, categories, locations, images and dates. GDPR-clean by design: no seller names, IDs or contact data, ever. Automatic splitting past the 5,000-result cap, with pay-per-result pricing. Built for price monitoring and market research.
$1.99 / 1,000 · 100.0% success over 1,437 public runs in the last 30 days.
Run it on Apify → Free to try - runs bill per result on your own account.
Every field is optional unless marked; sensible defaults do the rest.
| Field | Type | What it does | Default |
|---|---|---|---|
searchQuery |
string | Free-text search. Provide this, a category, or both. | fiets |
categoryId |
integer | Numeric marketplace category ID to scope the crawl. Every result includes its categoryId, so run a broad search first to discover the IDs you need. Optional. |
- |
listingIds |
array | Fetch these exact listings instead of searching, e.g. ["m2421501285"] - the id is in every listing URL and every dataset item. Useful to re-check price or availability of listings you found earlier. When set, all search filters are ignored. | [] |
postcode |
string | Dutch postcode to search around, e.g. "3511AA" (Utrecht). Combine with radiusKm; results include the distance in meters. | - |
radiusKm |
integer | Only return listings within this many km of the postcode. Requires postcode. | - |
conditions |
array | Only return listings in these conditions. Empty = all conditions. | [] |
delivery |
string | Only listings offering pickup, or only listings that ship. "any" = no filter. | any |
buyItNowOnly |
boolean | Only listings with the "Direct Kopen" (buy it now) option. | False |
priceMinEur |
integer | Only return listings priced at or above this amount. Optional. | - |
priceMaxEur |
integer | Only return listings priced at or below this amount. Optional. | - |
sortBy |
string | Order of the results. Newest first is the default and the right choice for monitoring. | date |
postedAfter |
string | Only keep listings posted on or after this date (YYYY-MM-DD or ISO timestamp). Listings whose posting date cannot be read are excluded when a window is set. | - |
postedBefore |
string | Only keep listings posted on or before this date (YYYY-MM-DD or ISO timestamp). | - |
maxItems |
integer | Stop after this many listings. | 1000 |
One JSON object per result, with exactly these fields - no seller identities, no contact data, ever.
| Field | Type | Meaning |
|---|---|---|
listingId |
string | Marketplace listing ID, e.g. m2420174899. |
title |
string | Listing title as posted. |
description |
string | Listing description snippet as returned by the marketplace search. |
priceCents |
integer | Asking price in euro cents. Absent when the listing has no price. |
priceType |
string | Marketplace price kind, e.g. FIXED or MIN_BID. |
city |
string | Municipality of the listing. |
country |
string | Country of the listing (usually Nederland). |
latitude |
number | Marketplace-provided municipality-level coordinate, not a seller address. |
longitude |
number | Marketplace-provided municipality-level coordinate, not a seller address. |
postedAt |
string | Posting date as the marketplace displays it: a date, or a relative label like 'Vandaag' (today). |
imageUrls |
array | Protocol-relative image URLs; prepend https: to use them. |
categoryId |
integer | Numeric marketplace category ID. Reusable as the categoryId input. |
url |
string | Direct link to the listing. |
attributes |
object | Whitelisted, non-personal listing attributes that vary by category — e.g. condition and delivery on any item; constructionYear, mileage, fuel, transmission and options for cars; livingArea and numberOfRooms for property; storage and cameraResolution for phones. Present when the listing has them. |
reserved |
boolean | Whether the listing is currently marked as reserved by the marketplace. |
sellerType |
string | Whether the listing comes from a business or a private seller. The only seller-related field in the output. |
postedDate |
string | Posting date normalized to YYYY-MM-DD (from the site's display date). |
100.0% success over 1,437 public runs in the last 30 days. Live record, failures included: status page.
Full documentation, examples and the AI-assistant prompt live on the store page.