Lidl Scraper — European Grocery Prices & Weekly Offers avatar

Lidl Scraper — European Grocery Prices & Weekly Offers

Pricing

from $2.00 / 1,000 result scrapeds

Go to Apify Store
Lidl Scraper — European Grocery Prices & Weekly Offers

Lidl Scraper — European Grocery Prices & Weekly Offers

Scrape product data from Lidl's online store. Extract grocery items, weekly offers, prices, categories, and product details from Lidl across 30+ European countries. No login or cookies required.

Pricing

from $2.00 / 1,000 result scrapeds

Rating

0.0

(0)

Developer

Studio Amba

Studio Amba

Maintained by Community

Actor stats

0

Bookmarked

36

Total users

3

Monthly active users

73 days

Issues response

9 hours ago

Last modified

Categories

Share

Lidl Scraper — European Grocery Products, Prices & Weekly Offers

Know current prices, stock, and weekly discounts on any product across Lidl's 30+ European country stores — without checking the site by hand. Extract product names, prices, brands, weekly offers, discounts, stock status, and category information. No login or cookies required.

What does Lidl Scraper do?

This scraper uses Lidl's internal search API to collect structured product data at scale. It supports all Lidl country stores and returns clean, structured JSON output.

Key features:

  • Search products by keyword across any Lidl country store
  • Extract current prices and original/strikethrough prices for discount tracking
  • Get discount percentages for weekly offers and promotions
  • Monitor stock availability for any product
  • Support for 30+ European countries with a single actor
  • Sort by relevance, price, discount, rating, or popularity

Use cases

  • Price monitoring — Track grocery prices over time across Lidl stores
  • Weekly offers tracking — Get notified about new Lidl deals and discounts
  • Competitor analysis — Compare Lidl prices with other European grocery chains
  • Market research — Analyze product assortment across different countries
  • Deal hunting — Find the biggest discounts automatically with discount sorting

Supported countries

Belgium, Netherlands, Germany, France, Austria, Poland, Italy, Spain, United Kingdom, Czech Republic, Portugal, Denmark, Sweden, Finland, Hungary, Romania, Bulgaria, Greece, Croatia, Slovenia, Slovakia, Lithuania, Latvia, Estonia, Ireland, Luxembourg, Switzerland, Cyprus, Malta, Serbia.

Input parameters

ParameterTypeDescription
searchQuerystringSearch term (e.g. "chocolade", "laptop"). Leave empty for all products.
countrystringCountry code (BE, NL, DE, FR, etc.). Default: BE.
categoryUrlstringDirect URL to a Lidl category page (optional).
sortstringSort order: relevance, price, discount, newest, rating, best selling.
maxResultsnumberMaximum products to scrape (default: 100, max: 10,000).
proxyConfigurationobjectProxy settings (datacenter proxies usually work).

Output example

{
"name": "MILBONA",
"brand": "MILBONA",
"price": 8.0,
"currency": "DKK",
"originalPrice": null,
"discountPercentage": null,
"category": "Food",
"imageUrl": "https://www.lidl.dk/assets/gcp27d0747cb279410183ee4865de4d2d0a.png",
"description": null,
"inStock": false,
"productId": "11000287",
"country": "DK",
"url": "https://www.lidl.dk/p/milbona/p11000287",
"scrapedAt": "2026-09-09T14:47:24.585Z",
"unitPrice": "Pr. l 32,00",
"packaging": "250 ml",
"ean": "4335619016194",
"offerValidFrom": "2026-08-26T11:22:06.225Z",
"offerValidTo": "2026-09-12T21:59:59Z"
}

Output fields

FieldTypeDescription
namestringFull product name including brand
brandstringBrand name (SILVERCREST, LIVARNO, PARKSIDE, etc.)
pricenumberCurrent selling price. Null when Lidl has not published a price for the item yet (its offer window hasn't started, or has ended)
currencystringCurrency code (EUR, GBP, DKK, etc.)
originalPricenumberPrice before discount (null if no discount)
discountPercentagenumberDiscount percentage (null if no discount)
unitPricestringRaw unit-price text as Lidl shows it (e.g. "Pr. l 32,00" = per litre, in Denmark). In some countries this field instead holds a multipack quantity range (e.g. "2 x 180 g - 2 x 500 g") \u2014 Lidl doesn't separate the two structurally
packagingstringPackage size/quantity (e.g. "250 ml", "45 g"), where Lidl exposes it as a separate field from the unit price
eanstringEAN/GTIN barcode, where Lidl exposes one. Confirmed present for Denmark, confirmed absent for Belgium \u2014 availability is country-dependent on Lidl's side, not a scraper gap
offerValidFrom / offerValidTostringISO 8601 validity window for the current price, where Lidl publishes one (typically weekly offers)
categorystringFull category path
imageUrlstringMain product image URL
descriptionstringProduct description (HTML)
inStockbooleanWhether the product is purchasable through Lidl's own webshop. Most countries have no online grocery store at all, so this is false for virtually every food item regardless of real shelf stock \u2014 treat it as "buyable online," not "in stock in the store." Null only if Lidl's stock data is missing entirely
productIdstringLidl internal product ID
countrystringCountry code this product was scraped from
urlstringFull URL to the product page
scrapedAtstringISO 8601 timestamp

Denmark / everyday prices

Lidl Denmark's search API is not a full everyday-shelf price list. Confirmed by pulling the empty-query catalog: Lidl DK exposes 325 products in total, of which 317 sit in the "Mad og drikke" (food & drink) category \u2014 almost the whole online catalog is food, but it's the current weekly offer rotation, not the full range you'd see on a Danish Lidl shelf. Each item carries a IN_STORE_FROM_FUTURE_DATE_RANGE / IN_STORE_PAST_DATE_RANGE badge and an offerValidFrom/offerValidTo window \u2014 items whose window hasn't started yet, or has ended, come back with price: null on purpose. Searching a staple like "m\u00e6lk" (milk), "sm\u00f8r" (butter), "rugbr\u00f8d" (rye bread) or "\u00e6g" (eggs) returns only the handful of SKUs currently on offer (5-10 items), not every milk/butter/ bread/egg product Lidl DK stocks day to day.

What this means in practice: unitPrice (per-litre/per-kg pricing) and ean (barcode) are both present and accurate for Denmark once an item is in the current offer rotation \u2014 that part is a full, structured feed. What Lidl DK does not publish anywhere on its site is a static, always-on price list for its everyday range outside the offer rotation. No scraper can recover data the retailer doesn't publish.

Cost estimate

This actor is billed $0.02 per run plus $0.002 per result — 1,000 results cost about $2.02. Usage cost only settles once a run reports SUCCEEDED — reading a dataset mid-run will show a cost far below the real total.

Tips

  • Weekly offers: Use sort: percentageDiscount-desc to find the biggest current discounts
  • New arrivals: Use sort: firstOnlineDate-desc to see what's new
  • Price comparison: Run the same search across multiple countries to compare prices
  • Large exports: Set maxResults: 10000 to export full product catalogs
  • Datacenter proxies are usually sufficient — Lidl's API is not heavily protected

How to scrape Lidl data

  1. Create an Apify account (free tier available)
  2. Open the Lidl Scraper actor page
  3. Enter a search query (e.g. "koffie") and select your target country
  4. Click "Start" to begin scraping
  5. Download results as JSON, CSV, or Excel when the run finishes

You can also call the actor via the Apify API or schedule recurring runs for automated price monitoring.

Integrations

Connect Lidl Scraper results to your existing tools and workflows:

  • Google Sheets — Automatic export after every run
  • Slack / Email — Get notified when new deals appear or prices drop
  • Webhooks — Push data to your own API endpoint
  • Zapier / Make — Connect to 5,000+ apps without code

Changelog

  • v0.2 (2026-09-09) — Added unitPrice, packaging, ean, offerValidFrom/offerValidTo fields (were present in Lidl's API but not parsed before). price is now null instead of 0 when Lidl hasn't published one; inStock is now nullable instead of defaulting to false when stock data is missing. All previous fields and input shapes unchanged.
  • v0.1 (2026-04-07) — Initial release with search API support for 30 countries

Need this data on a schedule, or a custom version?

We run this scraper as a managed service for businesses: scheduled runs, deduplication, delta detection, and delivery to your inbox, Google Sheets, or API — maintenance included. We can also build a custom version with your exact fields and filters, or combine multiple sources into one feed.

See studioamba.dev/services or email hello@studioamba.dev for a free data sample. We maintain 300+ European web scrapers and answer within one business day.