# de Bijenkorf Scraper: Live Prices, Discounts, Stock & Variants (`getascraper/debijenkorf-scraper`) Actor

Scrape de Bijenkorf products: live and original prices, discount percentages, full size and colour stock levels, brand, category breadcrumbs, and image galleries. Get one clean row per product with every variant nested, ready for your spreadsheet. No login needed, works on .nl and .be stores.

- **URL**: https://apify.com/getascraper/debijenkorf-scraper.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** E-commerce, Automation
- **Features:** Limited permissions, Single-tenant, Server interface
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $1.13 / 1,000 product records

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

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## 🛍️ de Bijenkorf Scraper: Live Prices, Discounts, Stock & Variants

<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0;margin-bottom:0">
<tr>
<td style="padding:24px 28px;background:#F2ECE3;border:1px solid #E3D5BE;border-top:4px solid #8A6D3B;color:#1C1917;border-radius:10px 10px 0 0">
<span style="font-size:23px;font-weight:800;color:#1C1917;line-height:1.3">Get live de Bijenkorf prices, discounts, and size-and-colour stock levels ready for your spreadsheet in minutes.</span><br>
<span style="font-size:15px;color:#57534E;line-height:1.6">Paste any de Bijenkorf category or product link and get one clean row per product, with every size and colour variant nested inside it, including stock counts and prices for each.</span>
</td>
</tr>
</table>
<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0;margin-top:0">
<tr>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #E3D5BE;vertical-align:top;border-top:none;color:#1C1917;border-radius:0 0 0 10px">
<span style="font-size:15px;font-weight:800;color:#6B5529">💶 Original price & discount</span><br>
<span style="font-size:12px;color:#57534E">Current and original price plus the exact discount percentage on every item.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #E3D5BE;border-left:none;vertical-align:top;border-top:none;color:#1C1917">
<span style="font-size:15px;font-weight:800;color:#6B5529">📏 Full variant matrix</span><br>
<span style="font-size:12px;color:#57534E">Every size and colour nested in the row, each with its own price and stock count.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #E3D5BE;border-left:none;vertical-align:top;border-top:none;color:#1C1917">
<span style="font-size:15px;font-weight:800;color:#6B5529">🗂️ Category breadcrumbs</span><br>
<span style="font-size:12px;color:#57534E">Full category path on every product, ready for assortment comparisons.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #E3D5BE;border-left:none;vertical-align:top;border-top:none;color:#1C1917;border-radius:0 0 10px 0">
<span style="font-size:15px;font-weight:800;color:#6B5529">🔓 No login needed</span><br>
<span style="font-size:12px;color:#57534E">Only public catalogue pages. No account, password, or cookies required.</span>
</td>
</tr>
</table>

**de Bijenkorf** is the leading premium department store in the Netherlands and Belgium, carrying designer fashion, beauty, and homeware. This scraper turns any de Bijenkorf category page or product page into clean, structured rows you can open in Excel, Google Sheets, or your own database.

### 🔍 What does de Bijenkorf scraper do?

You give it category links or individual product links. It returns one clean row per product, plus a nested breakdown of every size and colour variant. For each product you get the current sale price, the original price before discount, the exact discount percentage, live stock counts, brand, category path, and the full image gallery. Empty fields are left blank rather than filled with guesses, so the data stays trustworthy.

Running on Apify also gets you scheduling, a full API, ready integrations with Google Sheets, Make, Zapier, and Slack, automatic proxy rotation, and run monitoring, all included.

### 🎯 Why use de Bijenkorf scraper?

Pricing analysts, brand managers, and online retailers need accurate, current catalogue data to make decisions. This scraper supports:

- **I am a competitor pricing analyst** tracking how a premium department store discounts designer fashion week over week, so I can match or undercut key items in my own store.
- **I am a brand manager** monitoring how my products are priced and stocked across sizes and colours on a major retail partner, so I can flag stock-outs and pricing errors fast.
- **I am an online fashion retailer** building a price and availability feed of thousands of products, so I can benchmark my assortment against the market without checking pages by hand.
- **I am a market researcher** studying discount depth and stock patterns across categories, so I can report on retail demand and seasonal trends.

### 🚀 How to use de Bijenkorf scraper

<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0">
<tr>
<td style="padding:16px 14px;width:33%;background:#F2ECE3;border:1px solid #E3D5BE;border-radius:10px 0 0 10px;vertical-align:top;color:#1C1917">
<span style="font-size:12px;font-weight:800;color:#8A6D3B;letter-spacing:1px">STEP 1</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Add your links</span><br>
<span style="font-size:12px;color:#57534E">Paste de Bijenkorf category or product pages into the input form.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#F2ECE3;border:1px solid #E3D5BE;border-left:none;vertical-align:top;color:#1C1917">
<span style="font-size:12px;font-weight:800;color:#8A6D3B;letter-spacing:1px">STEP 2</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Set a limit</span><br>
<span style="font-size:12px;color:#57534E">Set the maximum number of products to control run time and budget.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#F2ECE3;border:1px solid #E3D5BE;border-left:none;border-radius:0 10px 10px 0;vertical-align:top;color:#1C1917">
<span style="font-size:12px;font-weight:800;color:#8A6D3B;letter-spacing:1px">STEP 3</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Run and export</span><br>
<span style="font-size:12px;color:#57534E">Start the run, then export to Excel, CSV, JSON, or XML.</span>
</td>
</tr>
</table>

### 📋 Input

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `startUrls` | array of URLs | Yes | de Bijenkorf category pages or individual product pages to scrape. The scraper reads product links from category pages automatically. |
| `maxItems` | integer | No | Maximum number of products to save in one run. Use it to cap your run time and budget. Defaults to 20. |
| `proxyConfiguration` | object | No | Proxy settings. Defaults to fast, low-cost datacenter proxies, which work for both category and product pages. Residential is available for very large runs. |

### 📤 Output

Each product becomes one row, with every size and colour variant nested inside the `variants` field.

**Example output**

```json
{
  "product_id": "4047070054",
  "name": "Brushstroke T-shirt met logo- en backprint",
  "display_name": "OLAF Brushstroke T-shirt met logo- en backprint",
  "brand": "OLAF",
  "price": 52.5,
  "original_price": 75,
  "discount_percentage": 30,
  "on_sale": true,
  "currency": "EUR",
  "in_stock": true,
  "stock_count": 21,
  "delivery_time": "NEXT_DAY",
  "size": "XS",
  "color": "Wit",
  "color_count": 2,
  "categories": ["T-shirts"],
  "category_path": "Heren > Kleding > Polo's & T-shirts > T-shirts",
  "variants": [
    { "variant_code": "404707005411000", "size": "S", "color": "Wit", "price": 52.5, "original_price": 75, "currency": "EUR", "in_stock": true, "stock_count": 16, "delivery_time": "NEXT_DAY" }
  ],
  "image_url": "https://cdn-1.debijenkorf.nl/default/olaf-brushstroke-t-shirt/front.jpg",
  "image_gallery": ["https://cdn-1.debijenkorf.nl/default/olaf-brushstroke-t-shirt/front.jpg"],
  "product_url": "https://www.debijenkorf.nl/d/olaf-brushstroke-t-shirt-4047070054",
  "scraped_at": "2026-06-28T14:33:00.000Z"
}
```

### 📊 Data table

| Field | Type | Description |
| --- | --- | --- |
| `product_id` | string | Unique product code. |
| `variant_code` | string | Code of the specific size and colour variant shown in the main row. |
| `name` | string | Product name. |
| `display_name` | string | Full product name including the brand. |
| `description` | string | Product description with formatting removed. |
| `brand` | string | Brand or designer name. |
| `price` | number | Current selling price. |
| `original_price` | number | Original price before any discount. |
| `discount_percentage` | number | Percentage off, from original price to current price. |
| `on_sale` | boolean | True when the current price is below the original price. |
| `currency` | string | Three letter currency code, such as EUR. |
| `in_stock` | boolean | True when the product is available to buy. |
| `stock_count` | number | Units in stock for the main variant. |
| `delivery_time` | string | Delivery window, such as NEXT_DAY. |
| `size` | string | Size of the main variant. |
| `color` | string | Colour of the main variant. |
| `color_count` | number | Number of colours the product is available in. |
| `categories` | array of strings | Category names the product belongs to. |
| `category_path` | string | Full category breadcrumb path. |
| `variants` | array of objects | Every size and colour, each with its own price, original price, stock count, and delivery time. |
| `ingredients` | string | Ingredient list for beauty products, when shown. |
| `composition` | string | Material or composition detail, when shown. |
| `image_url` | string | Main product image. |
| `image_gallery` | array of strings | All product images. |
| `product_url` | string | Direct link to the product page. |
| `scraped_at` | string | Timestamp of when the row was collected. |

### 💰 Pricing

This scraper uses pay per result billing. You are charged only for product rows successfully saved to your dataset. Empty runs and blocked requests cost nothing. There are no monthly subscriptions and no fixed fees. Set a `maxItems` value to keep every run within budget.

### ⭐ Enjoying de Bijenkorf scraper?

<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0">
<tr>
<td style="padding:20px 24px 14px;background:#F2ECE3;border:1px solid #F2ECE3;border-left:5px solid #8A6D3B;border-radius:10px 10px 0 0;color:#1C1917">
<span style="font-size:20px;letter-spacing:4px">⭐ ⭐ ⭐ ⭐ ⭐</span><br>
<span style="font-size:17px;font-weight:800;color:#1C1917">One run just replaced hours of manually checking sale prices and stock across every size and colour.</span><br>
<span style="font-size:14px;color:#57534E">A 5-star rating takes 10 seconds and helps other pricing analysts and brand managers find this actor. Your feedback also tells us what to build next.</span>
</td>
</tr>
<tr>
<td style="padding:0;background:#8A6D3B;border:1px solid #8A6D3B;border-left:5px solid #8A6D3B;border-top:none;border-radius:0 0 10px 10px;text-align:center;color:#FFFFFF">
<a href="https://apify.com/getascraper/debijenkorf-scraper/reviews" style="display:block;padding:13px 16px;color:#FFFFFF;text-decoration:none;font-weight:800;font-size:15px;letter-spacing:0.3px">★&nbsp;&nbsp;Rate this Actor on Apify</a>
</td>
</tr>
</table>

### ❓ FAQ, disclaimers, and support

##### Does it get blocked?

No. The scraper handles de Bijenkorf's security checks automatically and retries when needed, so runs complete reliably without any setup from you.

##### Do I need a de Bijenkorf account?

No. It collects only publicly visible catalogue listings. You never need to register, log in, or supply any cookies.

##### Does it cover both Netherlands and Belgium?

Yes. It works across the Netherlands (`debijenkorf.nl`) and Belgium (`debijenkorf.be`) sites. Paste links from either and the scraper handles both.

##### How fresh is the data?

Every row is collected live at the moment you run the scraper. There is no cached or stale data.

##### Why is a field sometimes empty?

Not every product lists every detail. When a value is genuinely missing, the field is left blank rather than filled with a placeholder, so your data stays accurate.

### ⚠️ Legal

This scraper collects only data that is publicly visible on de Bijenkorf. It does not access private accounts or bypass any login. Users are responsible for complying with local regulations and the website's terms of service. de Bijenkorf is a trademark of its owner. This is an independent tool and is not affiliated with, endorsed by, or sponsored by de Bijenkorf.

### 🛟 Support

Open an issue on the Issues tab for any bug, question, or feature request. We respond within 48 hours.

### 🔗 Other actors

- [Coolblue Scraper: Live Prices, Stock, Ratings & Open-Box Deals](https://apify.com/getascraper/coolblue-scraper) ↗ - tracks products, prices, and stock across Coolblue's Netherlands, Belgium, and Germany stores.
- [Edel Optics Scraper: Eyewear Catalog, Prices & Specifications](https://apify.com/getascraper/edel-optics-scraper) ↗ - extracts eyewear catalog data, prices, and specifications from a German optics retailer.
- [eMAG Price Monitor: Monitorizare Prețuri eMAG (Romania)](https://apify.com/getascraper/emag-price-monitor) ↗ - monitors price and stock changes on Romania's largest online marketplace.
- [Falabella Scraper: Precios y Productos (Chile, Peru, Colombia)](https://apify.com/getascraper/falabella-scraper) ↗ - scrapes product prices and catalog data across Falabella's Latin American stores.

# Changelog

This Actor's version history is a separate document: https://apify.com/getascraper/debijenkorf-scraper/changelog.md

# Actor input Schema

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

Add de Bijenkorf category listing or direct product URLs.

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

Maximum number of unique product models to extract across this run. The default is intentionally small so Cloudflare-protected runs complete comfortably within the standard five-minute timeout.

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

Proxy settings. Datacenter proxies (the default) are fast and cheap — the headless browser solves de Bijenkorf's Cloudflare challenge on datacenter IPs, verified end-to-end. Switch to Residential only if a very large run starts hitting rate limits. The locale is set by the URL and the API's locale=nl_NL parameter, so no country filter is needed.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.debijenkorf.nl/herenmode/polo-s-t-shirts/t-shirts"
    }
  ],
  "maxItems": 20,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `dataset` (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 = {
    "startUrls": [
        {
            "url": "https://www.debijenkorf.nl/herenmode/polo-s-t-shirts/t-shirts"
        }
    ],
    "maxItems": 20,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/debijenkorf-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 = {
    "startUrls": [{ "url": "https://www.debijenkorf.nl/herenmode/polo-s-t-shirts/t-shirts" }],
    "maxItems": 20,
    "proxyConfiguration": { "useApifyProxy": True },
}

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

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

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

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://www.debijenkorf.nl/herenmode/polo-s-t-shirts/t-shirts"
    }
  ],
  "maxItems": 20,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call getascraper/debijenkorf-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,getascraper/debijenkorf-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/34UmICGlKn3Enm0RV/builds/f3e86ZM9eSXxT9BwC/openapi.json
