Coolblue APIcoolblue.be ↗
Access Coolblue Belgium product data via API. Search electronics, browse GPUs, CPUs, and smartphones, and retrieve live prices and stock availability.
What is the Coolblue API?
The Coolblue.be API covers 7 endpoints for querying Belgium's largest electronics retailer, returning product names, prices in EUR, availability status, ratings, and review counts. Use search_products to find items by keyword, or hit category-specific endpoints like get_gpu_listings and get_cpu_listings to paginate through entire product categories with consistent response fields across all results.
curl -X GET 'https://api.parse.bot/scraper/30136e3d-48af-40d4-a418-dfcf5029f660/search_products?query=iPhone' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace coolblue-be-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Coolblue.be SDK — product search, category browsing, pricing."""
from parse_apis.coolblue_be_product_api import Coolblue, NotFoundError
coolblue = Coolblue()
# Search for products by keyword, capped at 5 results
for item in coolblue.listings.search(query="RTX 5080", limit=5):
print(item.name, item.price, item.availability)
# Browse GPUs via the dedicated listing method
for gpu in coolblue.listings.list_gpus(limit=3):
print(gpu.name, gpu.price, gpu.currency)
# Browse a category with automatic pagination
smartphones = coolblue.category("smartphones")
for phone in smartphones.list_products(limit=3):
print(phone.name, phone.price, phone.currency)
# Drill into full product details from a listing
listing = coolblue.listings.list_cpus(limit=1).first()
if listing:
product = listing.details()
print(product.name, product.brand, product.price, product.rating)
# Get real-time price and availability
price_info = product.get_price()
print(price_info.name, price_info.price, price_info.availability)
# Typed error handling
try:
bad_listing = coolblue.listings.search(query="nonexistent xyz qqq", limit=1).first()
if bad_listing:
bad_listing.details()
except NotFoundError as exc:
print(f"Product not found: {exc}")
print("exercised: listings.search / list_gpus / list_cpus / category.list_products / listing.details / product.get_price")
Full-text search across Coolblue.be's product catalog. Returns products matching the query keyword with name, price, availability, and product ID. Handles search redirects to brand or category pages automatically. Results are returned as a single page of all matching items.
| Param | Type | Description |
|---|---|---|
| queryrequired | string | Search keyword (e.g. 'iPhone', 'headphones', 'monitor') |
{
"type": "object",
"fields": {
"query": "search query string echoed back",
"total": "integer count of products returned",
"products": "array of product objects with product_id, name, url, price, currency, availability, image, rating, review_count"
},
"sample": {
"data": {
"query": "iPhone",
"total": 22,
"products": [
{
"url": "https://www.coolblue.be/nl/product/968961/apple-iphone-17-256gb-zwart.html",
"name": "Apple iPhone 17 256GB Zwart",
"image": "https://image.coolblue.be/500x500/products/2212660",
"price": "966",
"rating": "N/A",
"currency": "EUR",
"product_id": "968961",
"availability": "InStock",
"review_count": 0
}
]
},
"status": "success"
}
}About the Coolblue API
What the API Returns
All listing endpoints — get_gpu_listings, get_cpu_listings, get_smartphone_listings, and the general get_category_listings — return paginated arrays of product objects. Each object includes product_id, name, url, price, currency (EUR), availability, image, rating, and review_count. The total_pages field lets you walk the full catalogue without guessing page boundaries. The get_category_listings endpoint accepts a category_path parameter such as 'laptops/windows-laptops' or 'videokaarten', making it more flexible than the named-category shortcuts.
Search and Product Detail
search_products takes a single query string (e.g. 'iPhone', 'monitor') and echoes back the query alongside a total count and the matching product array. It handles search redirects automatically, so a brand search like 'Samsung' that Coolblue internally routes to a brand page still resolves to a product list. For deeper inspection, get_product_details accepts a full product URL and returns the extended set of fields: brand, a description (HTML-encoded), an images array, and rating with review_count — richer than what listing endpoints expose.
Price and Availability Checks
get_product_price_and_availability is a lightweight endpoint for polling current price and stock status on a single item. It returns price, currency, availability (as a schema.org URL, e.g. https://schema.org/InStock), and product_id without the full spec payload. This makes it suitable for price-tracking pipelines where full product detail is already cached and only the mutable fields need refreshing.
The Coolblue API is a managed, monitored endpoint for coolblue.be — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when coolblue.be changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official coolblue.be API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Track daily price changes on GPUs by polling
get_gpu_listingsand comparing storedpricevalues. - Build a CPU benchmark comparison tool by enriching
get_cpu_listingsresults withget_product_detailsspecs. - Monitor smartphone availability for drop-in-stock alerts using
get_product_price_and_availability. - Aggregate Belgian electronics pricing across categories via
get_category_listingswith customcategory_pathvalues. - Feed a shopping comparison site with Coolblue product names, images, and ratings from
search_products. - Identify top-rated products in a category by filtering on
ratingandreview_countfrom listing responses. - Automate competitive price intelligence for Belgium's electronics market using paginated category sweeps.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Coolblue have an official public developer API?+
What does `get_product_details` return that listing endpoints do not?+
get_product_details returns additional fields not present in listing arrays: brand, description (HTML-encoded product description), and images (an array of image URLs). Listing endpoints return a single image field and omit brand and description entirely.Does `get_category_listings` cover all Coolblue categories, or only a fixed set?+
category_path string, including nested paths like 'laptops/windows-laptops', so it is not limited to a fixed set. The named-category endpoints (get_gpu_listings, get_cpu_listings, get_smartphone_listings) are convenience shortcuts for three common categories.Does the API return product specifications or filter options (e.g. RAM size, GPU memory)?+
description field at the detail level, but no structured technical specifications or facet filter values. You can fork this API on Parse and revise it to add a specifications endpoint that parses the spec table from individual product pages.How does pagination work across category endpoints?+
page integer (current page), count (products on that page), and total_pages (estimated total pages). Pass the page parameter incrementally to retrieve subsequent pages. The total_pages value is an estimate, so treat it as a ceiling rather than an exact page count.