Aldi NL Scraper avatar

Aldi NL Scraper

Pricing

from $1.00 / 1,000 products

Go to Apify Store
Aldi NL Scraper

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

Sleep Mode Systems

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

15 hours ago

Last modified

Categories

Security

Limited permissions

Share

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?

DataFieldsFilled in last full run
IdentityexternalId, articleNumber, name, brand, description100% id and name, 99.8% article number, 74.3% brand
SizesizeText, quantity, unit, packCount99.8% size text, 90.0% as a number, 305 multipacks
Priceprice, currency, unitPrice, unitPriceUnit89.3% price, 46.0% Aldi's unit price per kg or litre
DealspromoPrice, promoText, promoType, promoStart, promoEnd, specialBuy259 deals this week, all with dates: 190 special buys, 60 price cuts
Sealsbadges, organic, vegan, vegetarian, nutriScore, ageRestrictionseals on 59.1%: 173 Beter Leven, 100 Vegan, 42 organic, 26 Nutri-Score
CategorycategoryPath, categoryIds, category95.4%, 25 top categories
Linksurl, imageUrl, inStock100% url and image
RunpriceDate, searchTerm, scrapedAt100%

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 (MILSANI 110 products, DAYLICIOUS 93, TRADER JOE'S 78) 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.

EventPrice
Product written to dataset$0.001
Actor start$0.00005 per run at the default 512 MB

Aldi NL Scraper cost examples

ScenarioProductsCost
Small test, maxItems: 100100$0.10
Keyword filter, keywords: ["biologisch"]38$0.04
This week's deals, onlyBonus: true259$0.26
Next week's deals, nextWeek and onlyBonus267$0.27
Full assortment2,797$2.80
Full assortment every week, 4 runs a month11,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?

FieldTypeDefaultMeaning
keywordsarray of stringsemptyKeep only products whose name, brand or description holds every word of a keyword.
onlyBonusbooleanfalseKeep only deals and special buys.
nextWeekbooleanfalsePrices and deals as on the coming Monday, when Aldi's deal week starts.
maxItemsinteger100000Stop after this many products; a smaller run also stops reading early (500 in 4 seconds).
minItemsinteger1Fail 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.

FieldSourceMeaning
chainFixedAlways aldi.
storeFixedAlways null: the prices aldi.nl shows.
externalIdAldiAldi's product id, as text.
articleNumberAldiAldi's article number.
eanFixedAlways null: aldi.nl gives no barcodes.
gtinsFixedAlways null on Aldi.
nameAldiProduct name as aldi.nl shows it.
brandAldiBrand as Aldi writes it: MILSANI, DAYLICIOUS, TRADER JOE'S.
descriptionAldiAldi's short description.
sizeTextAldiSales unit as Aldi gives it: 500 g, 0.75 l, 4x125 g, Per stuk.
packCountDerivedPacks or pieces in a multipack (4x125 g: 4).
quantityDerivedSize as a number, in unit; a multipack in total; centilitres become ml.
unitDerivedg, kg, ml, l or stuk.
priceAldiRegular price in EUR; during a price cut, the price before it (Aldi's strike-through price).
currencyFixedAlways EUR.
unitPriceAldiAldi's price per kg or litre, for the regular price.
unitPriceUnitAldikg or l.
promoPriceAldiDeal price of a price cut in EUR; null for special buys and multi-buys.
promoTextAldiAldi's deal label: -15%, OP=OP, 2 VOOR 3.50, v.a. wo. 11.11..
promoTypeDerivedprice, multibuy or specialBuy.
promoLabelsFixedAlways null on Aldi.
promoStartAldiFirst day of the deal or special buy (YYYY-MM-DD).
promoEndAldiLast day of the deal, inclusive.
specialBuyDerivedtrue for Aldi's special buys, sold while stocks last (OP=OP).
organicDerivedtrue with Aldi's Biologisch seal or the BIO brand.
veganDerivedtrue with Aldi's Vegan seal.
vegetarianDerivedtrue with the Vegan or Vegetarisch seal.
nutriScoreAldiNutri-Score A to E, when Aldi shows its seal.
badgesAldiAldi's seals in words: Beter Leven 1 ster, Planetproof, Rainforest Alliance, Koeling, NIX18.
ageRestrictionDerived18 for products with the NIX18 seal.
categoryPathAldiCategory and sub-category, joined with /.
categoryIdsAldiAldi's category ids of the product.
categoryAldiTop category.
urlDerivedProduct page on aldi.nl.
imageUrlAldiProduct image.
inStockAldiAldi's availability flag.
availabilityLabelFixedAlways null on Aldi.
priceDateDerivedThe day the prices and deals hold for: today, or next Monday with nextWeek.
searchTermDerivedKeyword that matched the product; null in a full run.
scrapedAtDerivedWhen 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 Scraperblackfalcondata ALDI Scraperstudio-amba Aldi Scraperniktor76 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
Scopealdi.nl, full assortment and deals14 countriesseveral European countriesoffers only, DE, NL, FR
Next week's dealsyes, with dates and deal pricesnot statednot statedyes
Check against Aldi's own countsyes, every categorynot statednot statednot stated
Seals (Beter Leven, Vegan, Bio)yes, in fieldsnot statednot statednot 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 ean is null. 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: price is null.
  • 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, so promoPrice is null. Price cuts carry a strike-through price: price is the old price, promoPrice the 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; promoText holds 2 VOOR 3.50, price the 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. vegan matches 43 products by name or description, while 100 carry the Vegan seal: filter the full assortment on vegan for those.
  • 129 special buys are in no category. Aldi lists them only in its deals; categoryPath is null for them.

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

ActorWhat it extractsPrice per 1,000
Aldi NL ScraperAldi products: prices, next week's deals, special buys, seals$1.00you are here
Albert Heijn ScraperAlbert Heijn products: prices, Bonus deals, EAN, Nutri-Score$1.00
Jumbo ScraperJumbo products: prices, deals with dates, EAN, organic, shelf life$1.50
Dirk ScraperDirk products: prices, next week's deals, EAN, Nutri-Score$2.00
PLUS ScraperPLUS products: prices, deals with dates, EAN, Nutri-Score, vegan$1.50
DekaMarkt ScraperDekaMarkt products: prices, next week's deals, EAN, organic$2.00
Hoogvliet ScraperHoogvliet products: prices, next week's deals, EAN, ingredients, vegan$2.00
Vomar ScraperVomar products: prices, every EAN barcode, BIO, categories$1.00
Poiesz ScraperPoiesz products: prices, deals with dates, EAN, deposit, ingredients$1.50
Ekoplaza ScraperEkoplaza 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.