ALDI SÜD (Germany) API & Scraper
ALDI SÜD is the discount supermarket chain of southern and western Germany.
🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.
This API reads aldi-sued.de live and returns its prices as JSON. `search` takes a keyword, a category, an offer date or nothing at all (the whole online assortment, 3,516 products on 2026-10-18) and returns each product with its euro price, the unit price and what it is per (1 kg, 1 l, 100 Blatt), the struck-through price and saving on offers, the deposit, pack size, brand and the shelf badges. `offers` lists the current offer ranges: Wochenangebote and its fresh, own-brand and brand parts, Dauerhaft günstig, products under 1 euro and Neuheiten. `promotions` gives the dated Angebote ("ab Donnerstag, 15. Oktober") to pass to search. `product/detail` adds ingredients, allergens, nutrition per 100 g and storage. `stores` finds ALDI SÜD stores by town, postcode or coordinates; a store id narrows any listing to that store's range.
What an ALDI SÜD field actually contains
Fields that read differently from how they look, measured on live responses on 2026-10-18.
| Field | What it holds |
|---|---|
| price, price_display | The shelf price in euros as the product page prints it ("0,85 €"). It matched the product page on 14 of 14 products checked. |
| unit_price, unit_price_basis | The Grundpreis and what it is per: 0.85 with basis "1 l", 14.98 with "1 kg", 0.76 with "100 Blatt". The number is never rescaled; compare products only on the same basis. Null when ALDI SÜD prints none (fresh milk has none). |
| was_price, discount_percent, savings_display | On offers: the struck-through price, the discount computed from the two prices and the saving ALDI SÜD prints ("21 %"). The printed and computed figures agreed within one point on 85 of 85 offer rows. |
| deposit, deposit_type | The Pfand, separate from the price: 0.25 EINWEG on single-use bottles and cans (48 of 360 rows sampled), 6.00 on a 24-can advent calendar. |
| on_sale_date | The day a dated offer (Aktion) starts in store. Future dates are announced offers, not stock. |
| assortment_scope, store_id | national when no store is given: the listing covers every region. With store_id it is that store's range. Prices are the same in every store (0 differences across München, Köln and Nürnberg); the range is not (bread 82 nationally, 70 in a München store). |
| badges | Shelf badges as printed: Kühlung, Vegan, Aktion, Vegetarisch, Regional verfügbar, Tiefkühlung. |
| id | ALDI SÜD's 18-digit product id; keep the leading zeros. It is not an EAN: aldi-sued.de publishes no barcode. |
A page can hold one or two products fewer than requested while more pages remain: ALDI SÜD sometimes counts products it does not list (one offer date: 84 counted, 82 listed). page_short marks such a page; keep paging by page number.
Real request and response JSON
Captured from the indexed primary action, search, on .
{
"method": "POST",
"url": "https://api.reefapi.com/aldi-de/v1/search",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"query": "milch",
"limit": 12
}
}{
"ok": true,
"meta": {
"api": "aldi-de",
"endpoint": "search",
"mode": "live",
"latency_ms": 694.2,
"record_count": 12,
"bytes": 21601,
"cache_hit": false,
"warnings": [
"Unknown parameters ignored: include_pii"
],
"upstream_requests": 1,
"charged_credits": 2,
"version": "1.0.0",
"request_id": "b0b470bac9d14f0a",
"fetched_at": "2026-10-18T17:44:56.367Z"
},
"data": {
"products": [
{
"id": "000000000330654001",
"title": "Frische Vollmilch 3,5 % 1 l",
"brand": "MILSANI",
"url": "https://www.aldi-sued.de/produkt/milsani-frische-vollmilch-3-5-1-l-000000000330654001",
"price": 0.95,
"price_display": "0,95 €",
"currency": "EUR",
"price_mismatch": false,
"price_is_estimate": false,
"estimated_weight": null,
"was_price": null,
"was_price_display": null,
"discount_percent": null,
"savings_display": null,
"unit_price": null,
"unit_price_display": null,
"unit_price_basis": null,
"pack_size": null,
"deposit": null,
"deposit_display": null,
"deposit_type": null,
"badges": [
"Kühlung"
],
"on_sale_date": null,
"on_sale_date_display": null,
"categories": [
{
"id": "[trimmed-depth]",
"name": "[trimmed-depth]"
}
],
"images": [
"https://dm.emea.cms.aldi.cx/is/image/aldiprodeu/product/jpg/scaleWidth/1500/42d56fe5-f25c-47ec-a113-eae834b7f5b1/Frische%20Vollmilch%203%2C5%20%25%201%20l"
],
"age_restriction": null,
"alcohol": null,
"weight_type": "0",
"online_purchasable": false
},
{
"id": "000000000000484957",
"title": "Frische Bio-Vollmilch 3,8 % 1 l",
"brand": "BIO",
"url": "https://www.aldi-sued.de/produkt/bio-frische-bio-vollmilch-3-8-1-l-000000000000484957",
"price": 1.35,
"price_display": "1,35 €",
"currency": "EUR",
"price_mismatch": false,
"price_is_estimate": false,
"estimated_weight": null,
"was_price": null,
"was_price_display": null,
"discount_percent": null,
"savings_display": null,
"unit_price": null,
"unit_price_display": null,
"unit_price_basis": null,
"pack_size": null,
"deposit": null,
"deposit_display": null,
"deposit_type": null,
"badges": [
"Kühlung"
],
"on_sale_date": null,
"on_sale_date_display": null,
"categories": [
{
"id": "[trimmed-depth]",
"name": "[trimmed-depth]"
}
],
"images": [
"https://dm.emea.cms.aldi.cx/is/image/aldiprodeu/product/jpg/scaleWidth/1500/d7934bb5-fa83-4dc5-a06f-748078213c3c/Frische%20Bio-Vollmilch%203%2C8%20%25%201%20l"
],
"age_restriction": null,
"alcohol": null,
"weight_type": "0",
"online_purchasable": false
},
{
"id": "000000000000493388",
"title": "Frische Bio-Vollmilch 3,8 % 1 l",
"brand": "NUR NUR NATUR",
"url": "https://www.aldi-sued.de/produkt/nur-nur-natur-frische-bio-vollmilch-3-8-1-l-000000000000493388",
"price": 1.45,
"price_display": "1,45 €",
"currency": "EUR",
"price_mismatch": false,
"price_is_estimate": false,
"estimated_weight": null,
"was_price": null,
"was_price_display": null,
"discount_percent": null,
"savings_display": null,
"unit_price": null,
"unit_price_display": null,
"unit_price_basis": null,
"pack_size": null,
"deposit": null,
"deposit_display": null,
"deposit_type": null,
"badges": [
"Kühlung"
],
"on_sale_date": null,
"on_sale_date_display": null,
"categories": [
{
"id": "[trimmed-depth]",
"name": "[trimmed-depth]"
}
],
"images": [
"https://dm.emea.cms.aldi.cx/is/image/aldiprodeu/product/jpg/scaleWidth/1500/612b6846-49b7-4a44-aa07-5b0d00624580/Frische%20Bio-Vollmilch%203%2C8%20%25%201%20l"
],
"age_restriction": null,
"alcohol": null,
"weight_type": "0",
"online_purchasable": false
}
],
"total": 33,
"offset": 0,
"limit": 12,
"page": 1,
"last_page": 3,
"has_more": true,
"page_short": false,
"facets": [
{
"name": "category-tree",
"label": "Kategorie",
"parameter": "categoryTree",
"values": [
{
"key": "[trimmed-depth]",
"label": "[trimmed-depth]",
"count": "[trimmed-depth]"
},
{
"key": "[trimmed-depth]",
"label": "[trimmed-depth]",
"count": "[trimmed-depth]"
},
{
"key": "[trimmed-depth]",
"label": "[trimmed-depth]",
"count": "[trimmed-depth]",
"children": "[trimmed-depth]"
}
]
},
{
"name": "Themenfilter",
"label": "Thema",
"parameter": "theme",
"values": [
{
"key": "[trimmed-depth]",
"label": "[trimmed-depth]",
"count": "[trimmed-depth]"
},
{
"key": "[trimmed-depth]",
"label": "[trimmed-depth]",
"count": "[trimmed-depth]"
}
]
},
{
"name": "brand-name",
"label": "Marken",
"parameter": "brandName",
"values": [
{
"key": "[trimmed-depth]",
"label": "[trimmed-depth]",
"count": "[trimmed-depth]"
},
{
"key": "[trimmed-depth]",
"label": "[trimmed-depth]",
"count": "[trimmed-depth]"
},
{
"key": "[trimmed-depth]",
"label": "[trimmed-depth]",
"count": "[trimmed-depth]"
}
]
}
],
"spelling_suggestion": null,
"keyword_redirect": null,
"assortment_scope": "national",
"store_id": null,
"store_defaulted": false
}
}What the ALDI SÜD (Germany) API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| search | Search products, browse a category, read a dated offer (Angebote) or page the whole online assortment; optionally one store's range. | Pricing teams call search to search products, browse a category, read a dated offer (Angebote) or page the whole online as…. | query, categoryKey, promotionKey, url, brandName, ... |
| offers | List a current offer range Wochenangebote / Frischeprodukte im Angebot / Eigenmarken im Angebot / Markenprodukte im Angebot / Dauerhaft günstig / Produkte unter 1 € / Neuheiten. | Marketplace operators call offers to list a current offer range Wochenangebote / Frischeprodukte im Angebot / Eigenmarken im Angeb…. | type, brandName, categoryTree, theme, store_id, ... |
| promotions | List current and upcoming offer dates (Angebote ab...) and their themes. | Catalog enrichment teams call promotions to list current and upcoming offer dates (Angebote ab...) and their themes.. | none |
| product/detail | Read one product: prices, description and label. | Retail analysts call product/detail to read one product. | id |
| categories | Get the live category tree with the offer ranges marked. | Pricing teams call categories to get the live category tree with the offer ranges marked.. | none |
| stores | Find ALDI SÜD stores by town, postcode or coordinates (store ids for search). | Marketplace operators call stores to find ALDI SÜD stores by town, postcode or coordinates (store ids for search).. | query, latitude, longitude, page, limit |
Call search from your stack
curl -X POST https://api.reefapi.com/aldi-de/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"milch","limit":12}'import requests
r = requests.post(
"https://api.reefapi.com/aldi-de/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "milch",
"limit": 12
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/aldi-de/v1/search", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"query": "milch",
"limit": 12
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.aldi-de.search with {"query":"milch","limit":12}.Who uses this API and why
- Track ALDI SÜD's weekly offers and old-versus-new prices for a deals app or newsletter.
- Compare German discounter prices per kilo or litre using the published Grundpreis.
- Monitor price changes across the whole ALDI SÜD online assortment with a daily sweep.
- Build a nutrition or allergen filter on ALDI SÜD products from the label data.
- Show which ALDI SÜD store near a user carries a product, using the store finder and store_id.
Questions developers ask before integrating
Does ALDI SÜD have a public API?
No public one. This API reads what aldi-sued.de shows a logged-out visitor and returns it as JSON. No account is needed.
Does it cover ALDI Nord?
No. ALDI Nord (aldi-nord.de) is a separate company with its own website. This API covers ALDI SÜD; our hofer API covers ALDI SÜD's Austrian stores.
Are the prices the same in every store?
Yes, in our measurements: three stores in München, Köln and Nürnberg priced every common product identically. Which products a store carries differs, so pass store_id to see one store's range.
How do I get this week's offers?
Call offers (type weekly, or weekly_fresh, weekly_own_brands, weekly_brands). For the dated Angebote, call promotions and pass a date to search as promotionKey; add theme to narrow it.
Is the Grundpreis included?
Yes, as unit_price with unit_price_basis, exactly as ALDI SÜD prints it. 377 of 407 sampled rows had one.
Can I get EAN barcodes?
No. aldi-sued.de does not publish them on its product pages or in its product data; products carry ALDI SÜD's own 18-digit id.
Can I see store stock?
No. ALDI SÜD publishes no store stock for the products we tried, so the API does not offer it.
How fresh is the data?
Every call reads aldi-sued.de live; nothing is cached.
What is the ALDI SÜD (Germany) API?
ALDI SÜD (Germany) API is a ReefAPI endpoint group for aldi süd germany prices as json: weekly offers (angebote), unit prices (grundpreis), deposit, labels and the store finder. It returns live JSON through POST requests under /aldi-de/v1.
Is the ALDI SÜD (Germany) API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. ALDI SÜD (Germany) calls use the same shared credit balance as every other ReefAPI engine.
Do I need an ALDI SÜD (Germany) login or account?
No login to ALDI SÜD (Germany) is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the ALDI SÜD (Germany) data?
The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the ALDI SÜD (Germany) API use?
ALDI SÜD (Germany) actions currently cost 1-3 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.
Can I call ALDI SÜD (Germany) from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call aldi-de actions with the same key, credit pool and JSON envelope used by normal REST requests.