Discover/lidl.com API
live

lidl.com APIlidl.com

Search Lidl US grocery products, browse category trees, and retrieve current prices, promotions, and stock status by store location via 3 REST endpoints.

Endpoints
3
Updated
3h ago
Try it
Maximum number of results to return per page.
Search term for products (e.g. 'milk', 'bread', 'chicken').
Number of results to skip for pagination.
Lidl store ID in format US followed by digits (e.g. 'US01053' for Culpeper VA). Determines product availability and pricing.
api.parse.bot/scraper/8abf1be8-d321-484a-bcef-d3cf82535ebd/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Use it in your codegrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/8abf1be8-d321-484a-bcef-d3cf82535ebd/search_products' \
  -H 'X-API-Key: $PARSE_API_KEY'
All endpoints · 3 totalclick to expand

Search for grocery products by keyword at a specific Lidl store. Returns paginated results with prices, stock status, promotions, and aisle/section information.

Input
ParamTypeDescription
limitintegerMaximum number of results to return per page.
queryrequiredstringSearch term for products (e.g. 'milk', 'bread', 'chicken').
offsetintegerNumber of results to skip for pagination.
store_idstringLidl store ID in format US followed by digits (e.g. 'US01053' for Culpeper VA). Determines product availability and pricing.
Response
{
  "type": "object",
  "fields": {
    "results": "array of product objects with id, name, description, price, currency, base_price_text, stock_status, image_url, categories, promotion, aisle, section",
    "total_results": "integer"
  },
  "sample": {
    "results": [
      {
        "id": "1067979",
        "name": "2% reduced fat milk",
        "aisle": 1,
        "price": 1.88,
        "section": "Chiller",
        "currency": "USD",
        "image_url": "https://production-endpoint.azureedge.net/images/A14KQNQ9DLGMEPA3DTMMIRJ7ADNMURHEE1N6ENPL60O7GD9G60/0a61e8c4-9324-49de-b5ae-cb9da5abc285/PIM_ImageComingSoon.png_500x500.jpg",
        "promotion": null,
        "categories": [
          "OCI1000079",
          "OCI2000110"
        ],
        "description": "half gallon",
        "stock_status": "INSTOCK",
        "base_price_text": "2.94 ¢ per fl.oz."
      }
    ],
    "total_results": 288
  }
}

About the lidl.com API

The Lidl US API covers 3 endpoints for searching and browsing grocery products across Lidl store locations. The search_products endpoint accepts a keyword and optional store ID to return paginated product results including current price, stock status, promotion details, aisle categories, and a base price text field. Two additional endpoints expose the full category tree and per-category product listings, making it straightforward to build store-aware grocery tools.

What the API Returns

All three endpoints return product objects sharing a consistent shape: id, name, description, price, currency, base_price_text, stock_status, image_url, categories, and promotion fields. The search_products endpoint accepts a query string (e.g. 'milk', 'chicken') alongside an optional store_id in the format US followed by digits (e.g. US01053 for the Culpeper, VA location). Pagination is controlled with limit and offset parameters, and the response includes a total_results integer so you can implement accurate page counts.

Browsing by Category

The get_categories endpoint returns a hierarchical category tree scoped to a given store, with each category object exposing a code, name, parents array, and product_count. Those code values (e.g. OCI2000110 for milk & creamers, OCI1000079 for dairy) feed directly into get_category_products, which returns the same paginated product listing format as search_products but filtered to a specific department or sub-department.

Store-Level Scoping

The store_id parameter appears on all three endpoints and is what makes results location-specific. Lidl's US inventory, promotions, and stock status can vary by store, so passing a store_id ensures the price and availability data matches what a shopper would actually see at that location. Omitting it returns a default catalog view. The base_price_text field in product responses often conveys unit pricing (e.g. per lb or per oz), which is useful for unit-price comparison logic.

Common use cases
  • Build a grocery price tracker that monitors Lidl product prices and promotion changes by store over time.
  • Populate a meal planning app with current in-stock Lidl products filtered by category using get_category_products.
  • Compare Lidl shelf prices against other retailers using the price and base_price_text fields from search_products.
  • Create a store-specific shopping list tool that validates stock_status before surfacing items to users.
  • Index Lidl's full product catalog by walking the category tree from get_categories and paginating through each category.
  • Alert shoppers when a searched product has an active promotion by monitoring the promotions field in search_products results.
  • Build a dietary filter layer on top of category browsing by combining category codes with product name and description fields.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000250 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.

Frequently asked questions
Does Lidl have an official developer API?+
Lidl does not publish a public developer API for its US store data. There is no documented REST or GraphQL API available to external developers at this time.
What does the stock_status field in product results actually distinguish?+
The stock_status field indicates whether a product is currently available at the specified store. Because Lidl runs rotating weekly promotions and limited-quantity specials, stock_status values can differ significantly between store IDs and across time. Always pass a store_id to get a location-accurate status rather than relying on a default catalog response.
Does the API return nutritional information or ingredient lists for products?+
Not currently. Product objects include name, description, price, stock_status, image_url, categories, and promotion fields, but nutritional facts and ingredient data are not part of the response. You can fork this API on Parse and revise it to add an endpoint that retrieves per-product detail pages where that information may be available.
Can I look up a store ID for a specific city or ZIP code?+
The three current endpoints do not include a store locator — they accept a store_id you already know (e.g. US01053 for Culpeper, VA) but do not resolve addresses or ZIP codes to store IDs. You can fork this API on Parse and revise it to add a store-search endpoint that returns store IDs from a location query.
How does pagination work across search_products and get_category_products?+
Both endpoints accept integer limit and offset parameters and return a total_results integer alongside the results array. To page through all results, increment offset by limit on each subsequent call until offset exceeds total_results. There is no cursor-based pagination; offset arithmetic is the only supported pattern.
Page content last updated . Spec covers 3 endpoints from lidl.com.