# Vergelijk Product Search Scraper (`stealth_mode/vergelijk-product-search-scraper`) Actor

Scrape product listings from Vergelijk.be (varusok.se, sammenlign.dk, sammenlign.no, vergelijk.nl, comparer.be, comparer.fr, bestekauf.de) with complete pricing intelligence. Extract product summaries, shop offers, discounts, EANs, and SKUs from comparison pages.

- **URL**: https://apify.com/stealth\_mode/vergelijk-product-search-scraper.md
- **Developed by:** [Stealth mode](https://apify.com/stealth_mode) (community)
- **Categories:** Automation, Developer tools, E-commerce
- **Stats:** 3 total users, 2 monthly users, 96.2% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 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 web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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/docs.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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

## Vergelijk Product Search Scraper: Compare Prices Across Retailers
---

### What Is Vergelijk?

Vergelijk.be (varusok.se, sammenlign.dk, sammenlign.no, vergelijk.nl, comparer.be, comparer.fr, bestekauf.de) is leading product comparison platform, aggregating prices and offers from dozens of online retailers. Whether searching for beauty products, electronics, or home goods, Vergelijk consolidates shop prices, discounts, and availability in one place. For businesses needing competitive pricing data, manually checking dozens of product pages is impractical — the **Vergelijk Product Search Scraper** automates extraction, delivering structured price intelligence at scale.

---

### Overview

The **Vergelijk Product Search Scraper** extracts product listings and pricing data from Vergelijk.be search results pages. It is ideal for:

- **E-commerce businesses** monitoring competitor pricing and discounts
- **Price comparison platforms** feeding Vergelijk data into aggregators
- **Market researchers** analyzing product availability and retail landscapes
- **Deal hunters** identifying best offers programmatically
- **Data analysts** building historical price datasets for trend analysis

The scraper handles pagination, shop offer aggregation, and deal detection — all with configurable limits and error tolerance.

---

### Input Format

The scraper accepts a JSON configuration object:

```json
{
  "urls": [
    "https://www.vergelijk.be/geuren_voor_haar/p/2/"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 200
}
````

#### Input Parameters Explained

| Parameter | Type | Description |
|---|---|---|
| `urls` | Array | URLs of Vergelijk.be (varusok.se, sammenlign.dk, sammenlign.no, vergelijk.nl, comparer.be, comparer.fr, bestekauf.de) product search/category pages to scrape. Paste search results pages (e.g., category pages, filtered searches). Supports pagination URLs. |
| `ignore_url_failures` | Boolean | If `true`, the scraper continues running even if some URLs fail. If `false`, a single failure stops the entire run. Default: `true` (recommended for large batches). |
| `max_items_per_url` | Integer | Maximum number of products extracted per URL (e.g., `200`). Limits data volume and run duration. Set higher for exhaustive collection, lower for quick samples. |

> **Tip:** Search result pages typically show 20–50 products per page. Set `max_items_per_url` to 100–200 for complete category coverage.

***

### Output Format

**Sample output**

```json
{
  "product_summary": {
    "id": 509919966,
    "name": "Vrouwengeuren Good Girl Hair Mist",
    "brand": {
      "name": "Carolina Herrera",
      "uri": "carolina_herrera"
    },
    "image_basenames": [
      "//pc.vergelijk.be/{{size}}/488885227.webp",
      "//pc.vergelijk.be/{{size}}/695519867.webp",
      "//pc.vergelijk.be/{{size}}/695519866.webp",
      "//pc.vergelijk.be/{{size}}/670463308.webp",
      "//pc.vergelijk.be/{{size}}/649256535.webp"
    ],
    "view_recent": 26,
    "user_feedback": {
      "average_rating": 9.61,
      "number_of_reviews": 183,
      "review_grades_map": {
        "1": 7,
        "2": 0,
        "3": 3,
        "4": 4,
        "5": 169
      },
      "external_reviews": true
    },
    "badges": [],
    "path": {
      "category_url": "geuren_voor_haar",
      "brand_url": "carolina_herrera",
      "product_url": "good_girl_hair_mist_eau_de_perfume_30ml_509919966"
    },
    "category_id": 3316,
    "category_name": "Dames Parfums",
    "description": "Verrijk je glamoureuze Good Girl beautyritueel met Carolina Herrera Good Girl Hair Mist, een luxe haarspray die het haar direct verzorgt, glans geeft en heerlijk laat ruiken. De originele Good Girl geur, een iconische geur met een verleidelijke combinatie van lichte en donkere noten, is geïnspireerd op de dualiteit van de moderne vrouw. Haar gelaagde karakter is vertaald naar een geurige mist speciaal voor het haar, die een extra facet van schoonheid toevoegt. De zoete, verleidelijke eigenschappen van jasmijn geven Good Girl een stralende vrouwelijkheid.",
    "cheapest_price": 40.59,
    "cheapest_price_including_deals": 34.99,
    "deal_type": "DISCOUNT",
    "variants_available": [],
    "is_brand_important": true
  },
  "cheapest_online_shop_offer": {
    "@type": "OnlineOfferBlock",
    "shop_offer_summary": {
      "shop": {
        "id": 12133,
        "group_id": 4141995,
        "uri": "deloox_be",
        "brand": {
          "name": "Deloox",
          "uri": "deloox_be",
          "logo_uri": "//sc.vergelijk.be/shoplogos/{{size}}/deloox_fi.png"
        },
        "user_feedback": {
          "average_rating": 7.666666666666667,
          "number_of_reviews": 1
        },
        "quality_marks": [
          {
            "icon_uri": "//sc.vergelijk.be/quality_marks/{{size}}/THUISWINKEL.png",
            "url": "https://www.thuiswinkel.org/leden/superwinkel.nl"
          }
        ],
        "roas_type": "Target ROAS"
      },
      "offer": {
        "@type": "OnlineOfferSummaryDTO",
        "id": "24793a12cf7fb1cff698ebc849e54fd7",
        "base_price": 40.59,
        "base_price_including_deals": 34.99,
        "total_price": 40.59,
        "total_price_including_deals": 34.99,
        "delivery_costs": 0,
        "offer_name": "Carolina Herrera Good Girl Hair Mist 30 ml",
        "deal": {
          "@type": "DealSummary",
          "base_discounted_price": 34.99,
          "discounted_price": 34.99,
          "description": {
            "duration": 3660,
            "terms_and_conditions": "",
            "promotion_text": "14% korting",
            "deal_type": "DISCOUNT"
          }
        },
        "delivery_time": {
          "key": "offer_sdt_24_hrs",
          "value": "24u"
        },
        "clickout_hash": "3q8v2Ul90qdsvRWIJ33f3VRsZ35xtZwz1JTJjjfWRSe6u7VOE7kNv--fAUN4Ouy0pq-8AGAsEkRaufDdajRMvFvUIZUGqtbqoRWNsfjVA9WoPUhPrZUNtMzFPDoTDEp2xHMd2dGeTIssddEt5eJvsz2qcZsQlwljdWMILK319tOD6f3lY-D1VKlue26A_UEAbNyGhfaGW0wO0z49lYrk3W9turrfYXN7-KxsApV-bvU9_OvZpUK3ibprk7Exhf_IlxeV5oyA1_rpg2ZCDU3aRE5JLCgJGqXpxp04jRGTbYaYKl1LY9B0NTsA8JoWJQnrJUh3Ydw13KRwsDxHZTgcc7Ully61UTOtfzcxRGqoJiValAe5me2KOeIXDAM-3wB1dpNZGD4U4t1iyBo-XFpLsgkVq8yfB5m1nB4MbtJK0lBt3_Up0qPNcYFI4CyQeHUjefZrNOmM6Qr_ZT_3N4muVpBYGK7LNx7R92lfxa_ttETmAxupZ270CKt_4hh2SOAsFwGHmCwa4L9qNfGZ0H9YwR4IZFICNsBDK1THvLpRLAZMz2EJvTq65XdjgLxujU__Ozzqewj3x5OzqrbARSaG4bRb7AURlc1Wwkik9AvyyVg",
        "product_state": "NEW",
        "product_condition": "NEW",
        "price_per_unit": {
          "@type": "PricePerUnit",
          "price": 1166.33,
          "units": 1,
          "unit": "liter"
        },
        "price_drop": {
          "@type": "PriceDrop"
        },
        "offer_count": 4,
        "max_offer_base_price_including_deals": 50.78,
        "max_offer_total_price_including_deals": 54.73,
        "offer_snapshot": {
          "offer_id": "24793a12cf7fb1cff698ebc849e54fd7",
          "brand_name": "Carolina Herrera",
          "offer_name": "Carolina Herrera Good Girl Hair Mist 30 ml",
          "delivery_time": "offer_sdt_24_hrs",
          "product_name": "Vrouwengeuren Good Girl Hair Mist",
          "number_of_offers": 4,
          "number_of_merchants": 4,
          "price_rank": 1,
          "delivery_time_rank": 1,
          "nr_offers_price_rank": "1~1~1~1~0~0",
          "nr_offers_delivery_rank": "1~1~2~0~0~0",
          "cheapest_price": 34.99
        }
      },
      "product_state": "NEW",
      "product_condition": "NEW",
      "position": 48
    }
  },
  "cheapest_shop_offer": {
    "@type": "OnlineOfferBlock",
    "shop_offer_summary": {
      "shop": {
        "id": 12133,
        "group_id": 4141995,
        "uri": "deloox_be",
        "brand": {
          "name": "Deloox",
          "uri": "deloox_be",
          "logo_uri": "//sc.vergelijk.be/shoplogos/{{size}}/deloox_fi.png"
        },
        "user_feedback": {
          "average_rating": 7.666666666666667,
          "number_of_reviews": 1
        },
        "quality_marks": [
          {
            "icon_uri": "//sc.vergelijk.be/quality_marks/{{size}}/THUISWINKEL.png",
            "url": "https://www.thuiswinkel.org/leden/superwinkel.nl"
          }
        ],
        "roas_type": "Target ROAS"
      },
      "offer": {
        "@type": "OnlineOfferSummaryDTO",
        "id": "24793a12cf7fb1cff698ebc849e54fd7",
        "base_price": 40.59,
        "base_price_including_deals": 34.99,
        "total_price": 40.59,
        "total_price_including_deals": 34.99,
        "delivery_costs": 0,
        "offer_name": "Carolina Herrera Good Girl Hair Mist 30 ml",
        "deal": {
          "@type": "DealSummary",
          "base_discounted_price": 34.99,
          "discounted_price": 34.99,
          "description": {
            "duration": 3660,
            "terms_and_conditions": "",
            "promotion_text": "14% korting",
            "deal_type": "DISCOUNT"
          }
        },
        "delivery_time": {
          "key": "offer_sdt_24_hrs",
          "value": "24u"
        },
        "clickout_hash": "3q8v2Ul90qdsvRWIJ33f3VRsZ35xtZwz1JTJjjfWRSe6u7VOE7kNv--fAUN4Ouy0pq-8AGAsEkRaufDdajRMvFvUIZUGqtbqoRWNsfjVA9WoPUhPrZUNtMzFPDoTDEp2xHMd2dGeTIssddEt5eJvsz2qcZsQlwljdWMILK319tOD6f3lY-D1VKlue26A_UEAbNyGhfaGW0wO0z49lYrk3W9turrfYXN7-KxsApV-bvU9_OvZpUK3ibprk7Exhf_IlxeV5oyA1_rpg2ZCDU3aRE5JLCgJGqXpxp04jRGTbYaYKl1LY9B0NTsA8JoWJQnrJUh3Ydw13KRwsDxHZTgcc7Ully61UTOtfzcxRGqoJiValAe5me2KOeIXDAM-3wB1dpNZGD4U4t1iyBo-XFpLsgkVq8yfB5m1nB4MbtJK0lBt3_Up0qPNcYFI4CyQeHUjefZrNOmM6Qr_ZT_3N4muVpBYGK7LNx7R92lfxa_ttETmAxupZ270CKt_4hh2SOAsFwGHmCwa4L9qNfGZ0H9YwR4IZFICNsBDK1THvLpRLAZMz2EJvTq65XdjgLxujU__Ozzqewj3x5OzqrbARSaG4bRb7AURlc1Wwkik9AvyyVg",
        "product_state": "NEW",
        "product_condition": "NEW",
        "price_per_unit": {
          "@type": "PricePerUnit",
          "price": 1166.33,
          "units": 1,
          "unit": "liter"
        },
        "price_drop": {
          "@type": "PriceDrop"
        },
        "offer_count": 4,
        "max_offer_base_price_including_deals": 50.78,
        "max_offer_total_price_including_deals": 54.73,
        "offer_snapshot": {
          "offer_id": "24793a12cf7fb1cff698ebc849e54fd7",
          "brand_name": "Carolina Herrera",
          "offer_name": "Carolina Herrera Good Girl Hair Mist 30 ml",
          "delivery_time": "offer_sdt_24_hrs",
          "product_name": "Vrouwengeuren Good Girl Hair Mist",
          "number_of_offers": 4,
          "number_of_merchants": 4,
          "price_rank": 1,
          "delivery_time_rank": 1,
          "nr_offers_price_rank": "1~1~1~1~0~0",
          "nr_offers_delivery_rank": "1~1~2~0~0~0",
          "cheapest_price": 34.99
        }
      },
      "product_state": "NEW",
      "product_condition": "NEW",
      "position": 49
    }
  },
  "deal_with_largest_discount": {
    "duration": 3660,
    "terms_and_conditions": "",
    "promotion_text": "14% korting",
    "deal_type": "DISCOUNT"
  },
  "shop_offers_count": 4,
  "sticker": {
    "@type": "PredefinedSticker",
    "type": "DEAL"
  },
  "eans": [
    "08411061043820",
    "08411061935965"
  ],
  "skus": [],
  "product_offer_aggregate_summary": {
    "high_price": 54.73,
    "low_price": 34.99,
    "shop_group_offers_count": 4,
    "currency": "€",
    "product_state": "NEW",
    "availability": "InStock"
  },
  "from_url": "https://www.vergelijk.be/geuren_voor_haar/p/2/"
}
```

Each product returns 9 rich fields capturing pricing, offers, and product identifiers:

#### Product Identification

| Field | Meaning | Example |
|---|---|---|
| `Product Summary` | Core product information including name, brand, category, and key specs | "Dove Hair Oil Serum – 100ml – Premium Care" |
| `EANs` | European Article Numbers (barcodes) for product identification | `["5411308576532", "5411308576549"]` |
| `SKUs` | Stock Keeping Units from retailers (alphanumeric product codes) | `["DH-OIL-100-BLU", "DH-OIL-100-RED"]` |

#### Pricing & Offers

| Field | Meaning | Example |
|---|---|---|
| `Cheapest Shop Offer` | The lowest-priced shop offer currently available | Shop: "Kruidvat", Price: €8.99 |
| `Cheapest Online Shop Offer` | The lowest-priced offer from web-only retailers | Shop: "Amazon.de", Price: €7.49 |
| `Deal With Largest Discount` | The offer with the steepest discount (percentage or absolute) | "60% OFF at Carrefour (€3.50 from €8.75)" |
| `Shop Offers Count` | Total number of different shops selling the product | `24` |

#### Aggregated Summary

| Field | Meaning | Example |
|---|---|---|
| `Product Offer Aggregate Summary` | Consolidated pricing snapshot across all shops | "Average price: €9.12 | Lowest: €7.49 | Highest: €14.99 | 24 shops | Best deal: 60% OFF" |
| `Sticker` | Special badges or labels (e.g., "Best Buy", "Trending", "Limited Stock") | `["Best Seller", "Free Shipping"]` |

***

### How to Use

1. **Get Vergelijk.be URLs** — Navigate to Vergelijk.be (varusok.se, sammenlign.dk, sammenlign.no, vergelijk.nl, comparer.be, comparer.fr, bestekauf.de), search for a product category, and copy the search results page URL (e.g., `https://www.vergelijk.be/geuren_voor_haar/p/2/`).
2. **Prepare your input** — Paste URLs into the `urls` array. You can add multiple category pages or filtered search results.
3. **Set scraping limits** — Choose `max_items_per_url` based on your needs (e.g., `200` for complete categories, `50` for quick samples).
4. **Enable fault tolerance** — Set `ignore_url_failures: true` to skip broken or temporarily unavailable pages without stopping the run.
5. **Execute and export** — Run the scraper and download results as JSON, CSV, or Excel.

**Best practices:**

- Test with a single URL first to verify output quality.
- For bulk category scraping, use `ignore_url_failures: true` to handle dynamic content.
- Schedule regular runs to track price changes over time.

**Troubleshooting:**

- If no products return, verify the URL points to a Vergelijk.be product listing page (not a single product detail page).
- If shop offers are incomplete, Vergelijk may be still loading data; retry after a few minutes.

***

### Use Cases & Business Value

- **Price monitoring:** Track competitor pricing and discounts in real-time across Belgian/Dutch retailers
- **Deal aggregation:** Identify products with the steepest discounts for promotional campaigns
- **Market intelligence:** Analyze product availability and retail landscape by category
- **Historical datasets:** Build price history databases to forecast trends and seasonal patterns
- **Inventory optimization:** Monitor stock status and shop counts to identify distribution gaps

The Vergelijk Product Search Scraper transforms comparison data into actionable intelligence, enabling data-driven decisions in seconds rather than hours of manual research.

***

### Conclusion

The **Vergelijk Product Search Scraper** delivers comprehensive pricing and product data directly from Belgium's leading comparison platform. With 9 output fields covering product IDs, competitive pricing, and discount intelligence, it streamlines price monitoring, market research, and retail analytics. Whether you're a competitor, researcher, or aggregator, this scraper turns Vergelijk's rich data into your competitive advantage.

# Actor input Schema

## `urls` (type: `array`):

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

## `ignore_url_failures` (type: `boolean`):

If true, the scraper will continue running even if some URLs fail to be scraped.

## `max_items_per_url` (type: `integer`):

The maximum number of items to scrape per URL.

## Actor input object example

```json
{
  "urls": [
    "https://www.vergelijk.be/geuren_voor_haar/p/2/"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}
```

# 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 = {
    "urls": [
        "https://www.vergelijk.be/geuren_voor_haar/p/2/"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("stealth_mode/vergelijk-product-search-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.vergelijk.be/geuren_voor_haar/p/2/"],
    "ignore_url_failures": True,
    "max_items_per_url": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("stealth_mode/vergelijk-product-search-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.vergelijk.be/geuren_voor_haar/p/2/"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}' |
apify call stealth_mode/vergelijk-product-search-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Vergelijk Product Search Scraper",
        "description": "Scrape product listings from Vergelijk.be (varusok.se, sammenlign.dk, sammenlign.no, vergelijk.nl, comparer.be, comparer.fr, bestekauf.de) with complete pricing intelligence. Extract product summaries, shop offers, discounts, EANs, and SKUs from comparison pages.",
        "version": "0.0",
        "x-build-id": "fQ2mmGaOldIKV8Tcq"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/stealth_mode~vergelijk-product-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-stealth_mode-vergelijk-product-search-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/stealth_mode~vergelijk-product-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-stealth_mode-vergelijk-product-search-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/stealth_mode~vergelijk-product-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-stealth_mode-vergelijk-product-search-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": {
                    "urls": {
                        "title": "URLs of the product search list urls to scrape",
                        "type": "array",
                        "description": "Add the URLs of the product search list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "ignore_url_failures": {
                        "title": "Continue running even if some URLs fail to be scraped",
                        "type": "boolean",
                        "description": "If true, the scraper will continue running even if some URLs fail to be scraped."
                    },
                    "max_items_per_url": {
                        "title": "Max items per URL",
                        "type": "integer",
                        "description": "The maximum number of items to scrape per URL."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
