Bol.com Scraper avatar

Bol.com Scraper

Pricing

from $1.80 / 1,000 product listings

Go to Apify Store
Bol.com Scraper

Bol.com Scraper

Scrape bol.com (NL/BE) products: prices, EAN-13, ratings, sellers, variants, full specifications, complete reviews and every seller offer.

Pricing

from $1.80 / 1,000 product listings

Rating

0.0

(0)

Developer

Unfenced Group

Unfenced Group

Maintained by Community

Actor stats

1

Bookmarked

3

Total users

2

Monthly active users

6 days ago

Last modified

Categories

Share

Bol.com Scraper

Extract products from bol.com at scale, in a clean, consistent structure ready for price monitoring, market research, catalogue analysis and resale tooling. No API key required.


Why this scraper?

๐ŸŽฏ Built for bol.com

A dedicated Dutch scraper tuned for bol.com โ€” its categories, price formats and currency (EUR), not a generic tool pointed at it.

๐Ÿ’ถ Structured pricing

Current price as a clean number in EUR, plus discounts and previous prices where the source shows them. Items without a published price return null, never a guess.

๐Ÿ“ฆ Stock status

Availability on every record, so you can monitor stock and catch restocks.

๐Ÿค Seller and condition

Seller details and item condition in structured fields, ready for filtering.

โญ Review signals

Average rating and review count for every item that has them.

๐Ÿ–ผ๏ธ Photos

Photo URLs for every product where the source publishes them.

๐Ÿ“„ Full item content

Complete description and title for every record, with a direct link back to the source.


Input parameters

ParameterTypeDefaultDescription
searchQuerystring"koffie"A single keyword to search on bol.com (e.g. 'koffie', 'lego', 'airpods'). Becomes a /s/?searchtext= URL on the selected shop.
searchQueriesarray(empty)Several keywords to search in one run. Each becomes its own search.
startUrlsarray(empty)Bol.com URLs to crawl. Supported: search (/s/), category (/l/), brand (/pb/), series (/serie/) and product detail (/p/) pages, on either www.bol.com/nl/nl/ or www.bol.com/be/nl/.
countrystring"nl"Which bol.com shop to use for keyword searches. Also pins the residential proxy country when fallback is needed. Start URLs keep their own /nl/ or /be/ path.
maxResultsinteger50Overall ceiling on items pushed across all sources (search queries + start URLs combined). Use 0 for unlimited.
maxResultsPerUrlinteger0Optional per-source cap. Each search query and each start URL stops after this many items, while 'Max results' still applies as the overall ceiling. Use 0 to apply no per-source limit. Useful when crawling several URLs in one run so the first source does not consume the whole budget.
minPricenumber(empty)Only return products at or above this price. Applied as a post-fetch filter.
maxPricenumber(empty)Only return products at or below this price. Applied as a post-fetch filter.
soldByBolbooleanfalseOnly return products sold directly by bol.com, excluding marketplace sellers.
minRatingnumber(empty)Only return products with an average rating at or above this value (1โ€“5). Products with no reviews are excluded when this filter is active.
conditionstring"any"Filter by product condition. 'New' excludes refurbished and secondhand listings; 'Refurbished' and 'Secondhand' return only those offer types.
inStockOnlybooleanfalseOnly return products that can be delivered within 48 hours (bol.com's in-stock signal at listing level).
sponsoredOnlybooleanfalseOnly return products that have a sponsored (advertised) placement on the results page.
includeVariantPricesbooleanfalseAdd the per-variant list (each variant's EAN-13, price, condition and availability) to every product, without pulling the full detail enrichment. Visits the product detail page. Ignored when 'Fetch product detail pages' is already on, since variants are included there.
fetchDetailsbooleanfalseVisit each product's detail page to add per-variant EAN-13, brand, weight, condition, buy-box price range, full image set, specifications and a review sample. Slower and billed at the higher detail rate.
fetchReviewsbooleanfalseCollect the full customer review list per product (rating, title, body, date, helpful count) plus the rating distribution. Visits the detail page; billed per product that returns reviews.
fetchOffersbooleanfalseCollect every seller's offer for each product (seller, price, condition, delivery), not just the buy-box winner. Visits the detail page; billed per product that returns offers.
maxReviewsPerProductinteger50Cap on reviews collected per product when 'Fetch full reviews' is on.
proxyConfigurationobject{"useApifyProxy": false}Optional. Leave empty to start without a proxy โ€” the scraper escalates to Apify Residential (country-pinned) automatically only if bol.com blocks the request. Set this to force a proxy from the start.

Output schema

Every field below is present on every record. Fields the source does not publish for a given item are returned as null rather than omitted.

FieldTypeDescription
typestring"listing" or "detail".
productIdstringBol.com product ID.
titlestringProduct title.
urlstringFull product URL.
pricenumberCurrent selling price in EUR.
priceCurrencystringAlways "EUR".
selectPricestringnull
unitPricenumbernull
referencePricenumbernull
discountPercentagenumbernull
ratingnumbernull
reviewCountnumbernull
sellerstringnull
conditionstringnull
availabilitystringnull
deliveredWithin48hbooleannull
sponsoredbooleanWhether the placement is sponsored.
sustainablebooleanWhether the product carries a sustainability label.
imageUrlstringnull
descriptionstringnull
descriptionMarkdownstringDescription in Markdown/plain text.
categoryarrayCategory path, broadest first.
sourcePagenumberResult page the item came from.
sourceUrlstringThe listing URL it was found on.
domainstringwww.bol.com.
scrapedAtstringISO timestamp.
bestRatingnumbernull
lowPricenumbernull
highPricenumbernull
offerCountnumbernull
imagesarrayAll product images.
variantsarrayPer-variant objects (see below).
gtin13stringnull
brandstringnull
reviewSamplearrayUp to 10 reviews: rating, title, body, date.
specificationsarrayStructured product specs as { name, value } pairs.
ratingDistribution.__typenamestringtypename.
ratingDistribution.fiveStarCountnumberFive star count.
ratingDistribution.fourStarCountnumberFour star count.
ratingDistribution.oneStarCountnumberOne star count.
ratingDistribution.threeStarCountnumberThree star count.
ratingDistribution.twoStarCountnumberTwo star count.

Example record

{
"type": "detail",
"productId": "9000000012512898",
"title": "Lavazza Crema e Aroma Koffiebonen - Koffie Blend van Robusta en Arabica Bonen - Intensiteit 8/10 - 1 kg",
"url": "https://www.bol.com/nl/nl/p/lavazza-crema-e-aroma-koffiebonen/9000000012512898/",
"price": 16.12,
"priceCurrency": "EUR",
"selectPrice": null,
"unitPrice": null,
"referencePrice": 21.49,
"discountPercentage": 25,
"rating": 4.9,
"reviewCount": 91,
"seller": "bol",
"condition": "New",
"availability": "Op voorraad. Voor 23:59 uur besteld, morgen in huis",
"deliveredWithin48h": true,
"sponsored": true,
"sustainable": false,
"imageUrl": "https://media.s-bol.com/kkNyVD78pjLX/ERV7qWN/493x840.jpg",
"description": "De Lavazza Crema e Aroma is een prachtige melange van de beste arabica en robusta koffiebonen. Deze licht geroosterde bonen geven een aromatische espresso met een verleidelijke, aanhoudende crema. Erv โ€ฆ",
"descriptionMarkdown": "**De Lavazza Crema e Aroma is een prachtige melange van de beste arabica en robusta koffiebonen. Deze licht geroosterde bonen geven een aromatische espresso met een verleidelijke, aanhoudende crema.** โ€ฆ",
"category": [
"Eten & Drinken",
"Frisdrank, sap, koffie en thee",
"Koffie",
"Koffiebonen"
],
"sourcePage": 1,
"sourceUrl": "https://www.bol.com/nl/nl/s/?searchtext=koffie",
"domain": "www.bol.com",
"scrapedAt": "2026-07-02T15:31:04.616Z",
"bestRating": 4.9,
"lowPrice": 16.12,
"highPrice": 79.96,
"offerCount": 2,
"images": [
{
"@type": "ImageObject",
"url": "https://media.s-bol.com/Jkx8oZ7ZwOQg/pYBOKly/585x1200.jpg",
"width": 585,
"height": 1200
}
],
"variants": [
{
"productId": "9000000012512898",
"name": "Lavazza Crema e Aroma Koffiebonen - Koffie Blend van Robusta en Arabica Bonen - Intensiteit 8/10 - 1 kg",
"url": "https://www.bol.com/nl/nl/p/lavazza-crema-e-aroma-koffiebonen/9000000012512898/",
"gtin13": "8000070025400",
"brand": "Lavazza",
"weightGrams": 1030,
"price": 16.12,
"priceCurrency": "EUR",
"availability": "InStock",
"condition": "NewCondition",
"seller": "bol",
"imageUrl": null
},
{
"productId": "9300000236875514",
"name": "Lavazza Crema e Aroma Koffiebonen - Koffie Blend van Robusta en Arabica Bonen - Intensiteit 8/10 - 4 x 1 kg",
"url": "https://www.bol.com/nl/nl/p/lavazza-crema-e-aroma-koffiebonen-koffie-blend-van-robusta-en-arabica-bonen-intensiteit-8-10 โ€ฆ",
"gtin13": "8714500010125",
"brand": "Lavazza",
"weightGrams": 1000000,
"price": 79.96,
"priceCurrency": "EUR",
"availability": "InStock",
"condition": "NewCondition",
"seller": "Profeco.be",
"imageUrl": null
}
],
"gtin13": "8000070025400",
"brand": "Lavazza",
"reviewSample": [
{
"rating": 5,
"title": "Heerlijke koffie!",
"body": "Deze gekocht voor mijn nieuwe volautomaat. Echt heerlijke koffie. Of ik nou kies voor een gewone koffie, espresso of cap โ€ฆ",
"date": "2024-05-20"
},
{
"rating": 5,
"title": "Heerlijke smaak",
"body": "Zeer vreemd dat een individuele verpakking per kilo, goedkoper is dan een verpakking van 6 stuks samen. Die zijn duurder โ€ฆ",
"date": "2025-05-17"
},
{
"rating": 5,
"title": "Zachtste koffie",
"body": "De enige koffie zacht genoeg om heerlijk sterk te zetten.",
"date": "2017-02-10"
},
{
"rating": 5,
"title": "Goede koffie, uitstekend en sterk van smaak!",
"body": "Een heel lekkere koffie , voor herhaling vatbaar !",
"date": "2025-12-04"
}
],
"specifications": [
{
"name": "Compatibiliteit koffiezetapparaat",
"value": "Compatibel met Espressomachine"
},
{
"name": "Soort koffie",
"value": "Koffiebonen"
},
{
"name": "Branding",
"value": "Donker gebrand"
},
{
"name": "Smaakintensiteit",
"value": "8 - Krachtig"
}
],
"ratingDistribution": {
"__typename": "ProductReviewsRatingDistribution",
"fiveStarCount": 83,
"fourStarCount": 6,
"oneStarCount": 0,
"threeStarCount": 1,
"twoStarCount": 1
}
}

Examples

Search for koptelefoon:

{
"searchQuery": "koptelefoon",
"maxResults": 100
}

Cap the price:

{
"searchQuery": "koptelefoon",
"maxResults": 100,
"maxPrice": 24.5
}

Scrape a specific search URL:

{
"startUrls": [
{
"url": "https://www.bol.com/be/nl/l/koffie/13302/"
}
],
"maxResults": 200
}

Daily monitoring (run on a schedule):

{
"searchQuery": "koptelefoon",
"maxResults": 500
}

Schedule this input to run once a day in the Apify Scheduler to track prices, stock and new items over time.


๐Ÿ’ฐ Pricing

$2 per 1,000 results โ€” you only pay for successfully retrieved products. Failed retries are never charged.

ResultsCost
100~$0.2
1,000~$2
10,000~$20
100,000~$200

Flat-rate alternatives typically charge $29โ€“$49/month regardless of usage.

Subscription tiers lower the rate further, down to $1.6 per 1,000 at the highest tier. Use the Max results cap in the input to control your spend exactly.


Performance

Run sizeTypical time
100 resultsunder 1 minute
1,000 results2โ€“4 minutes
10,000 results20โ€“35 minutes

Known limitations

  • Some fields (brand, condition, shipping) are only returned when the seller or source publishes them โ€” expect null on a share of records.
  • Prices and stock change constantly; records reflect the moment of scraping.
  • Very large result sets are bounded by the source's own paging limits.
  • Items can sell or be withdrawn at any time, so a small share of URLs may expire shortly after scraping.

Technical details

  • Source: bol.com
  • Coverage: everything the public search exposes, filterable via the input parameters above
  • Retry: automatic retry on network errors with exponential backoff

Need a custom scraper?

Unfenced Group builds Apify actors for any website โ€” for free.

If the site you need isn't in our portfolio yet, just ask. We scope, build, and publish it at no cost to you. You only pay for results โ€” we absorb the compute and proxy costs ourselves. Same pay-per-result pricing, same quality, same standards as every actor in this portfolio.

Get in touch: www.unfencedgroup.nl