ah.nl APIah.nl ↗
Access Albert Heijn supermarket data via API: search products, fetch nutritional details, browse weekly bonus offers, explore categories, and retrieve supplier info.
curl -X POST 'https://api.parse.bot/scraper/43420567-6847-4f31-98a5-fc8877e481b0/search_products' \
-H 'X-API-Key: $PARSE_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"page": 0,
"size": "3",
"query": "pasta"
}'Search for products in the Albert Heijn supermarket. Returns product listings with prices, images, categories, descriptions, bonus/discount status, and more. Supports pagination and filtering for bonus products only.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number (0-based) |
| size | integer | Number of results per page (max 50) |
| queryrequired | string | Search query (e.g., 'melk', 'pasta', 'bier') |
| sort_by | string | Sort order (e.g., 'price', 'bonus') |
| bonus_only | boolean | Filter to only show bonus/discount products |
| category_id | string | Filter by taxonomy/category ID |
{
"type": "object",
"fields": {
"filters": "array of available filter options",
"products": "array of product objects with id, title, brand, prices, bonus info, images",
"pagination": "object with page, size, total_elements, total_pages",
"taxonomy_nodes": "array of category nodes"
},
"sample": {
"data": {
"filters": [
{
"id": "brand",
"type": "BRAND",
"label": "Merk",
"options": [
{
"id": "AH",
"count": 89,
"label": "AH"
}
]
}
],
"products": [
{
"id": 187167,
"brand": "Iglo",
"hq_id": 787832,
"nix18": false,
"price": 6.99,
"title": "Iglo Roerbak sensatie pasta kipfilet",
"images": [
"https://static.ah.nl/dam/product/AHI_367557346e644d6453336145676256705f5171424851?revLabel=1&rendition=800x800_JPG_Q90&fileType=binary"
],
"is_bonus": false,
"shop_type": "AH",
"nutriscore": "C",
"is_orderable": true,
"is_sponsored": true,
"sub_category": "Italiaanse diepvries maaltijd",
"current_price": null,
"main_category": "Diepvries",
"bonus_end_date": null,
"property_icons": [
"diepvries"
],
"bonus_mechanism": null,
"discount_labels": [],
"is_stapel_bonus": false,
"sales_unit_size": "450 g",
"available_online": true,
"bonus_start_date": null,
"description_full": "...",
"is_infinite_bonus": false,
"availability_status": "IN_ASSORTMENT",
"min_best_before_days": null,
"description_highlights": "<p>...</p>",
"unit_price_description": "prijs per kg €15.53",
"bonus_period_description": null,
"bonus_segment_description": null
}
],
"pagination": {
"page": 0,
"size": 3,
"total_pages": 97,
"total_elements": 289
},
"taxonomy_nodes": [
{
"id": 6885,
"name": "Verse pasta",
"images": []
}
]
},
"status": "success"
}
}About the ah.nl API
The Albert Heijn API gives developers structured access to the ah.nl supermarket catalog across 5 endpoints, covering product search, detailed nutritional and allergen data, current bonus promotions, category taxonomy, and supplier contact information. The get_product_details endpoint alone returns over a dozen fields including allergens, packaging recyclability, net weight, and dietary properties alongside live pricing.
Product Search and Bonus Promotions
The search_products endpoint accepts a required query string (Dutch or brand name, e.g. 'melk', 'pasta') and returns an array of product objects with fields including id, title, brand, prices, bonus status, and image URLs. Pagination is 0-based via page and size (up to 50 per page), and results can be sorted by price or bonus. Set bonus_only: true to restrict results to currently discounted items, or pass a category_id to scope the search to a specific taxonomy node. The get_bonus_products endpoint provides a dedicated view of active promotions, returning original and discounted prices alongside promotion periods and discount details for every item currently on offer.
Product Details and Nutritional Data
get_product_details takes a single product_id (e.g. '4164') and returns a full data record including allergens (structured array), packaging (materials and recyclability flags), measurements (net content and weight), and a properties object covering dietary and lifestyle attributes such as vegan or lactose-free status. This makes it suitable for building nutrition trackers, label-compliance tools, or shopping assistants that need to surface ingredient transparency data.
Categories and Suppliers
get_categories returns the full top-level category tree with each entry's id, name, slug, image, and nix18 flag (indicating age-restricted categories like alcohol). Passing a category_id switches the response to show filters, nested taxonomy_nodes, and a total_products count for that node — useful for building browsable category pages.
get_suppliers is queried either by passing comma-separated product_ids or a free-text query. It returns unique supplier objects with name, address, gln (Global Location Number), communication_channels, and a products list showing which items each supplier is linked to, plus a product_supplier_mapping array that pairs every product back to its supplier.
- Build a price-tracking tool that monitors ah.nl bonus promotions using
get_bonus_productsand alerts users when specific items go on discount. - Populate a nutrition database with allergen arrays, net weight, and dietary properties from
get_product_detailsfor meal-planning or label-compliance apps. - Create a grocery comparison widget that fetches live prices and bonus status via
search_productswithbonus_onlyfiltering. - Index the full Albert Heijn category taxonomy with
get_categoriesto power a browsable grocery directory with age-restriction (nix18) flags. - Identify and contact product manufacturers by resolving supplier
glncodes andcommunication_channelsfromget_suppliersfor B2B procurement workflows. - Filter packaging recyclability data from
get_product_detailsto help consumers or retailers find products with sustainable packaging. - Aggregate brand-level product counts across categories by combining
search_productswithcategory_idfiltering and thebrandfield on each product.
| 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 | 250 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 Albert Heijn have an official public developer API?+
What does get_product_details return beyond basic price and title?+
price and title, the endpoint returns structured allergens, a packaging object with material types and recyclability flags, a measurements object (net content and weight), a properties object covering dietary attributes (e.g. vegan, lactose-free), images, and the is_bonus flag with full discount information when applicable.Does the API cover product reviews or customer ratings?+
How does pagination work across endpoints, and are there size limits?+
search_products and get_bonus_products both use 0-based page indexing and accept a size parameter capped at 50 results per page. Each response includes a pagination object with total_elements and total_pages so callers can iterate the full result set. get_suppliers has a size limit of 20 when using query-based lookup.