bol.com NL Catalog Product Export avatar

bol.com NL Catalog Product Export

Pricing

from $1.20 / 1,000 catalog product exporteds

Go to Apify Store
bol.com NL Catalog Product Export

bol.com NL Catalog Product Export

Export public bol.com Netherlands keyword catalog cards with product IDs, titles, URLs, listed prices, stock labels, sellers and rating summaries. Create repeatable marketplace snapshots without fetching product details or reviews.

Pricing

from $1.20 / 1,000 catalog product exporteds

Rating

0.0

(0)

Developer

Automation Lab

Automation Lab

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Share

Export bol products from public Netherlands keyword search cards into structured product-price snapshots. Collect product IDs, titles, URLs, listed EUR prices, exposed stock labels, sellers and rating summaries without fetching individual product pages.

Use the results for assortment research, marketplace comparisons and recurring spreadsheet snapshots. This is a catalog-card exporter, not a retailer API, stock-quantity feed or complete offers database.

Why use this Actor?

  • Search multiple keywords in a defined order.
  • Export one row per unique product ID across the whole run.
  • Keep query, page, position, sponsorship and extraction time with each row.
  • Avoid extra detail-page requests when public card data is enough.
  • Use managed Netherlands residential sessions; no proxy configuration is needed.

Who is it for?

Marketplace analysts can compare listed prices across repeated snapshots. Catalog teams can identify public product URLs for further research. Brands can inspect search placement, including labeled sponsored cards. Analysts should retain run dates and compare identical query settings rather than treating search results as an exhaustive inventory.

Getting started

  1. Open the Input tab.
  2. Enter a keyword such as lego.
  3. Choose a global product limit and a per-query page cap.
  4. Run the Actor and open the default dataset.
  5. Export JSON, CSV or Excel through Apify's dataset controls.
{"queries":["lego"],"maxItems":30,"maxPagesPerQuery":5}

Inputs and search semantics

InputDefaultMeaning
queriesRequired1–10 nonempty strings, each at most 200 characters after trimming
maxItems30Global unique-product limit, 1–500; Console prefill 20
maxPagesPerQuery5Maximum search pages for each query, 1–20

Queries are trimmed; exact duplicates are removed, preserving order. Search relevance, fuzzy matching and suggestions are controlled by bol.com. There is no exact-phrase, whole-word or title-substring filtering. Sponsored placements are retained and labeled.

Earlier queries consume the global limit first. A product encountered under several queries appears once, with the first query and position. rank is one-based within its source page before deduplication; it is not a global search ranking. A repeated sponsored card may therefore cause gaps in exported positions.

Zero and unlimited values are unsupported. Page caps, catalog exhaustion, runtime or billing limits can return fewer than maxItems. The Actor follows exposed sequential next-page links, not every possible catalog result.

Unknown inputs are rejected instead of silently ignored. Product URLs, category URLs, Belgium, detail enrichment and review-body options are not supported.

Extracted data

FieldMeaning
productIdPublic bol.com product identifier, not necessarily an EAN
title, urlCatalog title and canonical NL product link
price, currencyListed card price and EUR currency
availabilityInStock, OutOfStock, or null if not exposed
sellerCard seller name, or null
rating, reviewCountExposed aggregate rating out of five and review count, or null
sponsoredWhether the card is labeled sponsored
marketplaceAlways NL
query, page, rankFirst encountered query and source position
scrapedAtUTC extraction timestamp

Prices are the publicly listed card values, not guaranteed checkout totals. Shipping, service fees, member-specific discounts, delivery dates and complete seller-offer lists are not included. Availability is not a warehouse quantity. Missing values remain null rather than being guessed.

Output example

This record illustrates actual catalog-card extraction. Prices and search order can change.

{
"productId":"9300000021924021",
"title":"Sleutelhanger - Ninjago Legacy - Jay - Met licht",
"url":"https://www.bol.com/nl/nl/p/sleutelhanger-ninjago-legacy-jay-met-licht/9300000021924021/",
"price":19.95,
"currency":"EUR",
"availability":"InStock",
"seller":"MYBA Trading",
"rating":5,
"reviewCount":1,
"sponsored":true,
"marketplace":"NL",
"query":"lego",
"page":1,
"rank":1,
"scrapedAt":"2026-10-25T21:07:03.408Z"
}

Run summary and counters

The default dataset is the primary output. SUMMARY in the run's key-value store records page, attempt, retry, response-byte, scanned-card and saved-row counts with applied limits. Response bytes describe received document bodies, not a billing meter.

How much does it cost to export bol.com catalog products?

A one-time $0.01 start fee applies per run, plus a charge for each unique product exported. On BRONZE, the product charge is $0.002 per product. Other subscription tiers have their own product rates; check the Pricing tab for the current tier.

BRONZE computed invoice examples:

Unique productsEstimated total including start
1$0.012
10$0.03
100$0.21

These totals include the start fee and product events. There is no separate review, seller or page event. Duplicate or rejected cards are not charged as additional products. A valid empty search can still incur the start fee.

Reliability and failure behavior

The Actor uses one browser at a time with a sticky Netherlands residential identity. Only search documents are downloaded; media, scripts and other subresources are blocked. Healthy sessions and cookies are reused across pages.

A failed or challenged page gets at most three total attempts, with a fresh browser/proxy identity after a failure and bounded backoff. Exhaustion fails the run rather than reporting an empty success. An explicitly recognized no-results page is a normal empty outcome. Unexpected page layouts also fail honestly.

If a later query or page fails, rows already saved remain partial results. Inspect run status before treating an export as complete. Do not automatically start repeated runs to work around a persistent source outage.

Integrations and recurring snapshots

Schedule this Actor in Apify to produce dated snapshots; the Actor itself does not store price history, compute changes or send alerts. Save complete datasets externally and join by productId plus run date in a spreadsheet, warehouse or reporting tool.

Use Apify dataset export, webhooks, Make, Zapier or an API client to move results into your own pipeline. Retain query, page and sponsored when comparing search placement, because source ranking and advertising change.

API usage

Keep your token in an environment variable, never in shared source.

curl -X POST -H "Authorization: Bearer $APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"queries":["lego"],"maxItems":30}' \
'https://api.apify.com/v2/acts/automation-lab~bol-com-catalog-product-export/runs'
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/bol-com-catalog-product-export')
.call({ queries: ['lego'], maxItems: 30 });
const { items } = await client.dataset(run.defaultDatasetId).listItems({ limit: 30 });
import os
from apify_client import ApifyClient
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/bol-com-catalog-product-export').call(
run_input={'queries': ['lego'], 'maxItems': 30})
items = client.dataset(run['defaultDatasetId']).list_items(limit=30).items

Use with hosted MCP

Select this Actor's stable tool subset:

claude mcp add --transport http apify \
'https://mcp.apify.com?tools=automation-lab/bol-com-catalog-product-export'

Equivalent configuration for Claude Desktop, Cursor, and VS Code clients supporting remote HTTP MCP:

{"mcpServers":{"apify":{"url":"https://mcp.apify.com?tools=automation-lab/bol-com-catalog-product-export"}}}

Discover actual tool names and argument schemas with scoped tools/list. Actor selection also exposes run/data helpers; it does not expose exactly one tool. Example request: “Export up to 20 Netherlands bol.com catalog cards for lego, then show product IDs, titles and listed prices.” Execution requires your authorization.

Example prompts

  • "Run bol.com NL Catalog Product Export for lego with maxItems 20, then retrieve only IDs, titles and prices."
  • "Export Netherlands catalog cards for philips tandenborstel; report missing seller and rating values without guessing."

Start once and retain the returned run ID and storage IDs: they are metadata, not rows. call-actor waits at most 45 seconds. If still running, check that same run using get-actor-run, for example with 2/4/8-second backoff capped at 10 seconds and a 120-second total deadline. Set client timeouts above the chosen server wait plus transport margin. Recover a known run after client timeout; do not restart just to poll. At deadline, report pending with its ID.

After success, retrieve bounded data using get-dataset-items and the returned dataset ID. Example consumer budget: pages of 20 source rows, at most 100 rows or 64 KiB of serialized UTF-8 content admitted to model context, whichever comes first. Apply byte limits host-side; disclose omitted oversized rows. If the client cannot intercept oversized responses, do not claim a hard byte guarantee. Track source offsets, report continuation offset and truncation, and keep full downloads outside model context. Failed-run rows are partial. Discovery/caching behavior depends on the client; no token-saving guarantee is made.

Legality, responsible use and privacy

No AI model processes inputs or produces runtime output. Apify hosts run storage, logs, compute and managed proxy traffic; these infrastructure costs are included in Actor pricing, not a separate account requirement.

Run datasets and summaries remain in Apify storage under your account's retention settings until deleted. Delete unneeded runs and storage from Console/API. Browser cookies are ephemeral and are discarded when the browser closes; no persistent user profile or cross-run price-history database is created. Contact us through the Actor's Issues tab for normal support.

Use public information responsibly and comply with applicable law, source terms and your own obligations. Do not collect private account information or use this Actor to bypass authentication. This independent tool is not affiliated with bol.com.

Failed operations send sanitized diagnostic input, exceptions and Actor/build/run IDs to our private GlitchTip service for repair. Secret fields and URL queries are removed; reports are retained for 30 days.

FAQ and troubleshooting

Why are some products not literal keyword matches? bol.com can return fuzzy matches, suggestions and sponsored cards. This Actor exports the source search cards without inventing a stricter filter.

Why are seller or ratings missing? Fields remain null if the card does not expose them. The Actor does not fetch details to fill gaps.

Can I get reviews, EANs or every offer? No. This product covers NL catalog cards only. Review counts are summaries, not review records.

Why did I receive fewer products than requested? The global limit is a ceiling, not a guarantee. Source exhaustion, page caps, duplicates or a failed run can reduce output; check SUMMARY and run status.

What should I do after a challenge failure? The run already attempted bounded identity rotation. Review the error and try later rather than launching a tight retry loop.

This is a standalone bol.com catalog export. Other marketplace exports are independent sources, not substitutes for bol.com coverage. See the automation-lab Actor collection for additional source-specific tools.