Looking for the overview — what this API returns, what it costs, and a call you can run without a key? See the Coolblue API page →
docs / coolblue

Coolblue

The Dutch and Belgian electronics retailer: live price, stock, delivery promise, the full spec table and review scores, per storefront.

base /coolblue/v16 endpoints
post/coolblue/v1/browse3 credits

Walk one of Coolblue's 403 categories — the catalogue view, and the richer of the two surfaces. Rows carry the typed delivery promise, the price with and without VAT, the review average, how many stores hold the item, the refurbished (Second Chance) price when there is one, and the colour variants. Use `categories` for the slugs and `filters` for the narrowing options.

ParameterAllowed / rangeDescription
categoryrequiredA Coolblue category slug such as 'headphones', 'washing-machines' or 'laptops', or a category URL. The `categories` action lists all 403 of them.
market = nloptionalnl · be · deWhich storefront to ask. Prices and stock genuinely differ between them (measured: 5 of 7 shared products had a different price on nl vs be) and each market lists products the others do not.
filtersoptionalFacet segments in 'key:value' form, for example 'merk:apple'. One value per key (the source answers a multi-value '+' form with 404). Call the 'filters' action to list what a category accepts, with the result count behind each value.
sort = relevanceoptionalrelevance · lowest-price · highest-price · most-sold · highest-ratedResult order. All five were measured to genuinely reorder the grid. An unknown value is rejected rather than passed on, because the source accepts any string and silently ignores what it does not know.
page = 1optional1–Page of 22 results. A category publishes its own `total_pages`; asking past it returns NOT_FOUND.
Try in playground →
post/coolblue/v1/product/detail3 credits

One full product record by id or Coolblue URL: price including and excluding VAT, stock state, how many of Coolblue's stores hold it and how many can hand it over, the complete manufacturer specification table, the review average with its 1-5 star distribution, Coolblue's own pros and cons, and every gallery image. The answer also carries `source_check`, which compares the price against the schema.org copy the same page publishes so you can see the two agree.

ParameterAllowed / rangeDescription
product_idrequiredThe Coolblue product number (979101) or any Coolblue product URL. The id alone is enough — no slug needed.
market = nloptionalnl · be · deWhich storefront to ask. Prices and stock genuinely differ between them (measured: 5 of 7 shared products had a different price on nl vs be) and each market lists products the others do not.
include_specs = trueoptionalInclude the specification table. Turn it off for a smaller answer when you only want price and stock; it costs the same, because it is the same page.
Try in playground →
post/coolblue/v1/products/batch20 credits

Up to 10 products in ONE call — the shape a price tracker runs on. Each row carries price, stock, rating and the id, and any id this market does not sell is named in `missing` instead of being silently dropped. Specifications are off by default here to keep the answer readable.

ParameterAllowed / rangeDescription
product_idsrequiredBetween 1 and 10 Coolblue product numbers or product URLs.
market = nloptionalnl · be · deWhich storefront to ask. Prices and stock genuinely differ between them (measured: 5 of 7 shared products had a different price on nl vs be) and each market lists products the others do not.
include_specs = falseoptionalInclude each product's specification table. Off by default because ten full spec tables is a large answer.
Try in playground →
post/coolblue/v1/filters2 credits

The filter vocabulary a category actually accepts: every facet key, its English title, and the values behind it — each with the exact `key:value` segment to pass back into `browse` or `search` AND the number of products behind it, so you can see a filter bite before spending a call on it. This exists because the facet keys are Dutch even on the English storefront (the brand filter is `merk`), so they cannot be guessed.

ParameterAllowed / rangeDescription
categoryrequiredThe category whose filters to list, for example 'headphones'.
filtersoptionalShow the filters still available after these segments are applied, with their updated counts — this is how you discover the narrowing options inside a selection.
market = nloptionalnl · be · deWhich storefront to ask. Prices and stock genuinely differ between them (measured: 5 of 7 shared products had a different price on nl vs be) and each market lists products the others do not.
Try in playground →
post/coolblue/v1/categories1 credit

Every Coolblue category, read from the sitemap it publishes for crawlers: the slug you pass to `browse` and `filters`, and its path on the site. One small request, and the slugs were verified against the live grid rather than assumed.

ParameterAllowed / rangeDescription
market = nloptionalnl · be · deWhich storefront to ask. Prices and stock genuinely differ between them (measured: 5 of 7 shared products had a different price on nl vs be) and each market lists products the others do not.
containsoptionalOnly return categories whose slug contains this text.
Try in playground →