Lidl Scraper
Pricing
from $0.01 / 1,000 results
Lidl Scraper
Scrapes products and categories from Lidl Netherlands (lidl.nl). Returns the full assortment plus the current weekly deals which include live pricing and discount percentages.
Pricing
from $0.01 / 1,000 results
Rating
0.0
(0)
Developer

Rashad Ansari
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Lidl Netherlands Product Scraper
Scrapes products and categories from Lidl Netherlands (lidl.nl). Returns the full assortment plus the current weekly deals which include live pricing and discount percentages.
What does this Actor do?
- Discovers the full Lidl NL category tree via BFS (HTML scraping + Nuxt SSR data parsing)
- Scrapes product data embedded in
data-grid-dataattributes on listing pages - Fetches the weekly deals page separately — deal products have live prices and overwrite assortment entries
- Matches deal products to their category using Lidl's
wonCategoryPrimarymetadata
A note on pricing
Lidl's website lists most assortment products without a price — only the weekly "aanbiedingen" (deals) have current prices. This is by design: Lidl publishes deals weekly and doesn't maintain a full price list online.
- Assortment products:
base_priceandcurrent_pricewill benull - Deal products: fully priced with
base_price(was),current_price(now), anddiscount_text(e.g."30% korting")
Use the dealsOnly input option to return only priced products.
Input
| Field | Type | Default | Description |
|---|---|---|---|
outputCategories | boolean | false | If true, category objects (with type: "category") are also pushed to the dataset |
dealsOnly | boolean | false | If true, only products with a current price are returned (weekly deals) |
proxy | object | — | Optional Apify proxy configuration |
Example input — deals only
{"dealsOnly": true,"outputCategories": false}
Example input — full assortment with categories
{"outputCategories": true,"dealsOnly": false}
Output
Each item in the dataset represents a product or (optionally) a category.
Deal product item (has price)
{"type": "product","external_id": "4056489876543","name": "Lidl Bio Appels","base_price": "2.49","current_price": "1.74","has_discount": true,"discount_text": "30% korting","image_url": "https://www.lidl.nl/...","website_url": "https://www.lidl.nl/p/lidl-bio-appels/...","category_external_id": "h12345"}
Assortment product item (no price)
{"type": "product","external_id": "4056489123456","name": "Lidl Pasta Penne","base_price": null,"current_price": null,"has_discount": false,"discount_text": null,"image_url": "https://www.lidl.nl/...","website_url": "https://www.lidl.nl/p/pasta-penne/...","category_external_id": "h67890"}
Category item (outputCategories: true)
{"type": "category","external_id": "h12345","name": "Groenten & fruit","parent_external_id": "h10001"}
Fields
| Field | Type | Description |
|---|---|---|
type | string | "product" or "category" |
external_id | string | Lidl product ID (EAN/barcode) or category path ID (e.g. h12345) |
name | string | Product or category name |
base_price | string|null | Original price before discount in EUR, or null if unlisted |
current_price | string|null | Current price in EUR, or null if unlisted |
has_discount | boolean | true if the product is currently on weekly deal promotion |
discount_text | string|null | Discount percentage (e.g. "30% korting") |
image_url | string|null | Product image URL |
website_url | string|null | Direct link to the product page on lidl.nl |
category_external_id | string|null | The category this product belongs to |
parent_external_id | string|null | (categories only) Parent category ID, or null for top-level |
Notes
- Weekly deals rotate every Thursday. Run this Actor weekly to track deal cycles.
- Lidl does not provide a public API; this scraper parses HTML and embedded JSON from the website.