Marktplaats Scraper
Pricing
Pay per event
Marktplaats Scraper
Scrape Marktplaats.nl search and category listings with prices, sellers, locations, images, and page metadata.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Scrape public listings from Marktplaats.nl search and category pages.
Use this actor when you need structured Dutch classifieds data for price tracking, inventory monitoring, market research, seller discovery, or category analysis.
The actor extracts listings directly from Marktplaats search result pages and returns normalized JSON records with price, seller, location, images, category, source page, and pagination metadata.
What It Does
Marktplaats Scraper collects public marketplace listing rows.
It supports Marktplaats search pages.
It supports Marktplaats category pages.
It supports direct start URLs.
It supports keyword searches.
It paginates through result pages.
It deduplicates listings by Marktplaats item ID.
It stops at your requested result limit.
It stores results in the default Apify dataset.
It charges per extracted result.
Who It Is For
Ecommerce analysts use it to compare second-hand prices.
Resellers use it to monitor supply and demand.
Automotive researchers use it to track used-car inventory.
Category managers use it to watch competitive assortment.
Lead generation teams use it to find active sellers.
Data teams use it to feed dashboards and pricing models.
Market researchers use it to analyze regional inventory changes.
Agencies use it to collect repeatable marketplace snapshots.
Who is it for
This actor is for teams that need repeatable access to public Marktplaats listing data.
It is useful for pricing teams.
It is useful for marketplace operators.
It is useful for resellers.
It is useful for analysts.
It is useful for lead generation teams.
Why Use It
Marktplaats is one of the most important classifieds marketplaces in the Netherlands.
Manual browsing is slow.
Copying listings by hand is error-prone.
Search pages change constantly.
This actor turns public listing pages into consistent structured records.
The output is ready for CSV, JSON, Excel, API, webhook, or database workflows.
Data Extracted
Each result can include the listing ID.
Each result can include the listing URL.
Each result can include the title.
Each result can include short and display titles when Marktplaats provides them.
Each result can include description snippets.
Each result can include category-specific descriptions.
Each result can include category ID.
Each result can include price in cents.
Each result can include price as a decimal number.
Each result can include price currency.
Each result can include price type.
Each result can include city.
Each result can include country.
Each result can include latitude.
Each result can include longitude.
Each result can include listing date text.
Each result can include image URLs.
Each result can include seller ID.
Each result can include seller name.
Each result can include seller verification status.
Each result can include seller logo URL.
Each result can include public listing attributes.
Each result can include reservation status.
Each result can include Marktplaats priority product metadata.
Each result can include source URL.
Each result can include page number.
Each result can include listing position on the page.
Each result can include total result count.
Each result includes the scrape timestamp.
Input Options
startUrls accepts Marktplaats search or category URLs.
Use it when you already have exact pages to scrape.
searchQuery creates a Marktplaats keyword search URL.
Use it when you want to search for a term such as fiets, lego, or iphone.
categoryUrl is the fallback category page.
It is used only when startUrls and searchQuery are empty.
maxResults controls the maximum number of dataset rows.
Keep it small for tests.
Increase it for production collection.
includeSponsored keeps promoted listings when enabled.
maxRequestRetries controls retry attempts for failed HTTP requests.
Example Input
{"startUrls": ["https://www.marktplaats.nl/l/auto-s/"],"maxResults": 50,"includeSponsored": true,"maxRequestRetries": 3}
Keyword Search Input
{"searchQuery": "fiets","maxResults": 25,"includeSponsored": true}
Category URL Input
{"categoryUrl": "https://www.marktplaats.nl/l/huis-en-inrichting/","maxResults": 100}
Output Example
{"id": "m2398940309","url": "https://www.marktplaats.nl/v/fietsen-en-brommers/...","title": "Elektrische gazelle c7 dames fiets","priceCents": 92500,"price": 925,"priceCurrency": "EUR","priceType": "FIXED","locationCity": "Leimuiderbrug","sellerName": "sill","imageUrls": ["https://images.marktplaats.com/..."],"sourceUrl": "https://www.marktplaats.nl/q/fiets/","pageNumber": 1,"position": 1,"scrapedAt": "2026-05-14T08:22:50.079Z"}
Pagination
The actor reads Marktplaats result pages sequentially.
Page one uses the original URL.
Later pages use the Marktplaats /p/N/ URL pattern.
The actor stops when enough unique listings have been collected.
It also stops when a page has no listings.
It stops when a page only contains duplicates or filtered rows.
How much does it cost to scrape Marktplaats?
Pricing is pay-per-event with two cost components:
- A one-time run start charge.
- A per-result charge for each listing pushed to the output.
Current rates:
Run started: $0.005Result extracted(FREE): $0.000028771Result extracted(BRONZE): $0.000025018Result extracted(SILVER): $0.000019514Result extracted(GOLD): $0.000015011Result extracted(PLATINUM): $0.000010007Result extracted(DIAMOND): $0.0000070051
Example costs:
- 20 results on FREE: about
0.00558USD - 1000 results on BRONZE: about
0.03002USD - 5000 results on GOLD: about
0.08006USD
The actor is cost-efficient for both small checks and realistic-sized dataset extraction.
Performance
This actor uses HTTP requests.
It does not launch a browser.
That keeps runs fast and memory usage low.
The default memory configuration is tuned for typical result-page scraping.
Most small jobs finish in under a minute.
Large jobs depend on page count and Marktplaats response speed.
Data Quality
The actor extracts data from Marktplaats page data.
Fields are included when Marktplaats exposes them publicly.
Some listings may omit coordinates.
Some listings may omit seller logos.
Some listings may omit long descriptions.
Price type values come from Marktplaats.
Date text is returned as displayed by Marktplaats.
Use Cases
Track used-car asking prices.
Monitor second-hand electronics supply.
Find sellers in a specific city.
Build Dutch classifieds price indexes.
Watch category inventory over time.
Compare private and business seller activity.
Collect image URLs for moderation workflows.
Feed business intelligence dashboards.
Integrations
Export results as JSON.
Export results as CSV.
Export results as Excel.
Read results through the Apify Dataset API.
Send results to a webhook.
Load results into a database.
Connect results to Make, Zapier, or custom automation.
API Usage
You can run the actor from the Apify Console.
You can run it with the Apify API.
You can schedule recurring runs.
You can call it from another actor.
You can use dataset URLs for downstream processing.
Node.js API Example
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/marktplaats-scraper').call({searchQuery: 'fiets',maxResults: 20,includeSponsored: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python API Example
from apify_client import ApifyClientimport osclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("automation-lab/marktplaats-scraper").call(run_input={"searchQuery": "fiets","maxResults": 20,"includeSponsored": True,})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(items)
cURL API Example
curl -X POST "https://api.apify.com/v2/acts/automation-lab~marktplaats-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"searchQuery":"fiets","maxResults":20,"includeSponsored":true}'
MCP
Use this actor with the hosted Apify MCP endpoint for all supported MCP clients:
https://mcp.apify.com?tools=automation-lab/marktplaats-scraper
Add the server with your Apify token (example patterns below).
Claude Desktop / Claude Code
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/marktplaats-scraper","headers": {"Authorization": "Bearer YOUR_APIFY_TOKEN"}}}}
Cursor
Open Cursor MCP settings and add the same tool URL and Authorization header with
your Apify token.
VS Code
Use any MCP extension that accepts the Apify hosted MCP URL and headers, then set the URL to:
https://mcp.apify.com?tools=automation-lab/marktplaats-scraper
MCP Example Prompts
Run Marktplaats Scraper for searchQuery "fiets" with maxResults 20 and summarize the price range by city.
Scrape https://www.marktplaats.nl/l/auto-s/ with maxResults 50 and list the sellers with the most visible inventory.
Collect 30 Marktplaats listings for "lego" and return the median price plus the five cheapest listings.
CLI Registration (Claude)
claude mcp add -s user apify-marktplaats \--transport http \--url "https://mcp.apify.com?tools=automation-lab/marktplaats-scraper" \--header "Authorization: Bearer YOUR_APIFY_TOKEN"
Tips
Start with maxResults set to 20.
Review the dataset output.
Then increase the result limit.
Use direct category URLs for stable recurring monitoring.
Use keyword search for ad hoc research.
Use multiple start URLs to monitor several categories in one run.
Keep retry counts moderate.
Limitations
The actor scrapes public listing data only.
It does not log in.
It does not contact sellers.
It does not bypass private account features.
It does not guarantee fields that Marktplaats does not expose on result pages.
It may need updates if Marktplaats changes its page data structure.
Legality
This actor collects public listing data from Marktplaats result pages.
Users are responsible for deciding whether their use case complies with Marktplaats terms, privacy law, and applicable local regulations.
Do not collect more data than needed.
Do not use the data for spam.
Do not use the data for prohibited profiling.
Legal And Responsible Use
Scrape only public pages.
Respect Marktplaats terms and applicable law.
Avoid collecting personal data you do not need.
Use reasonable result limits.
Do not use scraped data for spam.
Do not use scraped data for prohibited profiling.
FAQ
Can I scrape any Marktplaats category?
Yes, provide a public Marktplaats category URL in startUrls or categoryUrl.
Can I search by keyword?
Yes, set searchQuery and leave startUrls empty.
Does it return seller names?
Yes, when Marktplaats exposes seller names in public listing data.
Does it return images?
Yes, image URLs are returned when present.
Does it scrape detail pages?
The first version focuses on result-page data because those pages expose rich structured listing objects. Detail-page enrichment can be added if users need fields that are not present on result pages.
Does it need proxies?
The actor is HTTP-only and does not require browser automation. Proxy needs may change if Marktplaats changes access controls.