Independent source guide

bol.com product data: EANs, seller offers & NL/BE prices

Compare bol.com products and retailer offers by EAN, country and condition. Understand price, delivery, OAuth API scope, affiliate terms and variant IDs.

Start with EAN, bol Product ID, and the product URL

An EAN identifies a catalog product; it does not identify one retailer’s offer. bol’s Marketing Catalog API documents a 13-digit EAN, a separate `bolProductId` (BPID), product URLs and variant relationships. Preserve EANs as text so leading zeroes survive, and retain the country and language used for each page or response.

Scroll to compare →

Start with EAN, bol Product ID, and the product URL
ReferenceWhat it identifiesHow to preserve it
EANA 13-digit catalog product reference used by bol APIs.Store it as text, including leading zeroes; do not attach one retailer’s offer to the EAN alone.
bol Product ID (BPID)bol’s catalog product identifier, returned separately from the EAN.Keep the API field name and value beside the EAN; do not substitute it for an offerId.
Product URLThe product page for a selected bol country and language.Save the exact URL and market context; one product page can lead to multiple offers.
Variant relationshipThe Marketing Catalog API groups related products by an attribute such as color or shoe size.Keep the returned group and associated EANs; do not invent a variant key from title text.

One EAN can return several retailer offers

The bol Retailer API’s competing-offers endpoint retrieves active offers across retailers for a specified EAN. Each result remains an offer record with its own retailer, market, condition and fulfillment details. bol documents OAuth2 authentication for the Retailer API, so this operation is not anonymous public catalog search.

Scroll to compare →

One EAN can return several retailer offers
Offer fieldWhat bol documentsComparison rule
offerIdThe identifier associated with one particular offer.Keep it on the offer row; it is not the catalog EAN or BPID.
retailerIdThe retailer reference for that offer.Retain it when comparing sellers; an EAN may relate to several retailer IDs.
countryCodeThe country where the offer is published, such as NL or BE.Treat each market as a separate observation.
conditionThe stated condition of the offered item.Do not merge new, second-hand and refurbished offers as equivalent.
price and fulfillmentThe offer’s selling price and fulfillment method.Keep both with the offer and country; neither alone defines the best offer.
bestOfferWhether bol identifies the offer as best for the specified product and country.Keep the country and response time; bol considers several offer factors, not price alone.

Compare price and delivery within the same country

The `bestOffer` flag is country-specific: the Netherlands and Belgium can have different best offers for one EAN. bol says its calculation considers country, condition, fulfillment method, ultimate order time, and product price before and after discount. Save those fields and the response time together; do not merge NL and BE values or combine API responses as if they were synchronized.

Scroll to compare →

Compare price and delivery within the same country
ObservationRecord with the offerDo not infer
Market and priceCountry code, returned price and currency when supplied, plus capture time.Do not compare NL and BE values as one market or convert without an identified rate and date.
FulfillmentThe exact `fulfilmentMethod` value returned for that offer.A fulfillment label does not identify retailer ownership or exact stock quantity.
Order cutoff`ultimateOrderTime` where returned.This cutoff applies to the documented offer and delivery context; it is not a general same-day promise.
Delivery window`minDeliveryDate` and `maxDeliveryDate`, where returned, with observation time.These are returned date bounds, not a guarantee for a later order or another location.
Best-offer state`bestOffer`, the country and all relevant fields used in the response.“Best” is not a synonym for cheapest; bol lists condition, fulfillment, cutoff and before/after-discount price factors.

Keep second-hand and refurbished condition grades distinct

The competing-offers endpoint exposes condition values for each offer. bol documents a default mapping that can make refurbished items look like second-hand grades; preserve the original condition and whether the refurbished-condition query option was enabled.

Scroll to compare →

Keep second-hand and refurbished condition grades distinct
Condition evidenceDocumented treatmentSafe comparison
NEWA new-product offer.Compare with other new offers unless the analysis explicitly includes multiple conditions.
Second-hand gradesThe documented values include BAD, MODERATE, REASONABLE, GOOD and AS_NEW.Retain bol’s exact value; do not flatten grades into a generic used condition.
Refurbished by defaultRefurbished grades A/B/C map to AS_NEW/GOOD/REASONABLE when explicit refurbished conditions are not requested.This default can obscure refurbished vs. second-hand; preserve the mapping context.
include-refurbished-conditions=trueThe response can use REFURBISHED_A, REFURBISHED_B and REFURBISHED_C.Record the query parameter state before comparing grade-level offers.

Retailer API, catalog content terms, and robots rules are separate

The Retailer API and Marketing Catalog API serve different access contexts. The current release schedule lists Retailer API v10 as Live and v11 as Alpha. The Marketing Catalog documentation describes accepted affiliate partners and OAuth2, but its 1.3.0 reference sits beside a lifecycle page that still lists an end-of-life entry of “> 1 July 2025” with no newer major version. Confirm Catalog API service status with bol before relying on it.

Scroll to compare →

Retailer API, catalog content terms, and robots rules are separate
SourceWhat its official material saysBoundary
Retailer APIOAuth2 Retailer API; the competing-offers endpoint returns active retailer offers for one EAN. v10 is Live and v11 Alpha on the 2026-09-30 release schedule.This is an authenticated retailer API operation, not an anonymous feed.
Marketing Catalog APICatalog product, EAN/BPID, variant and optional best-offer fields for registered Affiliate Program partners using OAuth2.Its reference shows v1.3.0 while the lifecycle page’s end-of-life entry is dated in the past; the current service status is unresolved.
Affiliate channel conditionsTerms updated 2026-02-26 list spider/stock-alert sites and sites showing bol items without added value among channels bol may reject or remove.This clause addresses Affiliate Program channel eligibility; do not reframe it as the Retailer API rule.
API-user content termsThe separate API-user conditions license bol Content only to generate traffic to bol.Do not infer that an affiliate or API credential permits competitor-price or stock-alert reuse.
robots.txtChecked 2026-09-30: the general user-agent group starts with `Allow: /`, followed by specific exclusions and NL/BE/fr-BE sitemap paths.A crawler directive does not grant credentials or permission to reuse catalog content.

Content reviewed 2026-09-29.