# Marktplaats Product Details Scraper

Extract comprehensive product details from Marktplaats.nl, Netherlands' largest marketplace with 8M monthly visitors and 350K daily listings. Get prices, seller info, categories, and shipping data for market research and competitive analysis.

## Actor Statistics

- Total users: 1
- Monthly users: 1
- Runs succeeded: 100.00%
- Categories: E-commerce, Agents, Automation

## Pricing

$20.00/month + usage

## Input Schema

- **urls** (type: array): Add the URLs of the Specific product urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.
- **max\_retries\_per\_url** (type: integer): Limit the number of retries for each URL, if the scrape is detected as a bot or the page fails to load
- **proxy** (type: object): Select proxies to be used by your scraper.

## API example

## Marktplaats Product Details Scraper

- **OpenAPI Version:** `3.1.1`
- **API Version:** `0.0`

Extract comprehensive product details from Marktplaats.nl, Netherlands' largest marketplace with 8M monthly visitors and 350K daily listings. Get prices, seller info, categories, and shipping data for market research and competitive analysis.

### Servers

- **URL:** `https://api.apify.com/v2`

### Operations

#### Executes an Actor, waits for its completion, and returns Actor's dataset items in response.

- **Method:** `POST`
- **Path:** `/acts/ecomscrape~marktplaats-product-details-scraper/run-sync-get-dataset-items`
- **Tags:** Run Actor

##### Request Body

###### Content-Type: application/json

- **`max_retries_per_url`**

  `integer` — Limit the number of retries for each URL, if the scrape is detected as a bot or the page fails to load

- **`proxy`**

  `object` — Select proxies to be used by your scraper.

- **`urls`**

  `array` — Add the URLs of the Specific product urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.

  **Items:**

  `string`

**Example:**

```
{
  "urls": [
    ""
  ],
  "max_retries_per_url": 1,
  "proxy": {}
}
```

##### Responses

###### Status: 200 OK

#### Executes an Actor and returns information about the initiated run in response.

- **Method:** `POST`
- **Path:** `/acts/ecomscrape~marktplaats-product-details-scraper/runs`
- **Tags:** Run Actor

##### Request Body

###### Content-Type: application/json

- **`max_retries_per_url`**

  `integer` — Limit the number of retries for each URL, if the scrape is detected as a bot or the page fails to load

- **`proxy`**

  `object` — Select proxies to be used by your scraper.

- **`urls`**

  `array` — Add the URLs of the Specific product urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.

  **Items:**

  `string`

**Example:**

```
{
  "urls": [
    ""
  ],
  "max_retries_per_url": 1,
  "proxy": {}
}
```

##### Responses

###### Status: 200 OK

\####### Content-Type: application/json

- **`data`**

  `object`

  - **`actId`**

    `string`

  - **`buildId`**

    `string`

  - **`buildNumber`**

    `string`

  - **`containerUrl`**

    `string`

  - **`defaultDatasetId`**

    `string`

  - **`defaultKeyValueStoreId`**

    `string`

  - **`defaultRequestQueueId`**

    `string`

  - **`finishedAt`**

    `string`, format: `date-time`

  - **`id`**

    `string`

  - **`meta`**

    `object`

    - **`origin`**

      `string`

    - **`userAgent`**

      `string`

  - **`options`**

    `object`

    - **`build`**

      `string`

    - **`diskMbytes`**

      `integer`

    - **`memoryMbytes`**

      `integer`

    - **`timeoutSecs`**

      `integer`

  - **`startedAt`**

    `string`, format: `date-time`

  - **`stats`**

    `object`

    - **`computeUnits`**

      `integer`

    - **`inputBodyLen`**

      `integer`

    - **`rebootCount`**

      `integer`

    - **`restartCount`**

      `integer`

    - **`resurrectCount`**

      `integer`

  - **`status`**

    `string`

  - **`usage`**

    `object`

    - **`ACTOR_COMPUTE_UNITS`**

      `integer`

    - **`DATA_TRANSFER_EXTERNAL_GBYTES`**

      `integer`

    - **`DATA_TRANSFER_INTERNAL_GBYTES`**

      `integer`

    - **`DATASET_READS`**

      `integer`

    - **`DATASET_WRITES`**

      `integer`

    - **`KEY_VALUE_STORE_LISTS`**

      `integer`

    - **`KEY_VALUE_STORE_READS`**

      `integer`

    - **`KEY_VALUE_STORE_WRITES`**

      `integer`

    - **`PROXY_RESIDENTIAL_TRANSFER_GBYTES`**

      `integer`

    - **`PROXY_SERPS`**

      `integer`

    - **`REQUEST_QUEUE_READS`**

      `integer`

    - **`REQUEST_QUEUE_WRITES`**

      `integer`

  - **`usageTotalUsd`**

    `number`

  - **`usageUsd`**

    `object`

    - **`ACTOR_COMPUTE_UNITS`**

      `integer`

    - **`DATA_TRANSFER_EXTERNAL_GBYTES`**

      `integer`

    - **`DATA_TRANSFER_INTERNAL_GBYTES`**

      `integer`

    - **`DATASET_READS`**

      `integer`

    - **`DATASET_WRITES`**

      `integer`

    - **`KEY_VALUE_STORE_LISTS`**

      `integer`

    - **`KEY_VALUE_STORE_READS`**

      `integer`

    - **`KEY_VALUE_STORE_WRITES`**

      `number`

    - **`PROXY_RESIDENTIAL_TRANSFER_GBYTES`**

      `integer`

    - **`PROXY_SERPS`**

      `integer`

    - **`REQUEST_QUEUE_READS`**

      `integer`

    - **`REQUEST_QUEUE_WRITES`**

      `integer`

  - **`userId`**

    `string`

**Example:**

```
{
  "data": {
    "id": "",
    "actId": "",
    "userId": "",
    "startedAt": "2025-01-08T00:00:00.000Z",
    "finishedAt": "2025-01-08T00:00:00.000Z",
    "status": "READY",
    "meta": {
      "origin": "API",
      "userAgent": ""
    },
    "stats": {
      "inputBodyLen": 2000,
      "rebootCount": 0,
      "restartCount": 0,
      "resurrectCount": 0,
      "computeUnits": 0
    },
    "options": {
      "build": "latest",
      "timeoutSecs": 300,
      "memoryMbytes": 1024,
      "diskMbytes": 2048
    },
    "buildId": "",
    "defaultKeyValueStoreId": "",
    "defaultDatasetId": "",
    "defaultRequestQueueId": "",
    "buildNumber": "1.0.0",
    "containerUrl": "",
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0,
      "DATASET_READS": 0,
      "DATASET_WRITES": 0,
      "KEY_VALUE_STORE_READS": 0,
      "KEY_VALUE_STORE_WRITES": 1,
      "KEY_VALUE_STORE_LISTS": 0,
      "REQUEST_QUEUE_READS": 0,
      "REQUEST_QUEUE_WRITES": 0,
      "DATA_TRANSFER_INTERNAL_GBYTES": 0,
      "DATA_TRANSFER_EXTERNAL_GBYTES": 0,
      "PROXY_RESIDENTIAL_TRANSFER_GBYTES": 0,
      "PROXY_SERPS": 0
    },
    "usageTotalUsd": 0.00005,
    "usageUsd": {
      "ACTOR_COMPUTE_UNITS": 0,
      "DATASET_READS": 0,
      "DATASET_WRITES": 0,
      "KEY_VALUE_STORE_READS": 0,
      "KEY_VALUE_STORE_WRITES": 0.00005,
      "KEY_VALUE_STORE_LISTS": 0,
      "REQUEST_QUEUE_READS": 0,
      "REQUEST_QUEUE_WRITES": 0,
      "DATA_TRANSFER_INTERNAL_GBYTES": 0,
      "DATA_TRANSFER_EXTERNAL_GBYTES": 0,
      "PROXY_RESIDENTIAL_TRANSFER_GBYTES": 0,
      "PROXY_SERPS": 0
    }
  }
}
```

#### Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.

- **Method:** `POST`
- **Path:** `/acts/ecomscrape~marktplaats-product-details-scraper/run-sync`
- **Tags:** Run Actor

##### Request Body

###### Content-Type: application/json

- **`max_retries_per_url`**

  `integer` — Limit the number of retries for each URL, if the scrape is detected as a bot or the page fails to load

- **`proxy`**

  `object` — Select proxies to be used by your scraper.

- **`urls`**

  `array` — Add the URLs of the Specific product urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.

  **Items:**

  `string`

**Example:**

```
{
  "urls": [
    ""
  ],
  "max_retries_per_url": 1,
  "proxy": {}
}
```

##### Responses

###### Status: 200 OK

### Schemas

#### inputSchema

- **Type:**`object`

* **`max_retries_per_url`**

  `integer` — Limit the number of retries for each URL, if the scrape is detected as a bot or the page fails to load

* **`proxy`**

  `object` — Select proxies to be used by your scraper.

* **`urls`**

  `array` — Add the URLs of the Specific product urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.

  **Items:**

  `string`

**Example:**

```
{
  "urls": [
    ""
  ],
  "max_retries_per_url": 1,
  "proxy": {}
}
```

#### runsResponseSchema

- **Type:**`object`

* **`data`**

  `object`

  - **`actId`**

    `string`

  - **`buildId`**

    `string`

  - **`buildNumber`**

    `string`

  - **`containerUrl`**

    `string`

  - **`defaultDatasetId`**

    `string`

  - **`defaultKeyValueStoreId`**

    `string`

  - **`defaultRequestQueueId`**

    `string`

  - **`finishedAt`**

    `string`, format: `date-time`

  - **`id`**

    `string`

  - **`meta`**

    `object`

    - **`origin`**

      `string`

    - **`userAgent`**

      `string`

  - **`options`**

    `object`

    - **`build`**

      `string`

    - **`diskMbytes`**

      `integer`

    - **`memoryMbytes`**

      `integer`

    - **`timeoutSecs`**

      `integer`

  - **`startedAt`**

    `string`, format: `date-time`

  - **`stats`**

    `object`

    - **`computeUnits`**

      `integer`

    - **`inputBodyLen`**

      `integer`

    - **`rebootCount`**

      `integer`

    - **`restartCount`**

      `integer`

    - **`resurrectCount`**

      `integer`

  - **`status`**

    `string`

  - **`usage`**

    `object`

    - **`ACTOR_COMPUTE_UNITS`**

      `integer`

    - **`DATA_TRANSFER_EXTERNAL_GBYTES`**

      `integer`

    - **`DATA_TRANSFER_INTERNAL_GBYTES`**

      `integer`

    - **`DATASET_READS`**

      `integer`

    - **`DATASET_WRITES`**

      `integer`

    - **`KEY_VALUE_STORE_LISTS`**

      `integer`

    - **`KEY_VALUE_STORE_READS`**

      `integer`

    - **`KEY_VALUE_STORE_WRITES`**

      `integer`

    - **`PROXY_RESIDENTIAL_TRANSFER_GBYTES`**

      `integer`

    - **`PROXY_SERPS`**

      `integer`

    - **`REQUEST_QUEUE_READS`**

      `integer`

    - **`REQUEST_QUEUE_WRITES`**

      `integer`

  - **`usageTotalUsd`**

    `number`

  - **`usageUsd`**

    `object`

    - **`ACTOR_COMPUTE_UNITS`**

      `integer`

    - **`DATA_TRANSFER_EXTERNAL_GBYTES`**

      `integer`

    - **`DATA_TRANSFER_INTERNAL_GBYTES`**

      `integer`

    - **`DATASET_READS`**

      `integer`

    - **`DATASET_WRITES`**

      `integer`

    - **`KEY_VALUE_STORE_LISTS`**

      `integer`

    - **`KEY_VALUE_STORE_READS`**

      `integer`

    - **`KEY_VALUE_STORE_WRITES`**

      `number`

    - **`PROXY_RESIDENTIAL_TRANSFER_GBYTES`**

      `integer`

    - **`PROXY_SERPS`**

      `integer`

    - **`REQUEST_QUEUE_READS`**

      `integer`

    - **`REQUEST_QUEUE_WRITES`**

      `integer`

  - **`userId`**

    `string`

**Example:**

```
{
  "data": {
    "id": "",
    "actId": "",
    "userId": "",
    "startedAt": "2025-01-08T00:00:00.000Z",
    "finishedAt": "2025-01-08T00:00:00.000Z",
    "status": "READY",
    "meta": {
      "origin": "API",
      "userAgent": ""
    },
    "stats": {
      "inputBodyLen": 2000,
      "rebootCount": 0,
      "restartCount": 0,
      "resurrectCount": 0,
      "computeUnits": 0
    },
    "options": {
      "build": "latest",
      "timeoutSecs": 300,
      "memoryMbytes": 1024,
      "diskMbytes": 2048
    },
    "buildId": "",
    "defaultKeyValueStoreId": "",
    "defaultDatasetId": "",
    "defaultRequestQueueId": "",
    "buildNumber": "1.0.0",
    "containerUrl": "",
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0,
      "DATASET_READS": 0,
      "DATASET_WRITES": 0,
      "KEY_VALUE_STORE_READS": 0,
      "KEY_VALUE_STORE_WRITES": 1,
      "KEY_VALUE_STORE_LISTS": 0,
      "REQUEST_QUEUE_READS": 0,
      "REQUEST_QUEUE_WRITES": 0,
      "DATA_TRANSFER_INTERNAL_GBYTES": 0,
      "DATA_TRANSFER_EXTERNAL_GBYTES": 0,
      "PROXY_RESIDENTIAL_TRANSFER_GBYTES": 0,
      "PROXY_SERPS": 0
    },
    "usageTotalUsd": 0.00005,
    "usageUsd": {
      "ACTOR_COMPUTE_UNITS": 0,
      "DATASET_READS": 0,
      "DATASET_WRITES": 0,
      "KEY_VALUE_STORE_READS": 0,
      "KEY_VALUE_STORE_WRITES": 0.00005,
      "KEY_VALUE_STORE_LISTS": 0,
      "REQUEST_QUEUE_READS": 0,
      "REQUEST_QUEUE_WRITES": 0,
      "DATA_TRANSFER_INTERNAL_GBYTES": 0,
      "DATA_TRANSFER_EXTERNAL_GBYTES": 0,
      "PROXY_RESIDENTIAL_TRANSFER_GBYTES": 0,
      "PROXY_SERPS": 0
    }
  }
}
```

## 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 = {
    "urls": [
        "https://www.marktplaats.nl/v/huizen-en-kamers/huizen-te-huur/m2301583730-nieuw-woonruimte-te-huur-koopvaardijstraat-tilburg"
    ],
    "max_retries_per_url": 2,
    "proxy": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("ecomscrape/marktplaats-product-details-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 = {
    "urls": ["https://www.marktplaats.nl/v/huizen-en-kamers/huizen-te-huur/m2301583730-nieuw-woonruimte-te-huur-koopvaardijstraat-tilburg"],
    "max_retries_per_url": 2,
    "proxy": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("ecomscrape/marktplaats-product-details-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 '{
  "urls": [
    "https://www.marktplaats.nl/v/huizen-en-kamers/huizen-te-huur/m2301583730-nieuw-woonruimte-te-huur-koopvaardijstraat-tilburg"
  ],
  "max_retries_per_url": 2,
  "proxy": {
    "useApifyProxy": false
  }
}' |
apify call ecomscrape/marktplaats-product-details-scraper --silent --output-dataset

```

## MCP server setup

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

```

## Contact

If you encounter any issues or need to exchange information, please feel free to contact us through the following link:
[My profile](https://apify.com/ecomscrape)

## **Marktplaats Product Details Scraper: Complete Product Data Extraction Tool**

### Introduction

Marktplaats.nl stands as the Netherlands' largest classified advertising platform, attracting over 8 million monthly visitors and hosting 350,000 new listings daily. As the country's premier marketplace for both new and second-hand goods, Marktplaats represents a goldmine of commercial intelligence that can drive strategic business decisions across various industries.

The challenge many businesses, researchers, and entrepreneurs face is accessing this wealth of data efficiently. Manual browsing through thousands of listings is time-consuming and prone to human error. This is where a specialized Marktplaats scraper becomes invaluable, transforming scattered marketplace data into structured, actionable insights that can inform pricing strategies, market research, and competitive analysis.

### Comprehensive Marktplaats Data Extraction Tool

Our Marktplaats Product Details Scraper is designed specifically to handle the complexities of extracting data from this established platform that has been serving Dutch consumers since 1999. The scraper efficiently navigates through product listings across all categories, from real estate and vehicles to electronics and business equipment, capturing detailed information that would otherwise require hours of manual collection.

The tool is particularly valuable for e-commerce professionals, market researchers, pricing analysts, and businesses looking to understand market trends in the Netherlands. Whether you're analyzing competitor pricing, researching product availability, or conducting market feasibility studies, this scraper provides the comprehensive data extraction capabilities you need.

Built with robust anti-detection measures and proxy support, the scraper ensures reliable data collection while respecting website policies and maintaining consistent access to product information.

### Input and Output Format Details

Example url 1: https://www.marktplaats.nl/v/huizen-en-kamers/huizen-te-huur/m2301583730-nieuw-woonruimte-te-huur-koopvaardijstraat-tilburg

Example url 2: https://www.marktplaats.nl/v/zakelijke-goederen/agrarisch-tractoren/m2301582653-zetor-primo-ht20-mini-tractor-hst-ondermaaidek-fronthef-20

Example url 3: https://www.marktplaats.nl/v/zakelijke-goederen/horeca-keukenapparatuur/m2301579959-mach-100ms-vaatwasser-horeca

Example Screenshot of product information page:

![](https://i.ibb.co/9m49gMcs/Screenshot-from-2025-08-20-11-18-50.png)

#### Input Format

The scraper accepts a JSON configuration specifying the product URLs to extract data from, along with proxy settings and retry parameters:

```json
{
  "max_retries_per_url": 2, // Maximum waiting time when accessing the links you provided.
  "proxy": { // Add a proxy to ensure that during the data collection process, you are not detected as a bot.
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL" 
    ],
    "apifyProxyCountry": "SG" // You should choose an Country that coincides with the Country you want to collect data from
  },
  "urls": [ // Links to product information pages.
    "https://www.marktplaats.nl/v/huizen-en-kamers/huizen-te-huur/m2301583730-nieuw-woonruimte-te-huur-koopvaardijstraat-tilburg",
    "https://www.marktplaats.nl/v/zakelijke-goederen/agrarisch-tractoren/m2301582653-zetor-primo-ht20-mini-tractor-hst-ondermaaidek-fronthef-20",
    "https://www.marktplaats.nl/v/zakelijke-goederen/horeca-keukenapparatuur/m2301579959-mach-100ms-vaatwasser-horeca"
  ]
}
```

**Key Input Parameters:**

- **max\_retries\_per\_url**: Controls persistence when accessing listings, ensuring data collection even from slow-loading pages
- **proxy settings**: Essential for avoiding bot detection, with residential proxies recommended for consistent access
- **urls**: Direct links to specific product listing pages on Marktplaats

#### Output Format

You get the output from the Stockx.com Product Details Page Scraper stored in a tab. The following is an example of the Information Fields collected after running the Actor.

```json
[ // List of product information
  {
  "item_id": "m2301583730",
  "title": "NIEUW! Woonruimte te huur Koopvaardijstraat, Tilburg",
  "traits": [
    "PACKAGE_FREE"
  ],
  "ad_type": "ViaPartner",
  "bids_info": {
    "is_bidding_enabled": false,
    "is_removing_bid_enabled": false,
    "bids": []
  },
  "price_info": {
    "price_cents": 118400,
    "price_type": "FIXED"
  },
  "custom_dimensions": [
    {
      "index": "seller_account_type",
      "name": "SellerAccountType",
      "scope_level": 3,
      "value": "Regular"
    },
    {
      "index": "seller_name",
      "name": "SellerName",
      "scope_level": 3,
      "value": "Woonnet"
    },
    {
      "index": "seller_id",
      "name": "SellerID",
      "scope_level": 3,
      "value": "50852426"
    },
    {
      "index": "ad_price",
      "name": "AskingPrice",
      "scope_level": 3,
      "value": "118400"
    },
    {
      "index": "ad_type",
      "name": "AdType",
      "scope_level": 3,
      "value": "ViaPartner"
    },
    {
      "index": "ad_seller_type",
      "name": "SellerType",
      "scope_level": 3,
      "value": "TRADER"
    },
    {
      "index": "buyerProtection",
      "name": "AdHasBuyerProtection",
      "scope_level": 3,
      "value": "0"
    },
    {
      "index": "shipping_price",
      "name": "ShippingCost",
      "scope_level": 3,
      "value": "{\"Unavailable\":null}"
    }
  ],
  "seller": {
    "id": 50852426,
    "encrypted_seller_id": "B56F492C009E6EF67EE539B1B3DE2CC2",
    "name": "Woonnet",
    "page_url": "/u/woonnet/50852426/",
    "active_since": "2024-02-20T08:15:56Z",
    "is_asq_enabled": false,
    "is_saved": true,
    "phone_number": "",
    "phone_number_hidden": false,
    "seller_website_url": "https://www.marktplaats.nl/externalUrl/redirect/2301583730.html",
    "seller_website_display_url": "www.woonnet.nl/huurwoning/tilburg/koopvaardijstraat-tilburg-2",
    "seller_type": "TRADER",
    "show_map": true,
    "show_seller_reviews": true,
    "show_profile_picture": false,
    "show_sales_representatives": false,
    "show_seller_response_rate": true,
    "finance_available": false,
    "request_external_reviews": false,
    "allow_car_test_drive_request": false,
    "with_call_availability_indicator": false,
    "location": {
      "is_abroad": false,
      "city_name": "Naarden",
      "country_name": "Nederland",
      "is_on_country_level": false,
      "country_abbreviation": "NL",
      "latitude": 52.306927315611,
      "longitude": 5.1379308027116
    },
    "contact_options": [
      "website"
    ]
  },
  "gallery": {
    "image_urls": [
      "//images.marktplaats.com/api/v1/listing-mp-p/images/fc/fc1ffb3e-43b6-419b-adbd-8a2b948a395c?rule=ecg_mp_eps$_#.jpg"
    ],
    "media": {
      "image_sizes": {
        "x_l": "84",
        "m": "82",
        "x_x_x_l": "86",
        "l": "83",
        "x_x_l": "85",
        "x_x_s": "14",
        "x_s": "14",
        "s": "82"
      },
      "images": [
        {
          "media_id": "5ede1654-128b-4a00-832e-ea083b79828e",
          "base": "//images.marktplaats.com/api/v1/listing-mp-p/images/fc/fc1ffb3e-43b6-419b-adbd-8a2b948a395c?rule=ecg_mp_eps$_#.jpg",
          "original_height": 576,
          "original_width": 1024,
          "aspect_ratio": {
            "width": 16,
            "height": 9
          }
        }
      ]
    },
    "alt": "NIEUW! Woonruimte te huur Koopvaardijstraat, Tilburg, Huizen en Kamers, Huizen te huur"
  },
  "shipping_information": {
    "augmented_labels": [
      {
        "should_show_more_info": true,
        "carrier_id": "dhl-nl",
        "labels": [
          {
            "label": "Afhaalpunt via DHL vanaf",
            "price": "€ 4,95",
            "carrier_name": "DHL",
            "delivery_method": "PICK_UP"
          }
        ]
      },
      {
        "should_show_more_info": true,
        "carrier_id": "postnl",
        "labels": [
          {
            "label": "Thuisbezorgd via PostNL vanaf",
            "price": "€ 6,95",
            "carrier_name": "PostNL",
            "delivery_method": "DELIVERY"
          }
        ]
      }
    ]
  },
  "stats": {
    "favorited_count": 0,
    "view_count": 2,
    "since": "2025-08-20T04:00:12Z"
  },
  "category": {
    "id": 2143,
    "name": "Huizen",
    "full_name": "Huizen te huur",
    "parent_id": 1032,
    "parent_name": "Huizen en Kamers"
  },
  "is_saved": false,
  "is_saving_enabled": true,
  "is_free_ad": true,
  "is_animal_ad": false,
  "is_car_ad": false,
  "is_automotive_ad": false,
  "is_caravans_and_camping_ad": false,
  "flags": {
    "show_banners_on_vip": true,
    "show_external_ads": true,
    "request_relevant_items": true,
    "is_admarkt": false,
    "allow_trade_in_request": false,
    "shippable": false,
    "request_feeds": false,
    "has_call_tracking": false,
    "is_lease_car": false,
    "show_loan_indicators": false,
    "is_in_bin_excluded_categories": true,
    "with_banners_from_seller": false
  },
  "highlights": [],
  "buyers_protection_allowed": false,
  "buyers_protection_modal_image_url": "//www.hzcdn.io/bff/static/images/buyer-protection-modal-image.c0b55884.svg",
  "thin_content": false,
  "buy_it_now_enabled": false,
  "large_item_shipping_logical_allowed": false
}, // ... Many other product details
]
```

The scraper returns comprehensive product information structured across multiple categories:

**Core Product Information:**

- **Item ID**: Unique Marktplaats identifier for tracking and reference
- **Title**: Complete product title as listed by the seller
- **Traits**: Product characteristics and specifications
- **Category**: Hierarchical category classification for market segmentation

**Commercial Data:**

- **Price Info**: Current asking price, price changes, and pricing structure
- **Ad Type**: Distinguishes between private sellers and business listings
- **Bids Info**: Auction-style listing data when applicable
- **Buyers Protection Allowed**: Consumer protection eligibility status

**Seller Intelligence:**

- **Seller**: Complete seller profile information and ratings
- **Stats**: Historical performance and reliability metrics
- **Shipping Information**: Delivery options, costs, and geographic coverage

**Visual and Marketing Assets:**

- **Gallery**: Complete image collection for visual analysis
- **Highlights**: Featured selling points and promotional elements
- **Buyers Protection Modal Image URL**: Consumer protection visual assets

**Advanced Categorization Flags:**

- **Is Car Ad / Is Automotive Ad**: Vehicle-specific classification
- **Is Animal Ad**: Pet and livestock identification
- **Is Caravans and Camping Ad**: Recreation vehicle categorization
- **Is Free Ad**: No-cost listing identification

**Transaction Features:**

- **Buy It Now Enabled**: Immediate purchase availability
- **Large Item Shipping Logical Allowed**: Bulk item delivery options
- **Custom Dimensions**: Product-specific measurements and specifications

Each field serves specific analytical purposes: Price Info enables competitive pricing analysis, Seller data supports vendor research, Category information facilitates market segmentation, and the various classification flags allow for targeted niche analysis.

### Step-by-Step Usage Guide

**Step 1: URL Collection**
Identify the specific Marktplaats product pages you want to scrape. Ensure URLs are complete and properly formatted, including the full product path.

**Step 2: Configuration Setup**
Configure proxy settings to match your target geographic region. For Dutch market analysis, consider using Netherlands-based proxies to ensure accurate regional pricing and availability.

**Step 3: Execution and Monitoring**
Run the scraper with appropriate retry settings. Monitor the extraction process to ensure successful data capture, particularly for high-value or time-sensitive listings.

**Best Practices:**

- Use residential proxies to avoid detection
- Implement reasonable delays between requests
- Regularly update URL lists to capture fresh market data
- Validate extracted data for completeness and accuracy

**Common Issue Resolution:**

- Handle rate limiting by adjusting request frequency
- Address blocked requests through proxy rotation
- Manage dynamic content by ensuring adequate page load times

### Business Value and Applications

The extracted Marktplaats data provides significant competitive advantages across multiple business scenarios. E-commerce businesses can perform comprehensive competitor price monitoring, identifying optimal pricing strategies by analyzing similar products across different sellers and categories.

Market researchers gain access to real-time consumer behavior insights, tracking product demand patterns, seasonal variations, and emerging market trends within the Dutch consumer marketplace. The shipping information and seller data enable logistics analysis and supplier discovery for businesses expanding into Netherlands markets.

For investment and business development purposes, the comprehensive product and pricing data supports market entry feasibility studies, helping companies understand product positioning, competitive landscape, and consumer price sensitivity in specific categories.

### Conclusion

The Marktplaats Product Details Scraper transforms Netherlands' largest marketplace into a structured data resource for business intelligence and market analysis. By automating the extraction of comprehensive product information, pricing data, and seller insights, this tool enables data-driven decision making for businesses operating in or entering Dutch markets.

Whether you're conducting competitive analysis, market research, or seeking supplier insights, this scraper provides the robust data foundation necessary for informed business strategies in the Netherlands' dynamic e-commerce landscape.

## Related Actors

- [**Marktplaats Product Search Scraper**](https://apify.com/ecomscrape/marktplaats-product-search-scraper): A specialized data extraction solution engineered to harvest comprehensive product information from Marktplaats's marketplace.

## Your feedback

We are always working to improve Actors' performance. So, if you have any technical feedback about Marktplaats Product Details Scraper or simply found a bug, please create an issue on the Actor's Issues tab in Apify Console.
