{
  "openapi": "3.0.1",
  "info": {
    "title": "Lidl Price Drop Monitor & Scraper - DE, AT, CH, NL, CZ, SK",
    "description": "Schedule it daily and get only new products, price drops and price rises from the Lidl online shop, with the old price. Search by words or category, paste product links, or read every product: price, strike price, unit price, EAN, rating and store dates. Export JSON, CSV or Excel.",
    "version": "0.1",
    "x-build-id": "cdf7nOnWeasQxHhFz"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/neverempty~lidl-price-drop-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-neverempty-lidl-price-drop-monitor",
        "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/neverempty~lidl-price-drop-monitor/runs": {
      "post": {
        "operationId": "runs-sync-neverempty-lidl-price-drop-monitor",
        "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/neverempty~lidl-price-drop-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-neverempty-lidl-price-drop-monitor",
        "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": {
          "searchQueries": {
            "title": "Products to find (words, category link or product link)",
            "type": "array",
            "description": "One per line: product words as they appear in the product name (parkside, silvercrest, kaffeemaschine), the link of a Lidl category page (lidl.de/h/…) or the link of a product page (lidl.de/p/…/p100398365) to watch that exact product. Every word must appear in the product name. Up to 50 searches and 1000 product links per run. Leave it empty to run the example: 10 Parkside tools in Germany.",
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Lidl online shop (country)",
            "type": "array",
            "description": "Which Lidl online shops to search. Each product word is searched in every shop you pick. Product and category links always use the shop of the link. Empty = Germany.",
            "items": {
              "type": "string",
              "enum": [
                "de",
                "at",
                "ch",
                "nl",
                "cz",
                "sk"
              ],
              "enumTitles": [
                "Germany (lidl.de, EUR)",
                "Austria (lidl.at, EUR)",
                "Switzerland (lidl.ch, CHF)",
                "Netherlands (lidl.nl, EUR)",
                "Czechia (lidl.cz, CZK)",
                "Slovakia (lidl.sk, EUR)"
              ]
            }
          },
          "wholeCatalog": {
            "title": "Every product of the shop",
            "type": "boolean",
            "description": "Read every product the Lidl online shop lists (about 14,000 in Germany, 13,000 in the Netherlands, 900 in Switzerland, 470 in Austria), instead of searching by words. Combine with watch mode to get every new product and price change of the whole shop.",
            "default": false
          },
          "onlyOnSale": {
            "title": "Only discounted products",
            "type": "boolean",
            "description": "Return only products with a strike price or a price below the recommended retail price.",
            "default": false
          },
          "minPrice": {
            "title": "Minimum price",
            "minimum": 0,
            "type": "number",
            "description": "Lowest price to return, in the shop's currency (EUR, or CHF / CZK in Switzerland / Czechia)."
          },
          "maxPrice": {
            "title": "Maximum price",
            "minimum": 0,
            "type": "number",
            "description": "Highest price to return, in the shop's currency."
          },
          "maxResultsPerSearch": {
            "title": "Maximum products per search",
            "minimum": 1,
            "maximum": 20000,
            "type": "integer",
            "description": "How many products to read for each search (each word per country, each category link). Up to 20,000. Empty = 100 (or every product when \"Every product of the shop\" is on)."
          },
          "monitoringMode": {
            "title": "Watch mode: return only new products and price changes",
            "type": "boolean",
            "description": "Remember the products of each search between runs. The first run returns everything as new; after that each run returns only products that are new, cheaper, pricier, or gone (with the previous price and the change in %). Runs where nothing changed return one free row. From the second run on, each unchanged product read costs a small check fee ($0.15 per 1,000). Use it with a schedule.",
            "default": false
          },
          "minChangePercent": {
            "title": "Smallest price change to report (%)",
            "minimum": 0,
            "maximum": 1000,
            "type": "number",
            "description": "Watch mode: price moves smaller than this are not returned. Small moves add up: the price is compared with the last price that was reported.",
            "default": 1
          },
          "includeUnchanged": {
            "title": "Also return unchanged products",
            "type": "boolean",
            "description": "Watch mode: also return products whose price did not change (marked unchanged). Each of them is a charged row.",
            "default": false
          },
          "watchName": {
            "title": "Watch name",
            "type": "string",
            "description": "Watch mode: give each schedule its own name to keep separate memories for the same search (for example \"daily\" and \"hourly\")."
          },
          "resetMonitoringState": {
            "title": "Forget what watch mode remembered",
            "type": "boolean",
            "description": "Watch mode: forget the remembered products of these searches before this run, so everything comes back as new.",
            "default": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}