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.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/e7ac1918-457d-4cbb-bac9-8d60f9756571/get_weekly_promotions' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace lidl-de-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.lidl_germany_api import Lidl, Category, Flyer, Promotion, PromotionItem, Product
lidl = Lidl()
# Get the current weekly promotion (Aktionsprospekt)
promotion = lidl.promotions.current()
print(promotion.name, promotion.title)
print(promotion.valid_from, promotion.valid_to)
for item in promotion.items:
print(item.id, item.title, item.page)
# List all available flyers
for flyer in lidl.flyers.list():
print(flyer.name, flyer.title, flyer.page_count)
# Browse bestselling products in a category using the Category enum
for product in lidl.products.by_category(category_key=Category.ESSEN_TRINKEN):
print(product.id)
# Search products by keyword
for product in lidl.products.search(query="baby"):
print(product.id)
Retrieve the latest weekly promotional flyer (Aktionsprospekt) with detailed product items. Fetches the current Aktionsprospekt from Lidl's leaflet widget, returning flyer metadata (validity dates, PDF URL) and a list of promotional products with IDs, titles, URLs, and page numbers. The flyer rotates weekly; items reflect the store's current in-store promotion cycle.
No input parameters required.
{
"type": "object",
"fields": {
"name": "string, flyer name (e.g. 'Aktionsprospekt')",
"items": "array of product objects with id, title, url, and page number",
"title": "string, date range title (e.g. '08.06.2026 – 13.06.2026')",
"pdf_url": "string, URL to download the flyer PDF",
"flyer_id": "string, unique identifier for the flyer",
"valid_to": "string, ISO date when flyer expires",
"valid_from": "string, ISO date when flyer becomes valid"
},
"sample": {
"data": {
"name": "Aktionsprospekt",
"items": [
{
"id": "100406021",
"url": "https://www.lidl.de/p/crivit-allround-sup-aufblasbar/p100406021",
"page": 1,
"title": "CRIVIT Allround-SUP, aufblasbar"
},
{
"id": "100400962",
"url": "https://www.lidl.de/p/livarno-outdoormatte-200-x-200-cm/p100400962",
"page": 1,
"title": "LIVARNO® Outdoormatte, 200 x 200 cm"
}
],
"title": "08.06.2026 – 13.06.2026",
"pdf_url": "https://object.storage.eu01.onstackit.cloud/leaflets/pdfs/019e7426-dba3-7b0f-8f1a-6f123b758fa4/Aktionsprospekt-08-06-2026-13-06-2026-01.pdf",
"flyer_id": "019e7426-dba3-7b0f-8f1a-6f123b758fa4",
"valid_to": "2026-06-13",
"valid_from": "2026-06-08"
},
"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 | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. 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.