{
  "openapi": "3.0.1",
  "info": {
    "title": "Lidl Weekly Offers Scraper — Leaflet Prices & Flyers",
    "description": "Scrape Lidl weekly leaflet offers across 16 European countries. Export advertised prices, brands, validity dates, Parkside/non-food vs grocery, images and flyer PDFs. Fast HTTP Lidl weekly offers scraper for deal tracking and grocery intel — no browser.",
    "version": "0.1",
    "x-build-id": "pZ3xvodg3Q0lBmc8o"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/crawloop~lidl-weekly-offers-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-crawloop-lidl-weekly-offers-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/crawloop~lidl-weekly-offers-scraper/runs": {
      "post": {
        "operationId": "runs-sync-crawloop-lidl-weekly-offers-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/crawloop~lidl-weekly-offers-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-crawloop-lidl-weekly-offers-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": {
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Lidl markets to scrape. Each country uses that market’s public weekly leaflet (Prospekt / flyer / gazetka / volantino).",
            "items": {
              "type": "string",
              "enum": [
                "DE",
                "AT",
                "PL",
                "CZ",
                "SK",
                "HU",
                "FR",
                "IT",
                "ES",
                "NL",
                "BE",
                "GB",
                "IE",
                "PT",
                "RO",
                "HR"
              ],
              "enumTitles": [
                "Germany (lidl.de)",
                "Austria (lidl.at)",
                "Poland (lidl.pl)",
                "Czechia (lidl.cz)",
                "Slovakia (lidl.sk)",
                "Hungary (lidl.hu)",
                "France (lidl.fr)",
                "Italy (lidl.it)",
                "Spain (lidl.es)",
                "Netherlands (lidl.nl)",
                "Belgium (lidl.be)",
                "United Kingdom (lidl.co.uk)",
                "Ireland (lidl.ie)",
                "Portugal (lidl.pt)",
                "Romania (lidl.ro)",
                "Croatia (lidl.hr)"
              ]
            },
            "default": [
              "DE"
            ]
          },
          "offerWindow": {
            "title": "Offer window",
            "enum": [
              "current",
              "upcoming",
              "both"
            ],
            "type": "string",
            "description": "Current week, next week’s preview when Lidl already published it, or both. Expired leaflets are skipped.",
            "default": "current"
          },
          "assortment": {
            "title": "Assortment",
            "enum": [
              "all",
              "food",
              "nonFood"
            ],
            "type": "string",
            "description": "Keep grocery offers, non-food / Parkside / middle-of-Lidl specials, or everything in the leaflet.",
            "default": "all"
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Optional case-insensitive filters on name, brand, category or description (e.g. butter, Parkside, milka).",
            "items": {
              "type": "string"
            }
          },
          "includeRegional": {
            "title": "Include regional flyer variants",
            "type": "boolean",
            "description": "Germany, Italy, Spain and others publish regional copies of the same weekly leaflet. Off by default — the Actor keeps one national/representative flyer per week and dedupes products.",
            "default": false
          },
          "regionCode": {
            "title": "Region code",
            "type": "string",
            "description": "Optional Schwarz region code to keep only matching flyers (for example 0 for national). Leave empty for the default national pick."
          },
          "includeSpecialLeaflets": {
            "title": "Include special catalogues",
            "type": "boolean",
            "description": "Also scrape long-running specials (Lidl Connect, travel, wine catalogues, multi-week campaigns). Default is weekly Aktionsprospekt / folder only.",
            "default": false
          },
          "emitLeaflets": {
            "title": "Emit leaflet metadata rows",
            "type": "boolean",
            "description": "Push one `leaflet` row per flyer (PDF URL, validity, page count) in addition to offer rows.",
            "default": false
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after this many dataset rows (offers + optional leaflet rows) across all countries.",
            "default": 500
          },
          "requestDelaySecs": {
            "title": "Delay between requests (seconds)",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Pause between leaflet API requests.",
            "default": 0.15
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional Apify Proxy. The leaflet JSON CDN usually works from datacenter IPs; leave groups empty. Disable proxy for a direct fetch.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}