Extract bol.com products as clean JSON with zero personal data - prices in cents, ratings, EAN barcodes, brands, availability. NL + BE storefronts, price-band filter, pay per result. Built for price monitoring, market research and AI pipelines.
$1.99 / 1,000 · 100.0% success over 18 public runs in the last 30 days.
Run it on Apify → Free to try - runs bill per result on your own account.
Every field is optional unless marked; sensible defaults do the rest.
| Field | Type | What it does | Default |
|---|---|---|---|
searchQuery |
string | What to search for on bol.com, exactly as you would type it in the site's search box, e.g. "iphone 16 hoesje" or "lego technic". | lego technic |
storefront |
string | Which bol.com storefront to search: bol.com/nl (Netherlands) or bol.com/be (Belgium, Dutch). Assortment and prices can differ slightly. | bol.com/nl |
priceMinEur |
integer | Only include products costing at least this many euros. Products without a readable price are excluded when a price filter is set. | - |
priceMaxEur |
integer | Only include products costing at most this many euros. Products without a readable price are excluded when a price filter is set. | - |
scrapeDetails |
boolean | Also open each product page for brand, EAN barcode, colour, material, condition, availability and variant count. Slower: one extra request per product. | False |
maxItems |
integer | Stop after this many products. Free-plan runs are capped at 25 items. | 200 |
One JSON object per result, with exactly these fields - no seller identities, no contact data, ever.
| Field | Type | Meaning |
|---|---|---|
productId |
string | bol.com product ID from the product URL. |
url |
string | Direct link to the product page. |
title |
string | Product title as listed. |
priceCents |
['integer', 'null'] | Current price in euro cents as shown on the search page. Null when the tile shows no readable price. |
currency |
string | Always EUR. |
ratingValue |
['number', 'null'] | Average customer rating, 0-5. Null when the product has no reviews. |
reviewCount |
['integer', 'null'] | Number of customer reviews. Review text and reviewer identities are never collected. |
snippet |
string | Product description snippet from the search page. |
deliveryText |
string | Stock and delivery promise as displayed, e.g. 'Op voorraad. Voor 21:00 uur besteld, morgen in huis'. |
thirdPartySeller |
boolean | True when the offer comes from a marketplace partner instead of bol.com itself. The seller's name is never collected. |
imageUrl |
string | Main product image. |
brand |
['string', 'null'] | Brand name. Only present with scrapeDetails enabled. |
ean |
['string', 'null'] | EAN-13 / GTIN-13 barcode. Only present with scrapeDetails enabled. |
color |
['string', 'null'] | Variant colour. Only present with scrapeDetails enabled. |
material |
['string', 'null'] | Product material. Only present with scrapeDetails enabled. |
condition |
['string', 'null'] | Offer condition from structured data, e.g. NewCondition. Only present with scrapeDetails enabled. |
availability |
['string', 'null'] | Offer availability from structured data, e.g. InStock. Only present with scrapeDetails enabled. |
variantCount |
integer | Number of product variants (colours, sizes) on the product page. Only present with scrapeDetails enabled. |
100.0% success over 18 public runs in the last 30 days. Live record, failures included: status page.
Full documentation, examples and the AI-assistant prompt live on the store page.