Discover/Lidl API
live

Lidl APIlidl.de ↗

Access Lidl Germany's weekly promotional flyers, category bestsellers, and keyword product search. Returns flyer PDFs, validity dates, and product IDs.

Endpoint health
verified 14h ago
get_weekly_promotions
get_category_products
search_products
get_all_flyers
4/4 passing latest checkself-healing
Endpoints
4
Updated
14h ago

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.

This call costs2 credits / call— charged only on success
Try it
Number of items to return and price-enrich in this call, 1–30.
Zero-based position within the flyer's item list at which this page starts. Use next_offset from a previous response to continue.
→ api.parse.bot/scraper/e7ac1918-457d-4cbb-bac9-8d60f9756571/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
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'
All endpoints · 4 totalmissing one? ·

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.

Input
ParamTypeDescription
limitintegerNumber of items to return and price-enrich in this call, 1–30.
offsetintegerZero-based position within the flyer's item list at which this page starts. Use next_offset from a previous response to continue.
Response
{
  "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.

Reliability & maintenanceVerified

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.

Last verified
14h ago
Latest check
4/4 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Aggregate Lidl Germany's weekly deal flyer into a price-tracking or deal-alert application using valid_from, valid_to, and pdf_url.
  • Build a flyer browsing UI that links flyer page numbers to specific products using the page field in the get_weekly_promotions items array.
  • Download and archive all active Lidl flyer PDFs by iterating the flyers array from get_all_flyers and storing pdf_url and file_size_bytes.
  • Populate a category browser for Lidl Germany's online shop by querying get_category_products across the four supported category keys.
  • Map user search input to Lidl product categories using search_products to return relevant bestseller product IDs.
  • Generate flyer thumbnails or preview grids using the thumbnail_url field returned by get_all_flyers.
  • Track flyer publication cadence by recording valid_from and valid_to across successive calls to get_all_flyers.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 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.

Frequently asked questions
Does Lidl Germany have an official developer API?+
Lidl does not publish a public developer API for lidl.de. There is no documented REST or GraphQL API available to third-party developers for accessing flyer or product data.
What does get_weekly_promotions return beyond the PDF link?+
It returns 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?+
Not currently. Both 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?+
The 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.
Is coverage limited to Lidl Germany?+
Yes, all endpoints are scoped to lidl.de and return data for the German market only. Other Lidl country sites (lidl.com, lidl.co.uk, etc.) are not covered. You can fork this API on Parse and revise it to target a different regional Lidl domain.
Page content last updated . Spec covers 4 endpoints from lidl.de.
Related APIs in EcommerceSee all →