Marktplaats Listings Scraper avatar

Marktplaats Listings Scraper

Pricing

from $0.30 / 1,000 listing saveds

Go to Apify Store
Marktplaats Listings Scraper

Marktplaats Listings Scraper

Scrape public Marktplaats.nl listings by keyword or search URL, including prices, sellers, locations, images, descriptions, and attributes.

Pricing

from $0.30 / 1,000 listing saveds

Rating

0.0

(0)

Developer

Hanna Nosova

Hanna Nosova

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

5 days ago

Last modified

Share

Scrape public Marktplaats.nl marketplace search results and listing pages. The Actor returns Dutch classified listing data such as titles, URLs, prices, seller/location hints, images, descriptions, and listing IDs for ecommerce research, price monitoring, lead generation, and marketplace analysis.

What you can get

  • Search Marktplaats by keyword or by public search URL.
  • Limit the number of listings with maxItems.
  • Optionally visit detail pages with includeDetails.
  • Export structured dataset rows for every saved public listing.
  • Use proxy settings for larger or recurring marketplace monitoring runs.

Who is it for

This Actor is useful for teams that need a repeatable export from Marktplaats.nl without manually copying listings from the website.

Typical users include:

  • Ecommerce teams tracking second-hand product prices.
  • Resellers comparing availability across cities or categories.
  • Analysts measuring marketplace supply for a product keyword.
  • Lead generation teams collecting public listing URLs for follow-up workflows.
  • Automation builders who need Marktplaats data in a dataset, spreadsheet, or database.

Typical use cases

Use the scraper when you need to:

  • Monitor prices for phones, bicycles, furniture, cars, tools, or other classifieds categories.
  • Build a current list of public offers for a search term.
  • Compare search result volume across several keywords.
  • Feed public listing data into BI tools or enrichment pipelines.
  • Re-run the same Marktplaats URL regularly and compare new rows over time.

Input

You can start with either keywords or public Marktplaats search URLs. You can also combine both in one run.

Important fields:

  • queries - search keywords such as iphone, bakfiets, or vintage lamp.
  • startUrls - full public Marktplaats search URLs.
  • maxItems - maximum number of listing rows to save.
  • includeDetails - whether to open detail pages for richer descriptions.
  • proxy - optional Apify Proxy configuration.

Examples

Use these example inputs as starting points for common Marktplaats.nl listing exports.

Input recipes

Keyword search with a small result limit:

{
"queries": ["iphone"],
"maxItems": 20,
"includeDetails": false,
"proxy": { "useApifyProxy": false }
}

Search URL with detail pages enabled:

{
"startUrls": [{ "url": "https://www.marktplaats.nl/q/bakfiets/" }],
"maxItems": 50,
"includeDetails": true,
"proxy": { "useApifyProxy": true }
}

Multiple keywords in one run:

{
"queries": ["iphone 15", "macbook", "racefiets"],
"maxItems": 100,
"includeDetails": false,
"proxy": { "useApifyProxy": true }
}

Output

Each dataset item includes fields such as:

  • listingId
  • title
  • url
  • searchUrl
  • query
  • rank
  • priceText
  • priceValue
  • priceCurrency
  • location
  • city
  • sellerName
  • description
  • detailDescription
  • imageUrls
  • scrapedAt

Output example

{
"listingId": "1234567890",
"title": "Apple iPhone",
"url": "https://www.marktplaats.nl/v/...",
"searchUrl": "https://www.marktplaats.nl/q/iphone/",
"query": "iphone",
"rank": 1,
"priceText": "€ 250,00",
"priceValue": 250,
"priceCurrency": "EUR",
"location": null,
"sellerName": null,
"description": "Public listing description when available.",
"detailDescription": "Public listing description when detail fetching is enabled.",
"imageUrls": [],
"scrapedAt": "2026-07-29T00:00:00.000Z"
}

API usage

You can run the Actor from the Apify API or client libraries by passing the same JSON input shown above. Typical automation sets queries or startUrls, chooses a maxItems limit, and reads results from the default dataset after the run succeeds.

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/marktplaats-listings-scraper').call({
queries: ['iphone'],
maxItems: 20,
includeDetails: false,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
import os
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('fetch_cat/marktplaats-listings-scraper').call(run_input={
'queries': ['iphone'],
'maxItems': 20,
'includeDetails': False,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

cURL

curl -X POST "https://api.apify.com/v2/acts/fetch_cat~marktplaats-listings-scraper/runs?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"queries":["iphone"],"maxItems":20,"includeDetails":false}'

Data quality tips

Use specific keywords for cleaner results, for example iphone 15 pro instead of iphone. Public Marktplaats search URLs are useful when you have already selected filters in the website UI.

If you need more complete text descriptions, enable includeDetails. If you only need a fast search-result export, keep includeDetails disabled.

Proxy guidance

Small local checks often work without proxy. For larger recurring exports, enable Apify Proxy to reduce blocked pages.

If Marktplaats returns a blocked page, lower concurrency by running smaller batches and retry with proxy enabled.

MCP

You can use this Actor from Apify integrations and MCP-compatible workflows by providing the same input JSON. This is useful when an agent needs current public Marktplaats listings before drafting a report, comparing prices, or updating a spreadsheet.

Install the Apify MCP server in Claude Desktop or Claude Code with a command like:

$claude mcp add apify -- npx -y @apify/actors-mcp-server --actors fetch_cat/marktplaats-listings-scraper

Example MCP server configuration:

{
"mcpServers": {
"apify": {
"command": "npx",
"args": [
"-y",
"@apify/actors-mcp-server",
"--actors",
"fetch_cat/marktplaats-listings-scraper"
],
"env": {
"APIFY_TOKEN": "your-apify-token"
}
}
}
}

Example prompts:

  • "Find 20 public Marktplaats listings for iphone 15 and summarize the price range."
  • "Run the Marktplaats scraper for bakfiets with maxItems 50 and return the dataset URL."
  • "Compare current Marktplaats listings for macbook and racefiets in two separate runs."

Recommended MCP-style inputs are small and specific, for example one query and a maxItems limit of 20-100 depending on the workflow.

Legality

This Actor is designed for public Marktplaats.nl pages. It does not log in, bypass paywalls, or collect private account data.

You are responsible for using the output in compliance with applicable laws, Marktplaats terms, and data protection requirements. Avoid collecting personal data unless you have a lawful basis and a clear business need.

Pricing and cost expectations

This Actor uses pay-per-event pricing: a small start event plus one result event for each listing saved. Set maxItems to control cost.

Runs with includeDetails enabled can take longer because they may request each listing page. For cost-controlled testing, start with a small maxItems value.

For broader marketplace monitoring, combine this Actor with other ecommerce, classifieds, or product price scraping actors in your Apify workflows.

You can chain datasets into spreadsheet exports, database syncs, webhooks, or monitoring tasks.

FAQ

Can I combine keywords and URLs?

Yes. The Actor accepts both queries and startUrls.

Does it scrape private data?

No. It only accesses public Marktplaats pages.

Why did I get zero results?

The query may have no listings, or Marktplaats may have returned a blocked/changed page. Try a public search URL and enable proxy for higher-volume runs.

Should I enable detail pages?

Enable includeDetails when descriptions are important. Leave it disabled when you need a faster listing overview.

How do I control spend?

Use maxItems and test with a small input first.