# Marktplaats Listings Scraper (`fetch_cat/marktplaats-listings-scraper`) Actor

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

- **URL**: https://apify.com/fetch\_cat/marktplaats-listings-scraper.md
- **Developed by:** [Hanna Nosova](https://apify.com/fetch_cat) (community)
- **Categories:** E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.30 / 1,000 listing saveds

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 Listings Scraper

Extract public Marktplaats.nl listings from search keywords or search URLs. Get prices, sellers, locations, images, descriptions, attributes, and listing URLs in a clean Apify dataset.

### What does Marktplaats Listings Scraper do?

Marktplaats Listings Scraper turns public Marktplaats search results into structured data for spreadsheets, dashboards, alerts, enrichment workflows, and market research.

Use it to monitor Dutch classifieds inventory, compare prices, watch seller activity, collect item metadata, or build lead lists from public marketplace listings.

### Who is it for?

- **Resellers and marketplace operators** tracking price movements and inventory.
- **Analysts and researchers** comparing products, locations, categories, and sellers.
- **Growth and lead teams** finding public listings that match a niche.
- **Automation builders** feeding Marktplaats data into alerts, CRMs, or BI tools.

### Ready-to-run examples

#### Search by keyword

```json
{
  "queries": ["iphone"],
  "maxItems": 30,
  "includeDetails": false
}
````

#### Scrape a specific Marktplaats search URL

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

### Input

| Field | Type | Description |
| --- | --- | --- |
| `queries` | array of strings | Marktplaats search keywords, for example `iphone` or `bakfiets`. |
| `startUrls` | array of URLs | Public Marktplaats search result URLs. |
| `maxItems` | integer | Maximum number of listings to save. |
| `includeDetails` | boolean | Fetch each public listing page for extra description text. |
| `proxy` | object | Optional Apify Proxy settings for higher-volume runs. |

Provide at least one keyword or one search URL.

### Output

Each dataset item is a public listing record:

```json
{
  "listingId": "m2417914385",
  "title": "iPhone 16 met beschermhoesje 256 GB",
  "url": "https://www.marktplaats.nl/v/telecommunicatie/...",
  "priceText": "Bieden",
  "priceValue": null,
  "priceCurrency": "EUR",
  "location": "Appingedam, Nederland",
  "sellerName": "K.Venema",
  "description": "Te koop: iphone 16...",
  "postedAtText": "Vandaag",
  "imageUrls": ["https://images.marktplaats.com/...jpg"],
  "attributes": [{ "key": "condition", "value": "Zo goed als nieuw" }],
  "scrapedAt": "2026-07-07T09:00:00.000Z"
}
```

#### Output fields

`listingId`, `title`, `url`, `searchUrl`, `query`, `rank`, `priceText`, `priceValue`, `priceCurrency`, `priceType`, `location`, `city`, `country`, `latitude`, `longitude`, `sellerName`, `sellerId`, `sellerVerified`, `description`, `detailDescription`, `categoryId`, `postedAtText`, `imageUrls`, `attributes`, `extendedAttributes`, `priorityProduct`, `reserved`, `scrapedAt`.

### Pricing

This actor uses pay-per-event pricing:

- Start: $0.00005 per run.
- Listing result: measured tiered pricing is set from cloud validation before Store publishing.

You only pay item events for records saved to the dataset.

### API

Run the actor with the Apify API:

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

### MCP

Use this actor from agents through Apify MCP:

```text
https://mcp.apify.com/?tools=fetch_cat/marktplaats-listings-scraper
```

### Tips and limits

- Start with low `maxItems` values while tuning a search.
- `includeDetails` is slower because it opens each public listing page.
- The actor does not access private messages, contact details behind login, or account-only data.
- Very large runs may require proxy settings if Marktplaats rate-limits repeated requests.

### FAQ

#### Do I need a Marktplaats account?

No. The actor extracts public listing data visible without logging in.

#### Can it scrape seller phone numbers or private contact data?

No. It only exports public listing metadata and does not perform logged-in contact flows.

#### Can I use URLs instead of keywords?

Yes. Paste public Marktplaats search URLs into `startUrls`.

#### What should I include when asking for support?

Please include your run ID or run URL, input JSON, expected output, and actual output.

### Related actors

- [Google Shopping Scraper](https://apify.com/fetch_cat/google-shopping-scraper) for product price research.
- [eBay Scraper alternatives on Apify](https://apify.com/store?search=eBay) for broader marketplace monitoring.
- [Google Jobs Scraper](https://apify.com/fetch_cat/google-jobs-scraper) for public search result extraction workflows.

### Support

Open an Apify issue with your run URL, input JSON, expected output, and actual output. We will use that information to reproduce and fix the problem.

### Changelog

- Initial version: public Marktplaats search scraping with optional listing detail description enrichment.

# Actor input Schema

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

Marktplaats search keywords, for example iphone, bakfiets, or vintage lamp.

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

Public Marktplaats search URLs to scrape. You can combine URLs and keywords.

## `maxItems` (type: `integer`):

Maximum number of listing records to save.

## `includeDetails` (type: `boolean`):

Fetch each public listing detail page to add its meta description. Slower but useful for richer exports.

## `proxy` (type: `object`):

Optional Apify Proxy settings for higher-volume runs.

## Actor input object example

```json
{
  "queries": [
    "iphone"
  ],
  "startUrls": [
    {
      "url": "https://www.marktplaats.nl/q/iphone/"
    }
  ],
  "maxItems": 20,
  "includeDetails": false,
  "proxy": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# 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"
    ],
    "startUrls": [
        {
            "url": "https://www.marktplaats.nl/q/iphone/"
        }
    ],
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("fetch_cat/marktplaats-listings-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"],
    "startUrls": [{ "url": "https://www.marktplaats.nl/q/iphone/" }],
    "maxItems": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("fetch_cat/marktplaats-listings-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"
  ],
  "startUrls": [
    {
      "url": "https://www.marktplaats.nl/q/iphone/"
    }
  ],
  "maxItems": 20
}' |
apify call fetch_cat/marktplaats-listings-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Marktplaats Listings Scraper",
        "description": "Scrape public Marktplaats.nl listings by keyword or search URL, including prices, sellers, locations, images, descriptions, and attributes.",
        "version": "0.1",
        "x-build-id": "GRmunZLC3PQRQvovn"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/fetch_cat~marktplaats-listings-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-fetch_cat-marktplaats-listings-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/fetch_cat~marktplaats-listings-scraper/runs": {
            "post": {
                "operationId": "runs-sync-fetch_cat-marktplaats-listings-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/fetch_cat~marktplaats-listings-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-fetch_cat-marktplaats-listings-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": "Keywords",
                        "type": "array",
                        "description": "Marktplaats search keywords, for example iphone, bakfiets, or vintage lamp.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "startUrls": {
                        "title": "Search URLs",
                        "type": "array",
                        "description": "Public Marktplaats search URLs to scrape. You can combine URLs and keywords.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxItems": {
                        "title": "Maximum listings",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of listing records to save.",
                        "default": 20
                    },
                    "includeDetails": {
                        "title": "Include listing detail descriptions",
                        "type": "boolean",
                        "description": "Fetch each public listing detail page to add its meta description. Slower but useful for richer exports.",
                        "default": false
                    },
                    "proxy": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Optional Apify Proxy settings for higher-volume runs.",
                        "default": {
                            "useApifyProxy": false
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
