Marktplaats.nl New Listings & Price Alert (Netherlands) avatar

Marktplaats.nl New Listings & Price Alert (Netherlands)

Pricing

from $0.70 / 1,000 listing scrapeds

Go to Apify Store
Marktplaats.nl New Listings & Price Alert (Netherlands)

Marktplaats.nl New Listings & Price Alert (Netherlands)

Newest Marktplaats.nl listings for any search terms, one flat row each: title, price in EUR (null when none is stated), price type, city, seller, listing date, category, photos, attributes, URL. Newest-first or by price, with a price band.

Pricing

from $0.70 / 1,000 listing scrapeds

Rating

0.0

(0)

Developer

Superslow Sloth

Superslow Sloth

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

16 days ago

Last modified

Share

Search Marktplaats, the Netherlands' biggest classifieds site, for one or more terms and get one flat row per listing: title, price in euros, Marktplaats' price type, city, seller, listing date, category, photos, attributes and the listing URL. Newest first by default, so a scheduled run is a new-listing feed; a price band and price sorts make it a bargain watch.

No account, no login, no browser. One request returns 30 listings.

Input

FieldNotes
queriesOne or more search terms, one per line. Required. A listing found by two terms is returned once, under the first.
maxItemsListings to read per search term (default 100, up to 5,000). Marktplaats stops serving a search after about 5,000 results (167 pages of 30) however many it reports, so a broader search than that needs a narrower term or a price band.
sortnewest (default), oldest, relevance, price-asc, price-desc.
minPrice, maxPriceAsking-price band in whole euros, inclusive, either end optional.
proxyConfigurationApify proxy by default.

About "newest first"

This is Marktplaats' own date sort. It orders by when a listing was last placed, not strictly when it was first posted: a seller who bumps an old listing, or pays to promote it, sees it jump back to the top. Row ids are therefore not monotonic, and a handful of old listings can sit among the new ones (promoted rows carry promotion = DAGTOPPER). The actor does not re-sort; filter on promotion or listed_date if you only want the fresh ones.

About the price sorts and the price band

  • A price band (minPrice / maxPrice) also removes listings that state no price ("see description", bid-only), because there is nothing to compare. Without a band they are returned, with price_eur null.
  • price-asc starts with the free listings and with bid-only listings that state no minimum, so the first rows are not "the cheapest things" in the sense of a price; add minPrice of 1 to skip them.

Output

FieldNotes
queryThe search term that first found this listing.
item_id, urlMarktplaats' id and the absolute listing URL.
title, descriptionAs the seller wrote them. description is only the first ~200 characters the search response carries, cut mid-word; the full text is on the listing page, which this actor does not open.
price_eur, price_typeSee below.
city, country_code, country, latitude, longitudeThe approximate place Marktplaats shows.
seller_id, seller_name, seller_verifiedMarktplaats' numeric seller id, the display name the seller chose, and its "verified" flag.
listed_date_text, listed_dateThe day as Marktplaats prints it (Vandaag, Gisteren, Eergisteren, 5 okt 26) and as an ISO date.
category_id, category_pathNumeric category id, and the path as URL slugs (fietsen-en-brommers/fietsen-dames-damesfietsen). The search response carries no category name.
image_urlsPhoto URLs (large rendition). Nothing is downloaded.
attributesOne object of the attributes shown on the listing (condition, delivery, brand, frame height, ...). The keys depend on the category.
is_advertTrue for a business (advertiser) listing, read from the a id prefix (private listings are m). Every a listing seen carried advertiser tracking data.
promotionMarktplaats' promotion flag, DAGTOPPER or NONE.
reservedMarktplaats' "reserved" flag.

The price, honestly

Marktplaats sends a price in cents plus a price type, and the cents are 0 for four different things. The actor keeps the type and only turns a real amount into a number:

price_typeprice_eur
FIXEDThe asking price.
MIN_BIDThe minimum bid (bidding starts there), or null when the seller set no minimum. It is not a price anyone has agreed to.
FAST_BIDnull: a bid-only listing with no amount.
SEE_DESCRIPTIONnull: "see description". The price may well be in the text.
FREE0.0: the only case where zero is the price.

Any other type Marktplaats adds is passed through in price_type, with price_eur set only if it comes with an amount. In 280 listing records from seven fetched pages, 147 were FIXED, 62 MIN_BID, 41 SEE_DESCRIPTION, 16 FREE and 14 FAST_BID, so roughly 4 in 10 rows have no usable price - filter on price_eur before averaging anything.

Honest nulls

A field Marktplaats did not send is null, never 0 or "": city, country_code and the coordinates are null for the (mostly advertiser) listings with no place - Marktplaats sends coordinates 0,0 for those, and 0,0 is not reported as a location. description is null when the listing has none; seller_verified and reserved are null if the flag is missing. listed_date is null if the date text is in a form not recognised (listed_date_text is still there).

listed_date has day precision only: Marktplaats gives no time of day. Vandaag and its siblings are resolved against the run date in the Netherlands.

Personal data

Listing text and display names are written by private individuals and can hold names or contact details. They are carried as Marktplaats publishes them, because they are the listing; nothing is extracted from them. You are responsible for handling them under the GDPR if you store them.

Pricing

Pay per event:

  • $0.002 per run (actor-start), charged only after your input is validated - a run that fails on bad input costs nothing.
  • $0.0007 per listing row written (listing-scraped), i.e. $0.70 per 1,000 listings.

How it fetches

It calls the same JSON search API Marktplaats' website uses (www.marktplaats.nl/lrp/api/search), 30 rows per request, with Accept: application/json. Measured 2026-10-09: HTTP 200 from Apify datacenter and residential exits and from a plain connection. Apify datacenter proxy is the default.

Things worth knowing, all measured:

  • Rate limit. After roughly 150 requests in a few minutes from one address, Marktplaats' CDN answers 403 Request blocked for about 12 minutes. The actor treats 403, 429 and 5xx as a refusal, rotates to a fresh proxy address and retries; a very large maxItems on many terms is what can run into it.
  • Empty deep pages. On the relevance sort the API sometimes answers a valid deep offset with an empty page (at least half of the asks from page 100 on), identical in shape to a search with no results. The actor tells the two apart by position - an empty page before the number of results Marktplaats itself reported is retried, not taken as the end. The newest-first sort did not show it (48 of 48 asks answered at pages 100 to 166).
  • Result cap. The API serves at most maxAllowedPageNumber pages (167 of 30 for a large search) and answers beyond it with an empty page; the run logs when a term was cut off that way.