# Marktplaats Scraper – NL Classifieds & Prices (`logiover/marktplaats-nl-scraper`) Actor

Scrape Marktplaats.nl listings in bulk by keyword or category. Extract title, price, location, seller, date, photos and item attributes as clean JSON/CSV/Excel. Built for price monitoring, reselling, market research & lead generation in the Netherlands.

- **URL**: https://apify.com/logiover/marktplaats-nl-scraper.md
- **Developed by:** [Logiover](https://apify.com/logiover) (community)
- **Categories:** E-commerce, Business, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.50 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## 🛒 Marktplaats Scraper – Scrape NL Classifieds & Prices

**Scrape [Marktplaats.nl](https://www.marktplaats.nl), the Netherlands' biggest marketplace — in bulk.**
Search by keyword or category and export every listing with **title, price, location, seller, date, photo, and item attributes** as clean JSON, CSV, or Excel.

A fast, reliable **Marktplaats scraper** for **price monitoring**, **reselling & arbitrage**, **market research**, and **lead generation** across the Dutch second-hand and classifieds market.

> Need to **scrape Marktplaats listings**, track **prices**, monitor a **category**, or pull **classifieds data** from the Netherlands at scale? This Actor reads Marktplaats' own structured data, so the output is clean, complete, and stable.

---

### ✅ What it extracts

Per listing:

- **Title** & **description**
- **Price** (€) + **price type** (fixed, bidding, on request, free)
- **City**, **country**, **latitude / longitude**
- **Seller** name & ID
- **Listing date**
- **Category ID**
- **Item attributes** — e.g. for cars: construction year, mileage, fuel; for phones: model, storage, condition
- **Primary image** URL
- **Listing URL** & **Item ID**

---

### 🎯 Best for

- **Price monitoring** — track asking prices for any product across the market over time
- **Reselling & arbitrage** — spot underpriced items the moment they're posted and flip them
- **Market & pricing research** — analyze supply, demand, and price distribution by category or region
- **Dealer & inventory intelligence** — monitor cars, electronics, furniture, bikes, and more
- **Lead generation** — find active sellers or buyers in a specific niche
- **Trend analysis** — measure how listing volume and prices move week to week

---

### ⚡ Why this scraper

- **Reads structured data, not fragile HTML** — Marktplaats ships full listing data as embedded JSON, so output is clean, complete, and resistant to layout changes
- **HTTP-only & fast** — no browser needed, low cost per result
- **Keyword *and* category** — search a term or point it at any category URL (or both in one run)
- **Auto-pagination** — 30 listings per page, automatically stops at the end of results
- **De-duplicated** by item ID
- **Rich attributes** — captures the item-specific fields (year, mileage, condition, etc.) that make the data actually useful
- **Schedule-ready** — run daily to capture fresh listings and price changes

---

### 🛠 How to use

1. Add **Search keywords** (`iphone`, `fiets`, `bank`, `playstation`) and/or **Category URLs** (e.g. `https://www.marktplaats.nl/l/auto-s/`).
2. Set **Max pages per source** (30 listings each) and/or **Max results** to control volume.
3. Optionally toggle **Include promoted listings**.
4. Run and export to **CSV / Excel / JSON**, or pull via the **Apify API**.

#### Example input
```json
{
  "queries": ["iphone 15"],
  "startUrls": [{ "url": "https://www.marktplaats.nl/l/auto-s/" }],
  "maxPages": 20
}
````

***

### 📤 Output

```json
{
  "itemId": "m2405496960",
  "title": "BMW 3-serie LPG High-Executive Pano",
  "priceEur": 12750,
  "priceType": "FIXED",
  "city": "Drachten",
  "country": "Nederland",
  "latitude": 53.10,
  "longitude": 6.09,
  "sellerName": "Jan",
  "date": "Vandaag",
  "categoryId": "91",
  "attributes": { "constructionYear": "2013", "mileage": "294576", "fuel": "LPG" },
  "imageUrl": "https://...",
  "url": "https://www.marktplaats.nl/v/auto-s/..."
}
```

***

### 💡 Example use cases

- **Resale arbitrage bot** → scrape a category every hour, flag listings priced well below the median.
- **Used-car pricing model** → sweep `/l/auto-s/` and analyze price vs. construction year and mileage.
- **Electronics price index** → track `iphone`, `macbook`, `playstation` prices over time.
- **Seller lead list** → collect active sellers in a niche for B2B outreach or partnership.

***

### 🆚 How this compares

**vs. HTML scrapers** — Tools that parse the rendered page break whenever Marktplaats tweaks its layout and often miss item attributes. This Actor reads Marktplaats' own embedded JSON, so it captures complete, structured data reliably.

**vs. manual browsing** — You can't track hundreds of thousands of listings and their price changes by hand. This Actor sweeps entire categories and re-runs on a schedule.

**vs. generic marketplace scrapers** — This Actor is tuned specifically to Marktplaats' data model (price types, locations, seller info, and per-category attributes), so the output is richer and cleaner than a one-size-fits-all tool.

***

### ❓ FAQ

**Keyword or category — which should I use?**
Use **keywords** for specific products and **category URLs** to sweep an entire section (cars, bikes, furniture…). You can combine both in one run.

**How many listings can I get?**
Marktplaats categories hold hundreds of thousands of listings — raise **Max pages** to go deep. Pagination stops automatically at the last available page.

**Does the price always appear?**
Fixed-price listings show a price. Auction / "bidding" / "on request" listings are marked via `priceType` (their `priceEur` may be 0 or the minimum bid), so you can filter them out if you only want fixed prices.

**Can I run it on a schedule?**
Yes — schedule daily or weekly runs to track new listings and price movements over time.

**Do I need a proxy?**
For large runs, a Netherlands/EU residential proxy is recommended for stability.

***

### 🔁 Pairs well with

- **Website Contact Scraper** → enrich business sellers with emails & socials
- **Bulk Email Verifier** → validate seller contacts before outreach

***

#### Keywords

marktplaats scraper, scrape marktplaats, marktplaats.nl scraper, netherlands classifieds scraper, dutch marketplace scraper, marktplaats price monitoring, marktplaats api, second hand listings scraper, classifieds data netherlands, marktplaats listings export, reselling arbitrage tool, marktplaats car scraper, marktplaats price tracker, tweedehands scraper, marktplaats data export.

***

### Changelog

- **2026-06-01** — Maintenance & reliability pass: pulled the latest source and rebuilt the Actor on the current base image; build verified.

*Last reviewed: 2026-06-01.*

# Actor input Schema

## `queries` (type: `array`):

Keywords to search on Marktplaats, e.g. 'iphone', 'fiets', 'bank'.

## `query` (type: `string`):

Alternative single keyword. Combined with the list above.

## `startUrls` (type: `array`):

Direct Marktplaats category or search URLs (e.g. https://www.marktplaats.nl/l/auto-s/). Pagination is handled automatically.

## `maxPages` (type: `integer`):

Marktplaats returns 30 listings per page. Scraping stops early when results run out.

## `maxResults` (type: `integer`):

Stop after this many listings total (0 = no limit).

## `includePromoted` (type: `boolean`):

Include sponsored / priority listings in the results.

## `proxyConfiguration` (type: `object`):

Proxy configuration. A Netherlands/EU residential proxy is recommended for large runs.

## Actor input object example

```json
{
  "queries": [
    "iphone"
  ],
  "maxPages": 5,
  "maxResults": 0,
  "includePromoted": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (type: `string`):

Dataset of Marktplaats listings: title, price, location, seller, date & URL.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "queries": [
        "iphone"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("logiover/marktplaats-nl-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "queries": ["iphone"] }

# Run the Actor and wait for it to finish
run = client.actor("logiover/marktplaats-nl-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "queries": [
    "iphone"
  ]
}' |
apify call logiover/marktplaats-nl-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=logiover/marktplaats-nl-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Marktplaats Scraper – NL Classifieds & Prices",
        "description": "Scrape Marktplaats.nl listings in bulk by keyword or category. Extract title, price, location, seller, date, photos and item attributes as clean JSON/CSV/Excel. Built for price monitoring, reselling, market research & lead generation in the Netherlands.",
        "version": "1.0",
        "x-build-id": "dTducQFQpudLUjGz9"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/logiover~marktplaats-nl-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-logiover-marktplaats-nl-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/logiover~marktplaats-nl-scraper/runs": {
            "post": {
                "operationId": "runs-sync-logiover-marktplaats-nl-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/logiover~marktplaats-nl-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-logiover-marktplaats-nl-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "queries": {
                        "title": "Search keywords",
                        "type": "array",
                        "description": "Keywords to search on Marktplaats, e.g. 'iphone', 'fiets', 'bank'.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "query": {
                        "title": "Single keyword (optional)",
                        "type": "string",
                        "description": "Alternative single keyword. Combined with the list above."
                    },
                    "startUrls": {
                        "title": "Category / search URLs (optional)",
                        "type": "array",
                        "description": "Direct Marktplaats category or search URLs (e.g. https://www.marktplaats.nl/l/auto-s/). Pagination is handled automatically.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxPages": {
                        "title": "Max pages per source",
                        "minimum": 1,
                        "maximum": 200,
                        "type": "integer",
                        "description": "Marktplaats returns 30 listings per page. Scraping stops early when results run out.",
                        "default": 5
                    },
                    "maxResults": {
                        "title": "Max results",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Stop after this many listings total (0 = no limit).",
                        "default": 0
                    },
                    "includePromoted": {
                        "title": "Include promoted listings",
                        "type": "boolean",
                        "description": "Include sponsored / priority listings in the results.",
                        "default": true
                    },
                    "proxyConfiguration": {
                        "title": "Proxy",
                        "type": "object",
                        "description": "Proxy configuration. A Netherlands/EU residential proxy is recommended for large runs.",
                        "default": {
                            "useApifyProxy": true
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
