Marktplaats Listings Scraper avatar

Marktplaats Listings Scraper

Pricing

from $1.00 / 1,000 listings

Go to Apify Store
Marktplaats Listings Scraper

Marktplaats Listings Scraper

The Marktplaats Listings Scraper extracts listings from Marktplaats.nl, capturing titles, prices, descriptions, sellers and verification status, locations, categories, attributes, images and bidding info across every category — ideal for price monitoring, market research, and resale sourcing.

Pricing

from $1.00 / 1,000 listings

Rating

0.0

(0)

Developer

FalconScrape

FalconScrape

Maintained by Community

Actor stats

1

Bookmarked

18

Total users

3

Monthly active users

4 days ago

Last modified

Share

🛒 Marktplaats Scraper: Listings, Prices and Sellers from Marktplaats.nl

Export Marktplaats.nl search and category results as clean JSON, CSV or Excel. The Marktplaats Listings Scraper returns each ad's title, price in EUR, price type, seller, city, coordinates, category, condition and photos, and can add view counts, favorites, seller type and shipping options from each listing page. Use it as a Marktplaats price monitor, for second-hand market research, or as a simple alternative to a Marktplaats API. No login and no API key.

🎯 Use Cases

  • Marktplaats price monitor: schedule a daily run on a search (iPhone, fietsen, meubels) and build your own history of Marktplaats prices ("marktplaats prijzen").
  • Marktplaats alerts for new ads: run a saved search (zoekopdracht) every hour and send new listings to Slack, email or a Google Sheet.
  • Resale and arbitrage sourcing: spot underpriced second-hand items (tweedehands) across the Netherlands by price, condition and city.
  • Dealer and competitor research: see which shops and traders list in a category, at what prices, and how many views and favorites their ads get.
  • Second-hand market data: count supply and price ranges per category or region for reports and pricing models.

✨ Features

  • Any search or category URL: paste a Marktplaats URL from your browser, with filters; the keyword, price range, postcode and distance, condition and most other filters are kept.
  • Prices as numbers: price in EUR plus priceType (FIXED, MIN_BID, FAST_BID, SEE_DESCRIPTION).
  • Seller and location: seller ID, name and verified flag, city, country and GPS coordinates.
  • Optional listing details: view count, favorite count, exact listing timestamp, full category path, seller type (private or trader) and tenure, bidding status with the current minimum bid, shipping carriers and the full photo gallery.
  • Large searches are split automatically: Marktplaats returns only a few thousand results for one search, so bigger searches are split into subcategories and then price ranges.
  • No duplicates: a listing found by two searches or two split ranges is saved and charged once.

🛠️ How It Works

  1. Paste Marktplaats URLs: a search such as https://www.marktplaats.nl/q/iphone/ or a category such as https://www.marktplaats.nl/l/fietsen-en-brommers/.
  2. Set Max items (default 50, 0 = no limit) and turn on Scrape listing details if you need views, favorites and shipping.
  3. Run the scraper and download the results, or pull them through the Apify API.

⚙️ Input

FieldWhat it does
Start URLsMarktplaats search or category URLs, one per line. Filters set in the browser are kept.
Max itemsMaximum listings to save across all URLs. Default 50; 0 means no limit.
Scrape listing detailsVisits each listing page for views, favorites, seller type, shipping and the full gallery. Default off.
{
"startUrls": [
{ "url": "https://www.marktplaats.nl/q/iphone/" },
{ "url": "https://www.marktplaats.nl/l/fietsen-en-brommers/" }
],
"maxItems": 500,
"scrapeDetails": false
}

Tips

  • Set filters on Marktplaats first, then copy the URL: most of them live after the # in the address and are applied as-is.
  • Runs that need more than 2,500 listings collect them in price order (highest first), the order that pages most completely. Set a sort on Marktplaats to override it.
  • Listings without a price in a very large subcategory (for example bid-only phones) can be missed when a search is split by price.

💰 Pricing

Pay only for the listings you get. No monthly rental.

EventPriceWhat you get
Listing$0.001 per listing ($1.00 per 1,000)One listing from a search or category page (details off).
Listing detail$0.003 per listing ($3.00 per 1,000)One listing enriched from its detail page (details on).
Actor start$0.00005 per runCharged once when the run starts.

Each listing is charged one event: Listing with details off, Listing detail with details on; if a listing's detail page cannot be loaded, it is saved without details and charged as a Listing. The run stops at your maximum cost per run.

Examples:

  • 50 listings (default input) = $0.05
  • 1,000 listings = $1.00
  • 1,000 listings with details = $3.00

📊 Sample Output Data

A listing with details off (real row, trimmed):

{
"id": "a1532671679",
"url": "https://www.marktplaats.nl/v/telecommunicatie/mobiele-telefoons-apple-iphone/a1532671679-iphone-17-256gb-zwart-nieuw-en-geseald",
"title": "iPhone 17 256GB Zwart | Nieuw en Geseald",
"description": "Levering: voor 18:00 besteld = dezelfde dag verzonden! Liever afhalen? Dit kan dagelijks op afspraak…",
"price": 899,
"priceType": "FIXED",
"currency": "EUR",
"sellerId": 8229070,
"sellerName": "rocketsale.nl",
"sellerIsVerified": false,
"city": "Nijmegen",
"country": null,
"latitude": 51.844635009765625,
"longitude": 5.860201358795166,
"date": "Vandaag",
"categoryId": 1953,
"attributes": { "condition": "Nieuw" },
"imageUrl": "https://admarkt-cdn.marktplaats.com/api/v1/icas-mp-pro-admarkt/images/01/01dc5188-…?rule=eps_82.JPG",
"imageUrls": ["https://admarkt-cdn.marktplaats.com/api/v1/icas-mp-pro-admarkt/images/01/01dc5188-…?rule=eps_82.JPG"]
}

With Scrape listing details on, each row also has these fields (real values from a trader's listing):

{
"categoryName": "Apple iPhone",
"categoryFullName": "Mobiele telefoons | Apple iPhone",
"viewCount": 3174,
"favoritedCount": 69,
"listedSince": "2026-10-01T12:59:43Z",
"sellerType": "TRADER",
"sellerActiveSince": "6 jaar",
"biddingEnabled": false,
"minimumBid": null,
"shippingOptions": ["DHL", "PostNL"],
"images": ["https://admarkt-cdn.marktplaats.com/api/v1/icas-mp-pro-admarkt/images/b7/b7b83db6-…"]
}

date is the label Marktplaats shows on the card (for example "Vandaag" or "Gisteren"); listedSince is the exact timestamp. priceType tells you how to read price: MIN_BID is an asking price open to bids, while FAST_BID ("Bieden") and SEE_DESCRIPTION ads have no asking price and show price 0. attributes holds the condition (Nieuw, Gebruikt, Refurbished) and delivery (Ophalen, Verzenden).

🔁 Schedule and Integrate

For price monitoring, run the same search once a day: each run is a dated snapshot, and together they form your Marktplaats price history. For new-ad alerts, run a narrow search every hour with a small Max items and compare IDs with the previous run. Set it up in Apify Schedules, then send the results to Google Sheets, Zapier, Make, n8n or a webhook with Apify integrations.

🤖 Use with AI Agents (MCP)

This Actor works as a tool in Claude, ChatGPT, Cursor and other MCP clients through the Apify MCP server (https://mcp.apify.com). An agent can call it with:

{ "startUrls": [{ "url": "https://www.marktplaats.nl/q/iphone/" }], "maxItems": 20 }

❓ FAQ

Does Marktplaats have an official API? Marktplaats offers tools for business advertisers to manage their own ads, but no public API for searching other people's listings. This Actor needs no key, account or approval: paste the search URL you already use and get structured listings with prices, sellers, locations and, optionally, views, favorites and shipping.

How do I set up a Marktplaats alert or monitor for new ads? Save your search on Marktplaats, copy its URL into Start URLs, and schedule the Actor hourly or daily. New listing IDs that were not in the previous run are your new ads.

Do I need a Marktplaats account? No. The Actor reads public listings only and does not collect phone numbers or email addresses.

Why is a field empty or 0? Shops often hide their location, so city, country or the coordinates can be empty or 0. Bid-only ads have price 0 (see priceType). Detail fields are filled only with Scrape listing details on.

How many results can I get? A single Marktplaats search shows a few thousand listings. The Actor splits bigger searches into subcategories and price ranges, so a whole category can be collected; set Max items to 0 for no limit and give long runs a longer timeout.

Does it work for 2dehands or 2ememain in Belgium? Not this Actor; it covers marktplaats.nl. Use the Belgian sister scrapers below.