Lidl APIlidl.de ↗
Access Lidl Germany's weekly promotional flyers, category bestsellers, and keyword product search. Returns flyer PDFs, validity dates, and product IDs.
What is the Lidl API?
The Lidl Germany API exposes 4 endpoints covering weekly promotional flyers (Aktionsprospekte) and category product listings from lidl.de. Use get_weekly_promotions to retrieve the current flyer with per-item page numbers, PDF download URL, and validity dates, or call get_all_flyers to get metadata across all currently active flyer publications including thumbnail URLs and file sizes.
curl -X GET 'https://api.parse.bot/scraper/e7ac1918-457d-4cbb-bac9-8d60f9756571/get_weekly_promotions?limit=5&offset=170' \ -H 'X-API-Key: $PARSE_API_KEY'
Retrieve the current weekly promotional flyer (Aktionsprospekt) of Lidl Germany with priced product items. One call returns the flyer metadata (validity dates, PDF URL) plus one page of the flyer's product items; for every item on that page the product's lidl.de detail page is fetched and its current price, original (struck-through) price, discount percentage and currency are read from it, so each call costs 2 + (number of items on the page) requests. Items are ordered by flyer page. Pagination over the items is controlled by offset (default 0) and limit (default 20, maximum 30); total_items gives the full item count of the flyer, has_more / next_offset tell whether and where to continue. original_price and discount_percent are null for items that are not discounted; when a detail page cannot be read the item's price fields are null, price_error names the reason and detail_errors counts such items. Prices are the online-shop prices in EUR and may differ from in-store flyer prices. Invalid offset/limit values are rejected with a stale_input error.
| Param | Type | Description |
|---|---|---|
| limit | integer | Number of items to return and price-enrich in this call, 1–30. |
| offset | integer | Zero-based position within the flyer's item list at which this page starts. Use next_offset from a previous response to continue. |
{
"type": "object",
"fields": {
"name": "string, flyer name (e.g. 'Aktionsprospekt')",
"count": "integer, number of items returned in this call",
"items": "array of product objects: id (string), title, url (lidl.de detail page), page (flyer page number), price (number, current online price), original_price (number or null, struck-through price before discount), discount_percent (integer or null), currency (ISO code, e.g. EUR), price_error (string or null)",
"limit": "integer, limit applied to this call",
"title": "string, date range title (e.g. '05.10.2026 – 10.10.2026')",
"offset": "integer, offset applied to this call",
"pdf_url": "string, URL to download the flyer PDF",
"flyer_id": "string, unique identifier for the flyer",
"has_more": "boolean, true when further items exist beyond this page",
"valid_to": "string, ISO date when flyer expires",
"valid_from": "string, ISO date when flyer becomes valid",
"next_offset": "integer or null, offset to request the next page; null when has_more is false",
"total_items": "integer, total number of product items in the flyer across all pages",
"detail_errors": "integer, number of returned items whose detail page could not be read (their price fields are null)"
},
"sample": {
"data": {
"name": "Aktionsprospekt",
"count": 5,
"items": [
{
"id": "100407631",
"url": "https://www.lidl.de/p/eufy-saug-und-wischroboter-mit-absaugstation-x10-pro-omni/p100407631?flyx_source=pageflip&flyx_medium=intern&flyx_campaign=in-lf_d-lf-dhz_others_notset_wt_omc_d-lf-dhz_sl_051026-101026&flyx_content=p-100407631",
"page": 51,
"price": 333,
"title": "EUFY Saug- und Wischroboter mit Absaugstation »X10 Pro Omni«",
"currency": "EUR",
"price_error": null,
"original_price": 799,
"discount_percent": 58
},
{
"id": "100399311",
"url": "https://www.lidl.de/p/livarno-kinder-sitzgruppe/p100399311?flyx_source=pageflip&flyx_medium=intern&flyx_campaign=in-lf_d-lf-dhz_others_notset_wt_omc_d-lf-dhz_sl_051026-101026&flyx_content=p-100399311",
"page": 52,
"price": 29.99,
"title": "LIVARNO® Kinder Sitzgruppe",
"currency": "EUR",
"price_error": null,
"original_price": null,
"discount_percent": null
}
],
"limit": 5,
"title": "05.10.2026 – 10.10.2026",
"offset": 170,
"pdf_url": "https://assets.leaflets.schwarz/leaflets/pdfs/01a0e812-4854-76a6-8a15-56ab9deaac6c/Aktionsprospekt-05-10-2026-10-10-2026-02.pdf",
"flyer_id": "01a0e812-4854-76a6-8a15-56ab9deaac6c",
"has_more": true,
"valid_to": "2026-10-10",
"valid_from": "2026-10-05",
"next_offset": 175,
"total_items": 180,
"detail_errors": 0
},
"status": "success"
}
}About the Lidl API
Weekly Flyers
get_weekly_promotions returns the active Aktionsprospekt with fields including flyer_id, valid_from, valid_to, pdf_url, and a title string representing the date-range label. The items array lists each product in the flyer with its id, title, url, and the page number it appears on — useful for mapping flyer page positions to specific products.
get_all_flyers returns a count and a flyers array where each object includes id, name, category, subcategory, valid_from, valid_to, pdf_url, file_size_bytes, thumbnail_url, and page count. This gives a full snapshot of all publications Lidl Germany currently has live.
Category Products and Search
get_category_products accepts a category_key parameter with four accepted values: essen-trinken, baby-kind-spielzeug, mode-accessoires, and wein-spirituosen. It returns bestseller product IDs for that category — the response includes count, category, and an items array of objects each with an id field. Note that prices and descriptions are not returned by this endpoint.
search_products takes a free-text query and maps it to one of the supported categories using keyword matching (for example, baby, spiel, or kind resolve to baby-kind-spielzeug). When no keyword maps to a category, the response includes a note field listing available categories and returns a null category value. Both product endpoints return IDs only, so a product detail lookup is not included in the current spec.
The Lidl API is a managed, monitored endpoint for lidl.de — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when lidl.de changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official lidl.de API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Aggregate Lidl Germany's weekly deal flyer into a price-tracking or deal-alert application using
valid_from,valid_to, andpdf_url. - Build a flyer browsing UI that links flyer page numbers to specific products using the
pagefield in theget_weekly_promotionsitems array. - Download and archive all active Lidl flyer PDFs by iterating the
flyersarray fromget_all_flyersand storingpdf_urlandfile_size_bytes. - Populate a category browser for Lidl Germany's online shop by querying
get_category_productsacross the four supported category keys. - Map user search input to Lidl product categories using
search_productsto return relevant bestseller product IDs. - Generate flyer thumbnails or preview grids using the
thumbnail_urlfield returned byget_all_flyers. - Track flyer publication cadence by recording
valid_fromandvalid_toacross successive calls toget_all_flyers.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Lidl Germany have an official developer API?+
What does get_weekly_promotions return beyond the PDF link?+
flyer_id, name, title (a human-readable date-range label), valid_from, valid_to, and pdf_url. The items array includes each product listed in the flyer with its id, title, url, and the page number it appears on in the flyer. Prices and stock status are not included.Does the API return product prices or descriptions?+
get_category_products and search_products return product IDs only — the items array contains id strings without price, description, image, or availability fields. The flyer endpoints include product titles and URLs but not structured pricing data. You can fork this API on Parse and revise it to add a product detail endpoint that returns pricing and description fields.How does keyword search work in search_products, and what happens when no keyword matches?+
query parameter is matched against a fixed keyword list: terms like baby, spiel, or kind resolve to baby-kind-spielzeug; essen, trink, milch, or lebensmittel resolve to essen-trinken; wein, spirit, bier, or alkohol resolve to wein-spirituosen. If no keyword matches, category is returned as null and a note field lists the available category keys.