Colruyt APIcolruyt.be ↗
Search Colruyt supermarket products, retrieve detailed product data including nutritional scores and pricing, and list current in-store promotions via REST API.
What is the Colruyt API?
The Colruyt.be API exposes 3 endpoints covering product search, product details, and active store promotions from Belgium's Colruyt supermarket chain. The search_products endpoint returns paginated results with pricing, brand, nutritional scores, and promotion status for any keyword query. get_product_details goes further, returning GTINs, eco scores, organic flags, and per-unit pricing for a single product by commercial article number, technical article number, or barcode.
curl -X GET 'https://api.parse.bot/scraper/54a8ba2b-5fe7-4859-9138-5d8a956ba6f7/search_products?page=1&size=5&query=melk&sort=relevancy+asc&place_id=604' \ -H 'X-API-Key: $PARSE_API_KEY'
Search Colruyt products by keyword. Returns product metadata including prices, brand, nutritional scores, availability, and promotion status. Results are paginated via page/size parameters; omitting page defaults to page 1. Each request warms up a session before calling the upstream API, so latency includes one warmup round-trip.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination (1-based). |
| size | integer | Number of products per page (1-100). |
| sort | string | Sort order string as accepted by the upstream API (e.g. 'relevancy asc', 'price asc', 'price desc'). |
| queryrequired | string | Search keyword (e.g. 'melk', 'bier', 'cola'). |
| place_id | string | Colruyt store place ID for availability and pricing context. Default is Colruyt Halle (604). |
{
"type": "object",
"fields": {
"page": "Current page number",
"size": "Requested page size",
"products": "Array of product objects with metadata, pricing, and availability",
"products_found": "Total number of matching products",
"products_returned": "Number of products in this response page"
},
"sample": {
"data": {
"page": 1,
"size": 5,
"products": [
{
"gtin": [
"15400141506539",
"05400141506532"
],
"name": "Halfvolle melk brik",
"brand": "EVERYDAY",
"price": {
"basicPrice": 0.849,
"isRedPrice": false,
"pricePerUOM": 0.85,
"priceReason": "Reaction",
"isPromoActive": "N",
"activationDate": "10-07-2026",
"measurementUnit": "L",
"priceChangeCode": "E",
"recommendedQuantity": "1.0",
"measurementUnitPrice": 0.85
},
"is_bio": false,
"is_new": false,
"content": "1L",
"in_promo": false,
"long_name": "EVERYDAY Halfvolle melk brik 1L",
"seo_brand": "Everyday",
"thumbnail": "https://static.colruytgroup.com/images/200x200/std.lang.all/37/38/asset-4113738.jpg",
"full_image": "https://static.colruytgroup.com/images/500x500/std.lang.all/37/38/asset-4113738.jpg",
"nutri_score": "B",
"is_available": true,
"eco_score_label": "C",
"top_category_id": "65",
"greenscore_label": "B",
"country_of_origin": "BE",
"top_category_name": "Zuivel",
"is_price_available": true,
"technical_article_number": "4862636",
"commercial_article_number": "24583"
}
],
"products_found": 36,
"products_returned": 5
},
"status": "success"
}
}About the Colruyt API
Product Search and Details
The search_products endpoint accepts a query string (e.g. 'melk', 'bier') alongside optional page, size (1–100), and sort parameters such as 'price asc' or 'relevancy asc'. Responses include products_found (total match count), products_returned (current page count), and an array of product objects carrying price, brand, nutritional scores, availability, and in_promo flags. A place_id parameter scopes results to a specific store — defaulting to Colruyt Halle (604) when omitted.
Single Product Lookup
get_product_details accepts a product_id that can be a commercial article number (e.g. '24583'), a technical article number (e.g. '4862636'), or a GTIN barcode. The response includes gtin (array of barcodes), name, long_name, brand, content (e.g. '1L'), is_bio, is_new, and a price object with basic_price, measurement_unit_price, measurement_unit, is_red_price, and is_promo_active. Passing a place_id adjusts pricing and availability to reflect that store's context.
Store Promotions
get_promotions lists active promotions at a given Colruyt store. Each promotion object includes discount benefits, validity dates, linked products, and associated brands. Pagination works the same way as product search — page and size parameters control the window, and total_promotions_found gives the full count. The default store is again Colruyt Halle (604), overridable via place_id.
The Colruyt API is a managed, monitored endpoint for colruyt.be — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when colruyt.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 colruyt.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 Colruyt shelf prices over time for grocery price comparison tools.
- Build a Belgian supermarket promotion aggregator using
get_promotionsvalidity dates and discount benefits. - Look up product nutritional and eco scores by GTIN barcode for a food-tracking app.
- Monitor
is_red_priceandis_promo_activeflags to alert users when a watched product goes on sale. - Populate a product catalog with
long_name,brand,content, andis_biofields fromget_product_details. - Compare per-unit pricing across stores by repeating
search_productswith differentplace_idvalues.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Colruyt have an official public developer API?+
What does `get_product_details` return that `search_products` does not?+
get_product_details returns the full gtin barcode array, seo_brand, is_bio, is_new, and the complete price object including measurement_unit, price_per_uom, and activation_date. The search endpoint includes pricing and promotion status but is oriented toward list-level metadata rather than exhaustive single-product fields.How does store selection work across the endpoints?+
place_id parameter. When omitted, they default to Colruyt Halle (store 604). Passing a different place_id adjusts returned prices and availability to reflect that specific store's context. You need to know the store's place ID in advance — no endpoint for discovering or listing all store IDs is included in the current API.Does the API cover Colruyt's online shop or other Colruyt Group banners like OKay or Bio-Planet?+
Is there a limit on how many products `search_products` can return per request?+
size parameter accepts values from 1 to 100 products per page. For larger result sets you paginate using the page parameter in combination with the products_found total returned in the response.