{
  "openapi": "3.0.1",
  "info": {
    "title": "Lidl.de Products Scraper",
    "description": "Public Lidl.de online-shop products from the official sitemap: price, struck-through price and discount, unit price, EAN/GTIN, brand, category, stock, rating, images, attributes, variants. $1.00 per 1,000 products, no start fee. HTTP only, robots.txt respected.",
    "version": "0.1",
    "x-build-id": "qQ2cpBPVKBNcbrCEw"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/stone_jadex~lidl-de-products-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-stone_jadex-lidl-de-products-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/stone_jadex~lidl-de-products-scraper/runs": {
      "post": {
        "operationId": "runs-sync-stone_jadex-lidl-de-products-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/stone_jadex~lidl-de-products-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-stone_jadex-lidl-de-products-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "startUrls": {
            "title": "Product URLs",
            "type": "array",
            "description": "Optional Lidl.de product page URLs (https://www.lidl.de/p/{slug}/p{id}). When set (or Product IDs are set), only these products are read and the sitemap is skipped. Search, category and filter page URLs are not accepted here; use Search keywords / Search category instead.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "productIds": {
            "title": "Product IDs",
            "type": "array",
            "description": "Optional Lidl product ids (the number after /p in the URL, e.g. 100161286). Each is opened as https://www.lidl.de/p/p{id}, which Lidl redirects to the product page.",
            "items": {
              "type": "string"
            }
          },
          "slugKeywords": {
            "title": "URL keywords (free filter)",
            "type": "array",
            "description": "Keep only products whose URL slug contains any of these words (case-insensitive, e.g. parkside, rotwein, lupilu). Works on the sitemap (default) and on search results. Filtering happens before any product page is opened, so it costs nothing. Empty = no filter.",
            "items": {
              "type": "string"
            }
          },
          "searchQueries": {
            "title": "Search keywords (optional)",
            "type": "array",
            "description": "Optional. Find products through Lidl.de's search (e.g. kaffee, parkside akku) instead of reading the whole product sitemap. Each keyword's results are paged until Max products product URLs are found, then the product pages are read as usual. Up to 20 keywords (extra ones are ignored). A keyword with no real results on Lidl.de (Lidl then shows unrelated fallback products) is skipped and not charged. Leave empty to use the product sitemap (default). Ignored when Product URLs or Product IDs are set.",
            "items": {
              "type": "string"
            }
          },
          "searchCategory": {
            "title": "Search category (optional)",
            "type": "string",
            "description": "Optional. Limit search results to one Lidl.de category exactly as Lidl names it (e.g. Essen & Trinken, Wein & Spirituosen, Küche & Haushalt). Can be used alone (all products of that category) or together with Search keywords. Leave empty to use the product sitemap (default)."
          },
          "maxItems": {
            "title": "Max products",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Stop after this many products have been delivered (and charged).",
            "default": 100
          },
          "inStockOnly": {
            "title": "Only orderable online",
            "type": "boolean",
            "description": "Deliver only products that can be ordered online right now. Skipped products are not charged.",
            "default": false
          },
          "onSaleOnly": {
            "title": "Only discounted",
            "type": "boolean",
            "description": "Deliver only products showing a struck-through reference price above the current price. Skipped products are not charged.",
            "default": false
          },
          "compact": {
            "title": "Compact rows",
            "type": "boolean",
            "description": "Leave out the long description HTML/text fields (descriptionHtml, longDescriptionText) for smaller rows.",
            "default": false
          },
          "incremental": {
            "title": "Only new or changed products",
            "type": "boolean",
            "description": "Remember product id + price + stock in a named key-value store and, on later runs, deliver only products that are new or whose price/stock changed. Unchanged products are not charged.",
            "default": false
          },
          "incrementalStoreName": {
            "title": "Incremental store name",
            "type": "string",
            "description": "Name of the key-value store used by incremental mode. Use different names for different watch lists.",
            "default": "lidl-de-products-state"
          },
          "shuffleSitemap": {
            "title": "Random sample from sitemap",
            "type": "boolean",
            "description": "Sitemap mode: visit products in random order instead of sitemap order (useful for quick samples with a small Max products).",
            "default": false
          },
          "requestDelayMs": {
            "title": "Delay between requests (ms)",
            "minimum": 1000,
            "maximum": 60000,
            "type": "integer",
            "description": "Minimum gap between request starts. Never below 1000 ms; a robots.txt Crawl-delay, if Lidl adds one, is honoured when larger.",
            "default": 1500
          },
          "concurrency": {
            "title": "Parallel requests",
            "minimum": 1,
            "maximum": 3,
            "type": "integer",
            "description": "Requests in flight at once (1-3). Request starts are still spaced by the delay above.",
            "default": 2
          },
          "maxRunSeconds": {
            "title": "Max run time (s)",
            "minimum": 60,
            "maximum": 86400,
            "type": "integer",
            "description": "Stop cleanly after this many seconds and write a free run-notice row.",
            "default": 3500
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Direct connection by default. Optionally Apify Proxy with a datacenter group. Residential proxies and custom proxy URLs are rejected.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}