Marktplaats Scraper - NL Classifieds, Prices & Seller Leads
Pricing
from $4.00 / 1,000 classified ad scrapeds
Marktplaats Scraper - NL Classifieds, Prices & Seller Leads
Scrape Marktplaats.nl by keyword, category or URL: prices, full ad details, attributes, images, location, seller leads & new-ad / price-drop monitoring. Cars, electronics, real estate & more.
Pricing
from $4.00 / 1,000 classified ad scrapeds
Rating
0.0
(0)
Developer
Scrape Sage
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Marktplaats Scraper — NL Classifieds, Prices, Listings & Seller Leads
Extract complete data from Marktplaats.nl — the Netherlands' #1 classifieds marketplace. Search by keyword, category or URL and get every ad with its price and price type, full description, structured attributes, image gallery, exact location, posted date, category and seller — plus deduplicated seller B2B leads and a built-in monitor mode for new-ad and price-drop alerts.
No login, no API key, no browser — fast, reliable extraction straight from Marktplaats's own internal API across cars, electronics, bikes, real estate, jobs, furniture, fashion and every other category.
Why this Marktplaats scraper?
Generic "paste-a-URL" crawlers grab a few visible fields and miss the data that actually matters. This actor reads Marktplaats's public search API and ad pages directly and ships the richest dataset in the category — real prices and price types, every structured attribute (car mileage, bike frame size, phone storage…), the full image gallery, geo-coordinates and the seller behind every ad.
| Data | Generic crawlers | This actor |
|---|---|---|
| Title, description, ad URL | ✅ | ✅ |
| Price + price type (fixed / bidding / on request / free / reserved) | partial | ✅ |
| Every structured attribute (condition, brand, mileage, frame size, storage…) | ❌ | ✅ |
| Full image gallery | partial | ✅ |
| Exact location + latitude/longitude | ❌ | ✅ |
| Category, category path & posted date | partial | ✅ |
| Seller name, private vs business, verified flag | ❌ | ✅ |
| Full description, view & favourite counts, bids (detail mode) | ❌ | ✅ |
| Deduplicated seller B2B leads (business-verified, reviews, website, lead score) | ❌ | ✅ |
| Monitor mode — only new ads / price drops | ❌ | ✅ |
| One clean dataset per entity (no empty columns) | ❌ | ✅ |
Use cases
- Price & market research — track asking prices across any category, build pricing benchmarks, spot under-priced items the moment they're posted.
- Reselling & arbitrage — monitor a keyword for new listings and price drops, then be first to message the seller.
- Dealer & business prospecting — pull deduplicated seller leads filtered to businesses/dealers (verified flag, review count & rating, website, active-ad count) for B2B outreach.
- Sourcing & procurement — find specific parts, cars, equipment or stock by keyword, category and location radius.
- Competitive intelligence — see what businesses are listing, at what prices, in which categories.
- Data & AI — feed clean, structured classifieds data into dashboards, models or RAG pipelines.
How to use
- Sign up for Apify — the free plan is enough to try this actor.
- Open the Marktplaats Scraper, enter one or more search keywords (e.g.
iphone 15,racefiets,bmw e46), or paste Marktplaats Start URLs (search, category, ad or seller pages). - Click Start and watch results stream into the dataset table.
- Export as JSON, CSV, Excel, XML, or RSS — or pull results programmatically via the Apify API.
Input
{"searchQueries": ["iphone 15", "racefiets"],"postcode": "1011","distanceKm": 25,"minPrice": 50,"maxPrice": 500,"condition": "used","sellerType": "business","sort": "dateDesc","maxItems": 200,"includeListingDetails": true,"includeSellerLeads": true,"monitorMode": false}
- searchQueries — one or more keywords; each is scraped as its own feed.
- startUrls — Marktplaats search (
/q/…), category (/l/…), ad (/v/…/m123…) or seller (/u/…/123/) URLs. - categoryId — optional category ID to scope a search or browse a whole category.
- listingUrls / sellerUrls — scrape specific ads or seller storefronts directly.
- postcode + distanceKm — centre a radius search on a Dutch postcode.
- minPrice / maxPrice / condition / sellerType — filter the rich result data (price, new/used, private vs business).
- sort (default relevance) —
dateDesc,priceAsc,priceDesc. - maxItems (default 100) — cap across all searches/URLs.
- includeListingDetails (default false) — open each ad for the full description, every attribute, the complete image gallery, category breadcrumb, view & favourite counts and bids.
- includeSellerLeads (default false) — output one deduplicated lead per seller (business flag, reviews, website, lead score).
- enrichSellerContacts (default false) — open business sellers' storefronts for their website and accurate active-ad count.
- monitorMode (default false) — emit only new ads / price changes across runs (see below).
- proxyConfiguration — proxy settings (residential, Netherlands by default).
Output
By default you get one clean, dense table of listings — every column applies to every row. Enable seller leads to add deduplicated sellerLead records (tagged with a type field), or use the Listings / Seller leads dataset views.
A listing record (type: "listing"):
{"type": "listing","listingId": "m2412150690","title": "Racefiets Cannondale","description": "Cannondale racefiets in prima staat, frame maat 58, Shimano Ultegra 10-speed…","url": "https://www.marktplaats.nl/v/fietsen-en-brommers/fietsen-racefietsen/m2412150690-racefiets-cannondale","price": 300,"priceType": "MIN_BID","priceTypeLabel": "Bidding from","currency": "EUR","condition": "Zo goed als nieuw","city": "Enschede","country": "Nederland","latitude": 52.2033,"longitude": 6.7998,"postedDate": "Vandaag","images": ["https://images.marktplaats.com/api/v1/.../image.jpg"],"imageCount": 6,"category": "Bicycles Racing Bikes","parentCategory": "Bicycles And Mopeds","attributes": { "condition": "Zo goed als nieuw", "delivery": "Ophalen" },"extendedAttributes": { "material": "Aluminium", "frameHeight": "57 tot 61 cm", "numberOfGears": "Meer dan 20 versnellingen" },"promoted": true,"sellerId": 59814492,"sellerName": "Joris","sellerType": "private","sellerVerified": false,"viewCount": 142,"favoritedCount": 7,"scrapedAt": "2026-06-19T16:39:31.711Z"}
A seller lead record (type: "sellerLead") carries sellerName, sellerType (private/business), smbVerified, rating, reviewCount, website, activeAds, city, categories, minPrice/maxPrice, sampleListings, sellerUrl and a leadScore (0–100).
What to expect (field coverage)
Marktplaats is seller-entered data, so some fields appear only when the seller filled them in. Typically you can expect:
| Field group | Always present | Usually present | Present when published |
|---|---|---|---|
| Core | listingId, title, url, priceType, category, seller, location | price ~85% (fixed-price ads), images ~95%, condition ~80% | province |
| Attributes | — | category-specific specs (mileage, size, storage…) on cars/bikes/electronics | extended specs |
| Detail mode | full description, category path | view & favourite counts | bids (bidding ads) |
| Seller lead | sellerName, sellerType, lead score | reviews & rating (active sellers), business-verified | website (business sellers, with enrichment) |
A blank field means the seller didn't publish it — not that scraping failed. Nothing is dropped, so you always get the richest dataset available.
Monitor mode — only new ads & price drops
Turn on monitorMode and the actor remembers every ad it has seen in a named key-value store, then on each later run emits only ads that are new or whose price changed — each tagged with a changeType of new, price_drop or price_rise.
It's built to complement Apify Schedules, not collide with them: the schedule decides when the run starts; monitor mode decides what's worth returning. Schedule it hourly/daily on a keyword and pipe the output to Slack or email to get first-mover alerts on new listings and price drops. Use a different monitorKey per feed to track several searches independently.
Automate & schedule
Run this actor on autopilot and pull results into your own stack:
- Apify API — start runs, fetch datasets, and manage schedules over REST.
- apify-client for JavaScript and apify-client for Python — official SDKs.
- Schedules — run it daily/hourly to catch new ads and price drops with monitor mode.
- Webhooks — trigger downstream actions (CRM import, Slack alert, email) the moment a run finishes.
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });const run = await client.actor('scrapesage/marktplaats-scraper').call({searchQueries: ['iphone 15'],maxItems: 100,includeSellerLeads: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Got ${items.length} records`);
Integrate with any app
Connect the dataset to 5,000+ apps — no code required:
- Make — multi-step automation scenarios.
- Zapier — push new ads or seller leads straight into your CRM.
- Slack — get notified when a monitored search adds a listing or a price drops.
- Google Drive / Sheets — auto-export every run to a spreadsheet.
- Airbyte — pipe results into your data warehouse.
- GitHub — trigger runs from commits or releases.
Use with AI assistants (MCP)
The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT, or any agent framework through the Apify MCP server — ask your assistant to "find every business seller listing iPhones under €400 within 25 km of Amsterdam" and let it run the scraper for you.
More scrapers from scrapesage
Build a complete classifieds & marketplace intelligence stack:
- Kleinanzeigen Scraper — Germany's #1 classifieds, ads & seller leads.
- Kijiji Scraper — Canada's #1 classifieds across cars, real estate & for-sale.
- Gumtree Scraper — UK classifieds with listings & seller leads.
- Subito Scraper — Italy's #1 classifieds.
- OLX Brazil Scraper — Brazil's #1 classifieds & dealer leads.
- Craigslist Scraper — US classifieds across every category.
- eBay Scraper — products, prices & seller leads across 10 marketplaces.
- AutoScout24 Scraper — pan-European car marketplace & dealer leads.
Tips
- Start broad, then filter. Run a keyword first, then add
minPrice/maxPrice,condition,sellerTypeor apostcode+distanceKmradius to focus the feed. - Seller leads: turn on
includeSellerLeads(andenrichSellerContactsfor websites) to turn a search into a list of dealers/businesses with reviews, ratings and a 0–100 lead score. - Detail mode is opt-in. Search cards are already rich; enable
includeListingDetailsonly when you need the full description, view/favourite counts or every attribute — it adds one request per ad. - Recurring monitoring: combine Schedules with
monitorModeand a uniquemonitorKeyper search for new-ad and price-drop alerts.
FAQ
How do I scrape a specific category? Pass a categoryId (found in any category URL), or simply paste a category browse URL (/l/…) into Start URLs. You can combine a category with a keyword.
Does it need the Marktplaats API or a key? No. This actor reads Marktplaats's own public search API and ad pages — no key, login or browser required.
Can I filter by location? Yes — set a Dutch postcode and a distanceKm radius to only return ads within that area.
Can I export to Google Sheets, CSV, or Excel? Yes — one click in the dataset view, or automatically on every run via the Google Drive integration.
How do I get alerts for new ads or price drops? Enable monitorMode, create a Schedule, and add a webhook or Zapier zap to push new records to your CRM, Slack or email.
A field is empty — why? Some ads have no fixed price (bidding/free/on request), some sellers skip attributes, and not every ad has a description. Fields are blank only when the seller didn't publish that data — never because the scraper skipped it.
Is scraping Marktplaats legal? This actor collects publicly available data only. You're responsible for using the data in compliance with applicable laws (e.g. GDPR for personal data) and Marktplaats's terms.
Need help?
Open an issue on the actor's Issues tab, or visit the Apify help center. Feature requests are welcome — this actor is actively maintained.