Aldi NL Scraper
Pricing
from $1.00 / 1,000 products
Aldi NL Scraper
Aldi product API alternative: the full aldi.nl assortment of ~2,800 products with price, Aldi's unit price, this week's and next week's aanbiedingen and special buys with dates, Beter Leven, Vegan, Biologisch and Nutri-Score seals. Every category checked against Aldi's own count. No proxy.
Pricing
from $1.00 / 1,000 products
Rating
0.0
(0)
Developer
Sleep Mode Systems
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
15 hours ago
Last modified
Categories
Security
Limited permissionsShare
Aldi NL Scraper extracts the full product assortment of Aldi Nederland (https://www.aldi.nl): prices, Aldi's own unit prices, this week's and next week's deals (aanbiedingen) and special buys with their dates and deal prices, sizes, descriptions, categories and Aldi's quality seals in fields: Beter Leven, Vegan, Biologisch, Nutri-Score, Planetproof, NIX18. Every run checks itself: each of Aldi's 197 category pages is compared with Aldi's own product count for it, and the last run read all of them in full.
Price: $1.00 per 1,000 products. A full run reads all 2,797 products in under a minute to about 2 minutes on Apify, with no proxy.
What does the Aldi NL Scraper extract?
| Data | Fields | Filled in last full run |
|---|---|---|
| Identity | externalId, articleNumber, name, brand, description | 100% id and name, 99.8% article number, 74.3% brand |
| Size | sizeText, quantity, unit, packCount | 99.8% size text, 90.0% as a number, 305 multipacks |
| Price | price, currency, unitPrice, unitPriceUnit | 89.3% price, 46.0% Aldi's unit price per kg or litre |
| Deals | promoPrice, promoText, promoType, promoStart, promoEnd, specialBuy | 259 deals this week, all with dates: 190 special buys, 60 price cuts |
| Seals | badges, organic, vegan, vegetarian, nutriScore, ageRestriction | seals on 59.1%: 173 Beter Leven, 100 Vegan, 42 organic, 26 Nutri-Score |
| Category | categoryPath, categoryIds, category | 95.4%, 25 top categories |
| Links | url, imageUrl, inStock | 100% url and image |
| Run | priceDate, searchTerm, scrapedAt | 100% |
Last full run: 2026-11-05 on Apify, 2,797 products in 200 requests, all HTTP 200: 43 seconds, and 130 seconds on a first run when Aldi's cache was cold. aldi.nl gives no barcodes, ingredients or nutrition tables, so ean stays null.
Who uses the Aldi NL Scraper?
- Price comparison sites add Aldi's prices and unit prices to Albert Heijn, Jumbo, Dirk, PLUS, DekaMarkt, Hoogvliet, Vomar, Poiesz and Ekoplaza.
- Deal and folder apps publish Aldi's aanbiedingen and special buys of this week, and of next week from the Wednesday before, with
nextWeek. - Non-food deal watchers follow Aldi's special buys (OP=OP), sold while stocks last: 190 this week, from Toylino toys to Sint products.
- Brand and category managers track Aldi's own brands (
MILSANI110 products,DAYLICIOUS93,TRADER JOE'S78) and its price cuts. - Sustainability and diet researchers count Beter Leven, Planetproof, Rainforest Alliance, Vegan and Biologisch seals across the assortment.
- Developers who need an Aldi Nederland product API without maintaining one call this actor from JavaScript, Python or REST.
How much does the Aldi NL Scraper cost?
Pay per event. You pay for products written to the dataset and a tiny start fee. Platform usage is included.
| Event | Price |
|---|---|
| Product written to dataset | $0.001 |
| Actor start | $0.00005 per run at the default 512 MB |
Aldi NL Scraper cost examples
| Scenario | Products | Cost |
|---|---|---|
Small test, maxItems: 100 | 100 | $0.10 |
Keyword filter, keywords: ["biologisch"] | 38 | $0.04 |
This week's deals, onlyBonus: true | 259 | $0.26 |
Next week's deals, nextWeek and onlyBonus | 267 | $0.27 |
| Full assortment | 2,797 | $2.80 |
| Full assortment every week, 4 runs a month | 11,188 | $11.19 |
Product counts are from runs on 2026-11-05. Set maxItems to cap any run. Set the run's maximum charge in Apify to cap spend; the actor stops cleanly when it is reached and reports how many products it got.
How do you configure the Aldi NL Scraper?
| Field | Type | Default | Meaning |
|---|---|---|---|
keywords | array of strings | empty | Keep only products whose name, brand or description holds every word of a keyword. |
onlyBonus | boolean | false | Keep only deals and special buys. |
nextWeek | boolean | false | Prices and deals as on the coming Monday, when Aldi's deal week starts. |
maxItems | integer | 100000 | Stop after this many products; a smaller run also stops reading early (500 in 4 seconds). |
minItems | integer | 1 | Fail the run when it stores fewer products: a guard for scheduled runs. |
How do you scrape the full Aldi assortiment with the Aldi NL Scraper?
Leave every field empty. The actor reads every category page of aldi.nl, 2 at a time, and this week's deals list: 200 requests for 2,797 products. That is 2,659 products from the 197 category pages plus 138 special buys found only in the deals list.
{}
How do you get the Aldi aanbiedingen of this week with the Aldi NL Scraper?
Set onlyBonus. The run of 2026-11-05 returned 259 deals for the week from Monday 2 to Sunday 8 November 2026: 190 special buys (OP=OP), 60 price cuts with their deal price, 23.0% off on average and up to 52% (Shoarma, 4.94 for 2.39), and 5 multi-buys. 201 come from Aldi's deals list; 58 more are deals the products carry themselves, such as potatoes at 0.99 instead of 1.19.
{"onlyBonus": true}
How do you get the Aldi aanbiedingen of next week with the Aldi NL Scraper?
Set nextWeek, and onlyBonus for the deals only. Aldi puts next week's deals online on the Wednesday before. The run of Thursday 2026-11-05 returned 267 deals for the week from Monday 9 November: 197 special buys, 67 price cuts with their deal price (25.7% off on average, up to 50%: Conference peren, 1.79 for 0.89) and 3 multi-buys, in 39 seconds on Apify. Deals that start later in that week, on Wednesday or Saturday, are included; priceDate is the Monday.
{"nextWeek": true,"onlyBonus": true}
How do you filter Aldi products by keyword with the Aldi NL Scraper?
Give one or more keywords. aldi.nl's search runs in the browser only, so the actor reads the full assortment and keeps the products whose name, brand or description holds every word of a keyword, case and accents ignored: biologisch matched 38 products, bier 30, kaas 168. Each product is stored once, under the first keyword that matched (searchTerm).
{"keywords": ["biologisch", "bier"]}
Which fields does the Aldi NL Scraper output?
Source: Aldi = Aldi's value unchanged. Derived = computed by this actor. Fixed = same in every item. Missing values are null, never an empty string.
| Field | Source | Meaning |
|---|---|---|
chain | Fixed | Always aldi. |
store | Fixed | Always null: the prices aldi.nl shows. |
externalId | Aldi | Aldi's product id, as text. |
articleNumber | Aldi | Aldi's article number. |
ean | Fixed | Always null: aldi.nl gives no barcodes. |
gtins | Fixed | Always null on Aldi. |
name | Aldi | Product name as aldi.nl shows it. |
brand | Aldi | Brand as Aldi writes it: MILSANI, DAYLICIOUS, TRADER JOE'S. |
description | Aldi | Aldi's short description. |
sizeText | Aldi | Sales unit as Aldi gives it: 500 g, 0.75 l, 4x125 g, Per stuk. |
packCount | Derived | Packs or pieces in a multipack (4x125 g: 4). |
quantity | Derived | Size as a number, in unit; a multipack in total; centilitres become ml. |
unit | Derived | g, kg, ml, l or stuk. |
price | Aldi | Regular price in EUR; during a price cut, the price before it (Aldi's strike-through price). |
currency | Fixed | Always EUR. |
unitPrice | Aldi | Aldi's price per kg or litre, for the regular price. |
unitPriceUnit | Aldi | kg or l. |
promoPrice | Aldi | Deal price of a price cut in EUR; null for special buys and multi-buys. |
promoText | Aldi | Aldi's deal label: -15%, OP=OP, 2 VOOR 3.50, v.a. wo. 11.11.. |
promoType | Derived | price, multibuy or specialBuy. |
promoLabels | Fixed | Always null on Aldi. |
promoStart | Aldi | First day of the deal or special buy (YYYY-MM-DD). |
promoEnd | Aldi | Last day of the deal, inclusive. |
specialBuy | Derived | true for Aldi's special buys, sold while stocks last (OP=OP). |
organic | Derived | true with Aldi's Biologisch seal or the BIO brand. |
vegan | Derived | true with Aldi's Vegan seal. |
vegetarian | Derived | true with the Vegan or Vegetarisch seal. |
nutriScore | Aldi | Nutri-Score A to E, when Aldi shows its seal. |
badges | Aldi | Aldi's seals in words: Beter Leven 1 ster, Planetproof, Rainforest Alliance, Koeling, NIX18. |
ageRestriction | Derived | 18 for products with the NIX18 seal. |
categoryPath | Aldi | Category and sub-category, joined with /. |
categoryIds | Aldi | Aldi's category ids of the product. |
category | Aldi | Top category. |
url | Derived | Product page on aldi.nl. |
imageUrl | Aldi | Product image. |
inStock | Aldi | Aldi's availability flag. |
availabilityLabel | Fixed | Always null on Aldi. |
priceDate | Derived | The day the prices and deals hold for: today, or next Monday with nextWeek. |
searchTerm | Derived | Keyword that matched the product; null in a full run. |
scrapedAt | Derived | When the product was read (ISO 8601, UTC). |
Aldi NL Scraper output example
Molenland Goudse kaas jong belegen, from the full run of 2026-11-05, on a 32% price cut.
{"chain": "aldi","store": null,"externalId": "1207429","articleNumber": "2002186","ean": null,"gtins": null,"name": "Goudse kaas jong belegen 48+ stuk","brand": "MOLENLAND","description": "Romige smaak, perfect voor brood en borrel. Natuurgerijpt. 950 g stuk voor de hele familie. Haal af bij jouw ALDI!","sizeText": "950 g","packCount": null,"quantity": 950,"unit": "g","price": 8.16,"currency": "EUR","unitPrice": 8.59,"unitPriceUnit": "kg","promoPrice": 5.49,"promoText": "-32%","promoType": "price","promoLabels": null,"promoStart": "2026-11-02","promoEnd": "2026-11-08","specialBuy": false,"organic": false,"vegan": false,"vegetarian": false,"nutriScore": null,"badges": ["Koeling", "Van Nederlandse bodem"],"ageRestriction": null,"categoryPath": "Kaas en vleeswaren/Kaas","categoryIds": ["kaas", "molenland"],"category": "Kaas en vleeswaren","url": "https://www.aldi.nl/product/goudse-kaas-jong-belegen-48-stuk-1207429.html","imageUrl": "https://s7g10.scene7.com/is/image/aldinord/product_1207429_main_cms_2_nl_nl_goudse_kaas_jong_belegen_48_stuk_cw01_2024","inStock": true,"availabilityLabel": null,"priceDate": "2026-11-05","searchTerm": null,"scrapedAt": "2026-11-05T21:46:37.600Z"}
How does the Aldi NL Scraper report on its run?
Every run saves a SUMMARY record in its key-value store. From the full run of 2026-11-05 on Apify, with the 197 categories shortened to 2:
{"mode": "catalog","onlyBonus": false,"nextWeek": false,"priceDate": "2026-11-05","itemsPushed": 2797,"distinctIds": 2797,"productsRead": 2797,"categoryPages": 197,"categoryProducts": 2659,"dealsListed": 201,"dealsOnlyInList": 138,"dealWeek": { "from": "2026-11-02", "to": "2026-11-08" },"stoppedAtChargeLimit": false,"blocked": false,"durationSec": 41,"requests": 200,"statusCodes": { "200": 200 },"errors": [],"retries": [],"categories": [{ "page": "producten/kaas-vleeswaren/kaas.html", "category": "kaas", "expected": 88, "collected": 88 },{"page": "producten/zuivel-eieren-boter/verse-zuivel.html","category": "verse-zuivel","expected": 68,"collected": 68}],"searches": []}
A run is suspect when a category's collected is below its expected (the actor then logs a warning), when categoryPages drops well below 197, when dealsListed is 0, when blocked is true, or when errors is not empty. Set minItems to make a bad run fail outright.
How does the Aldi NL Scraper compare to other Aldi scrapers?
| Aldi NL Scraper | blackfalcondata ALDI Scraper | studio-amba Aldi Scraper | niktor76 Aldi Nord Offers | |
|---|---|---|---|---|
| Price per 1,000 | $1.00 | $2.00, plus $0.01 a start | $2.00, plus $0.005 a start | $1.00 |
| Scope | aldi.nl, full assortment and deals | 14 countries | several European countries | offers only, DE, NL, FR |
| Next week's deals | yes, with dates and deal prices | not stated | not stated | yes |
| Check against Aldi's own counts | yes, every category | not stated | not stated | not stated |
| Seals (Beter Leven, Vegan, Bio) | yes, in fields | not stated | not stated | not stated |
Figures read from each actor's public page on 2026-11-05.
Things to know about Aldi data from the Aldi NL Scraper
- No barcodes, ingredients or nutrition. aldi.nl shows none, on its lists or product pages, so
eanisnull. For a barcode match with other chains, compare on name and size. - Some products have no online price. 171 available products, mostly A-brands such as Calvé pindakaas, show no price on aldi.nl:
priceisnull. - Two kinds of deals. Special buys (
OP=OP,v.a. wo. 11.11.) are sold while stocks last at their own price, mostly non-food, sopromoPriceisnull. Price cuts carry a strike-through price:priceis the old price,promoPricethe new one. - Deals beyond the deals list. Besides the 201 products in this week's list, 58 carry a running deal themselves: price cuts such as potatoes (1.19, now 0.99) and earlier weeks' special buys still on sale until 5 December.
- "2 VOOR" is a price for two. Aldi gives 3.50 for 2 Low carb crackers;
promoTextholds2 VOOR 3.50,pricethe price of one (1.99). - Aldi's deal week runs Monday to Sunday. Special buys also start on Wednesday, Friday or Saturday; those of the week count for it.
- Unit prices are Aldi's own, for the price shown, scaled back to the regular price during a price cut: Goudse kaas, 950 g for 8.16, is 8.59 per kg.
- Keyword filtering is by words.
veganmatches 43 products by name or description, while 100 carry the Vegan seal: filter the full assortment onveganfor those. - 129 special buys are in no category. Aldi lists them only in its deals;
categoryPathisnullfor them.
Is it legal to use the Aldi NL Scraper?
This actor reads publicly available data only. It collects product data, not personal data. It respects rate limits and does not bypass any login or paywall. You are responsible for how you use the data, including any terms that apply to you. See Apify's guide to web scraping legality.
Frequently asked questions about the Aldi NL Scraper
Can I get Aldi products as CSV or Excel?
Yes. Every run's dataset downloads as CSV, Excel, JSON or XML from Apify, or through the API.
How often should I run it?
Aldi's deals change every Monday, and next week's appear the Wednesday before. A run each Monday keeps a deal list current; a run with nextWeek from Wednesday gives the coming week in advance.
Does it need proxies?
No. The actor reads aldi.nl's own page data, 2 pages at a time, with no proxy: every request of every run on 2026-11-05 answered HTTP 200.
Can I schedule it and send results somewhere?
Yes. Use Apify Schedules, and a webhook or integration to send each run's dataset to your database, Google Sheets, Slack or Notion.
Does it work with the Apify API and SDK?
Yes. Any Apify client (JavaScript, Python, REST) can start the actor and read the dataset.
What are the Aldi aanbiedingen this week?
Run the actor with onlyBonus: on 2026-11-05 it returned 259 deals valid in the week of 2 to 8 November 2026, 60 of them with a lower price.
Can I get the Aldi aanbiedingen of next week?
Yes. Set nextWeek and onlyBonus: on 2026-11-05 the actor returned 267 deals for the week from 9 November, 67 of them with their deal price.
Can I get Aldi's non-food special buys?
Yes: run with onlyBonus and keep specialBuy: true: 191 products this week, 129 of them in no category at all. The most common brands were Toylino (35) and Home Creation (19).
Can I get Aldi's vegan or biologische producten?
Yes: filter the full assortment on vegan (100 products with Aldi's Vegan seal) or organic (42 with the Biologisch seal or the BIO brand).
Is there an official Aldi API?
Aldi offers no public API for its Dutch assortment. This actor reads the page data behind aldi.nl, so it gives the same prices and deals as the website.
Can I compare Aldi prices with other Dutch supermarkets?
Yes. The scrapers for Albert Heijn, Jumbo, Dirk, PLUS, DekaMarkt, Hoogvliet, Vomar, Poiesz and Ekoplaza by Sleep Mode Systems output the same fields. Aldi has no barcodes, so compare on name, quantity and unitPrice.
Other scrapers by Sleep Mode Systems
| Actor | What it extracts | Price per 1,000 | |
|---|---|---|---|
| Aldi NL Scraper | Aldi products: prices, next week's deals, special buys, seals | $1.00 | you are here |
| Albert Heijn Scraper | Albert Heijn products: prices, Bonus deals, EAN, Nutri-Score | $1.00 | |
| Jumbo Scraper | Jumbo products: prices, deals with dates, EAN, organic, shelf life | $1.50 | |
| Dirk Scraper | Dirk products: prices, next week's deals, EAN, Nutri-Score | $2.00 | |
| PLUS Scraper | PLUS products: prices, deals with dates, EAN, Nutri-Score, vegan | $1.50 | |
| DekaMarkt Scraper | DekaMarkt products: prices, next week's deals, EAN, organic | $2.00 | |
| Hoogvliet Scraper | Hoogvliet products: prices, next week's deals, EAN, ingredients, vegan | $2.00 | |
| Vomar Scraper | Vomar products: prices, every EAN barcode, BIO, categories | $1.00 | |
| Poiesz Scraper | Poiesz products: prices, deals with dates, EAN, deposit, ingredients | $1.50 | |
| Ekoplaza Scraper | Ekoplaza products: prices, next week's deals, EAN, allergens, Ekoscope | $2.00 |
All of them share the same output fields, so you can combine their datasets directly. The Aldi NL Scraper adds articleNumber, description, specialBuy, vegan, vegetarian, ageRestriction and priceDate, and has no barcodes; the Ekoplaza Scraper adds articleNumber, vegan, vegetarian, ekoscope, origin, shelfLifeDays, ageRestriction, soldByWeight, detailsDate, description, ingredients, allergens, mayContain, freeFrom, nutrition and priceDate; the Poiesz Scraper adds promoDescription, deposit, depositAmount, ageRestriction, alcoholPercentage, purchaseLimit, soldByWeight, detailsRead, detailsDate, ingredients, allergens, mayContain, freeFrom, nutrition and storage; the Vomar Scraper adds soldByWeight, and fills gtins with every barcode Vomar lists; the Hoogvliet Scraper adds promoDescription, vegan, vegetarian, shelfLifeDays, ageRestriction, soldByWeight, ingredients, nutrition, storage, origin, alcoholPercentage and priceDate; the DekaMarkt and Dirk Scrapers add soldByWeight and priceDate; PLUS adds vegan, vegetarian, deposit, storeOnly, detailsRead and detailsDate; Jumbo adds promotions and shelfLifeDays. Category ids are text on Jumbo, Dirk, DekaMarkt, Hoogvliet, Vomar, Poiesz, Ekoplaza and Aldi, numbers on Albert Heijn, and not given by PLUS.
Support for the Aldi NL Scraper
Questions, a missing field, or a custom pipeline on top of this data: write to Imad at imad@sleepmodesystems.com. Bugs go in the Issues tab of this actor.