Lidl Scraper avatar

Lidl Scraper

Pricing

from $0.01 / 1,000 results

Go to Apify Store
Lidl Scraper

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

Rashad Ansari

Maintained by Community

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-data attributes 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 wonCategoryPrimary metadata

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_price and current_price will be null
  • Deal products: fully priced with base_price (was), current_price (now), and discount_text (e.g. "30% korting")

Use the dealsOnly input option to return only priced products.

Input

FieldTypeDefaultDescription
outputCategoriesbooleanfalseIf true, category objects (with type: "category") are also pushed to the dataset
dealsOnlybooleanfalseIf true, only products with a current price are returned (weekly deals)
proxyobjectOptional 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

FieldTypeDescription
typestring"product" or "category"
external_idstringLidl product ID (EAN/barcode) or category path ID (e.g. h12345)
namestringProduct or category name
base_pricestring|nullOriginal price before discount in EUR, or null if unlisted
current_pricestring|nullCurrent price in EUR, or null if unlisted
has_discountbooleantrue if the product is currently on weekly deal promotion
discount_textstring|nullDiscount percentage (e.g. "30% korting")
image_urlstring|nullProduct image URL
website_urlstring|nullDirect link to the product page on lidl.nl
category_external_idstring|nullThe category this product belongs to
parent_external_idstring|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.