curl --request POST \
--url https://api.scrapeunblocker.com/groceries/aldi-au \
--header 'x-scrapeunblocker-key: <api-key>'import requests
url = "https://api.scrapeunblocker.com/groceries/aldi-au"
headers = {"x-scrapeunblocker-key": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {'x-scrapeunblocker-key': '<api-key>'}};
fetch('https://api.scrapeunblocker.com/groceries/aldi-au', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Scrape ALDI Australia groceries
ALDI Australia (aldi.com.au) products as JSON. mode=search&query=, mode=category&category= and mode=specials return products: id (SKU), name, brand, size, url, price, priceText, wasPrice, onSale, unitPrice (price, per, text), bottleDeposit, specialBuy (on-sale date and label), badges, available, soldOnline, ageRestricted, image, categories and categoryKeys, plus totalResults, totalPages and nextPage. mode=specials lists one Special Buys drop (the current one, or the date / link in category; theme narrows it) and returns promotions, every drop ALDI has announced with its themes. mode=product&product= returns product with those fields and description, ingredients, allergens, claims, storage, usage, countryOfOrigin and images. Prices are ALDI’s in-store prices in AUD (ALDI Australia does not sell groceries online). Listings collect up to max_results from page on, billed one unit per page.
curl --request POST \
--url https://api.scrapeunblocker.com/groceries/aldi-au \
--header 'x-scrapeunblocker-key: <api-key>'import requests
url = "https://api.scrapeunblocker.com/groceries/aldi-au"
headers = {"x-scrapeunblocker-key": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {'x-scrapeunblocker-key': '<api-key>'}};
fetch('https://api.scrapeunblocker.com/groceries/aldi-au', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
Your ScrapeUnblocker API key. Apply on every request.
Query Parameters
'search' (default): products matching query. 'category': a category listing. 'specials': a Special Buys drop. 'product': one product with ingredients and its images. Defaults to 'product' when product is given and to 'category' when category is.
What to search for (mode=search), e.g. 'milk', 'chocolate', 'nappies'.
mode=category: a category link (https://www.aldi.com.au/products/dairy-eggs-fridge/milk/k/1111111160) or its key ('1111111160'; '1588161425841179' = Lower Prices). mode=specials: the Special Buys drop - its date ('2026-10-14') or link (https://www.aldi.com.au/special-buys/2026-10-14); blank = the current drop.
mode=product: an ALDI SKU ('000000000000398691') or a product link (https://www.aldi.com.au/product/farmdale-light-milk-2l-000000000000398691).
mode=specials: one theme of the drop, e.g. 'Gardening' (see promotions[].themes).
Listing order: relevance, price_asc, price_desc, name_asc, name_desc.
1-based listing page to start from (60 products per page).
Products to collect across pages, 1-600. Each page fetched is billed one unit.
Proxy country the request is sent from (ISO-2, e.g. 'AU', 'US'). Leave blank: ALDI answers every country, so the load spreads over all exits.
Response
JSON with products (listings) or product. A search with no matches answers 200 with an empty products list.

