Discover/ah API
live

ah APIah.nl

Access Albert Heijn supermarket data via API: search products, fetch nutritional details, browse weekly bonus offers, explore categories, and retrieve supplier info.

Endpoint health
verified 13h ago
get_bonus_products
get_categories
search_products
get_suppliers
get_product_details
5/5 passing latest checkself-healing
Endpoints
5
Updated
21d ago

What is the ah 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.

Try it
Page number (0-based)
Number of results per page (max 50)
Search query (e.g., 'melk', 'pasta', 'bier')
Sort order for results.
Filter to only show bonus/discount products
Filter by taxonomy/category ID (e.g., '2390' for Halfvolle melk)
api.parse.bot/scraper/43420567-6847-4f31-98a5-fc8877e481b0/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
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": "5",
  "query": "melk",
  "sort_by": "price",
  "bonus_only": "False"
}'
Python SDK · recommended

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 ah-nl-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: Albert Heijn supermarket SDK — search products, check details, browse deals."""
from parse_apis.albert_heijn_supermarket_api import AlbertHeijn, Sort, ProductNotFound

client = AlbertHeijn()

# Search for products with sort preference. limit= caps total items fetched.
for product in client.productsummaries.search(query="pasta", sort_by=Sort.PRICE, limit=5):
    print(product.title, product.brand, product.price, product.nutriscore)

# Drill into one product's full details via the summary→detail navigation.
summary = client.productsummaries.search(query="melk", limit=1).first()
if summary:
    detail = summary.details()
    print(detail.title, detail.price, detail.sales_unit_size)
    for contact in detail.supplier_contacts:
        print(contact.name, contact.address)

# Browse current bonus/discount products.
for bonus in client.bonusproducts.list(category="bier", limit=3):
    print(bonus.title, bonus.original_price, bonus.bonus_mechanism)
    for label in bonus.discount_labels:
        print(label.code, label.description)

# Fetch a product by ID directly and handle not-found gracefully.
try:
    detail = client.products.get(product_id="441199")
    print(detail.title, detail.brand, detail.nutriscore)
except ProductNotFound as exc:
    print(f"Product not found: {exc.product_id}")

# List all top-level store categories.
for cat in client.categories.list(limit=5):
    print(cat.name, cat.slug, cat.nix18)

print("exercised: productsummaries.search / details / bonusproducts.list / products.get / categories.list")
All endpoints · 5 totalmissing one? ·

Search for products in the Albert Heijn supermarket. Returns product listings with prices, images, categories, bonus/discount status, and more. Paginates via a 0-based page counter. Each page returns up to `size` products (max 50). Supports filtering by bonus status and category taxonomy ID.

Input
ParamTypeDescription
pageintegerPage number (0-based)
sizeintegerNumber of results per page (max 50)
queryrequiredstringSearch query (e.g., 'melk', 'pasta', 'bier')
sort_bystringSort order for results.
bonus_onlybooleanFilter to only show bonus/discount products
category_idstringFilter by taxonomy/category ID (e.g., '2390' for Halfvolle melk)
Response
{
  "type": "object",
  "fields": {
    "filters": "array of available filter options (brand, taxonomy, intolerance)",
    "products": "array of product objects with id, title, brand, prices, bonus info, images, nutriscore",
    "pagination": "object with page, size, total_elements, total_pages",
    "taxonomy_nodes": "array of category nodes with id, name, images"
  }
}

About the ah API

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.

Reliability & maintenanceVerified

The ah API is a managed, monitored endpoint for ah.nl — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when ah.nl 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 ah.nl 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.

Last verified
13h ago
Latest check
5/5 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a price-tracking tool that monitors ah.nl bonus promotions using get_bonus_products and alerts users when specific items go on discount.
  • Populate a nutrition database with allergen arrays, net weight, and dietary properties from get_product_details for meal-planning or label-compliance apps.
  • Create a grocery comparison widget that fetches live prices and bonus status via search_products with bonus_only filtering.
  • Index the full Albert Heijn category taxonomy with get_categories to power a browsable grocery directory with age-restriction (nix18) flags.
  • Identify and contact product manufacturers by resolving supplier gln codes and communication_channels from get_suppliers for B2B procurement workflows.
  • Filter packaging recyclability data from get_product_details to help consumers or retailers find products with sustainable packaging.
  • Aggregate brand-level product counts across categories by combining search_products with category_id filtering and the brand field on each product.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does Albert Heijn have an official public developer API?+
Albert Heijn does not publish a public developer API for external use. No official API portal or documented developer program is available to third parties as of mid-2025.
What does get_product_details return beyond basic price and title?+
Beyond 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?+
Not currently. The API covers product data, nutritional/allergen details, bonus promotions, category taxonomy, and supplier records — but customer reviews and star ratings are not part of any endpoint's response fields. You can fork this API on Parse and revise it to add an endpoint targeting review data.
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.
Can I retrieve store-specific inventory or stock levels?+
Not currently. The API returns catalog-level product and pricing data; per-store stock availability is not exposed in any endpoint response. You can fork this API on Parse and revise it to add an endpoint targeting store-level availability data.
Page content last updated . Spec covers 5 endpoints from ah.nl.
Related APIs in Food DiningSee all →
amazon.nl API
Search Amazon.nl for products by keyword, retrieve full product details and specifications, read customer reviews, and browse category bestseller lists.
lidl.nl API
Browse Lidl Netherlands weekly leaflet offers, search the online assortment, fetch detailed product information by ERP/product IDs, and retrieve current bestsellers with pricing and availability.
aldi.de API
Browse current and upcoming Aldi Nord offers, search products, and discover deals organized by category or date. Access detailed product information, weekly flyers, and explore items across all available categories to find the best bargains.
nemlig.com API
Search and browse grocery products across categories on nemlig.com, view detailed product information and recipes, check current promotional offers, and manage a shopping basket. Add items to a basket and organize them before checkout.
ahlens.se API
Search and browse products from Åhléns Swedish department store to get pricing, images, brands, and category information, with autocomplete suggestions to help you find what you're looking for. Access detailed product information and explore items across different categories in real-time.
alternate.be API
Search for products on Alternate Belgium and instantly access live prices, stock availability, technical specifications, customer reviews, and current deals across their entire catalog. Browse their complete category structure to find exactly what you need and compare products before making a purchase decision.
a101.com.tr API
Browse and search products from A101's grocery delivery service (Kapıda) and marketplace (Ekstra), including category exploration and detailed product information. Find what you need across both platforms with search functionality and organized category browsing.
carrefour.eu API
Search and browse Carrefour's European online product catalog to access pricing, promotions, availability, and detailed product information including nutritional data. Retrieve comprehensive product details across categories to compare prices and find current deals in real-time.