{
  "openapi": "3.0.1",
  "info": {
    "title": "ALDI Australia Product Scraper — Prices & Special Buys",
    "description": "Returns ALDI Australia (aldi.com.au) products with price, unit price, pack size, brand, category, images and Special Buy on-sale date. Search terms, categories, Special Buys, URLs or the whole catalogue. Optional ingredients and stock. No login.",
    "version": "0.0",
    "x-build-id": "pVEuD8gR3CmtcFdqH"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/genial_candlestand~aldi-au-product-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-genial_candlestand-aldi-au-product-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/genial_candlestand~aldi-au-product-scraper/runs": {
      "post": {
        "operationId": "runs-sync-genial_candlestand-aldi-au-product-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/genial_candlestand~aldi-au-product-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-genial_candlestand-aldi-au-product-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": {
          "queries": {
            "title": "Search terms",
            "type": "array",
            "description": "Keywords to search on aldi.com.au, one per line, e.g. \"milk\" or \"dog food\". Each term is its own source with its own result list. Blank lines are ignored. Combine freely with categories, Special Buys and URLs.",
            "items": {
              "type": "string"
            }
          },
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "Categories to list in full, one per line: a slug path (\"dairy-eggs-fridge/milk\", \"lower-prices\"), a category name (\"Lower Prices\", case-insensitive) or a numeric category key (\"960000000\"). Category page URLs go into Start URLs. Unknown categories are skipped with a warning.",
            "items": {
              "type": "string"
            }
          },
          "specialBuysDates": {
            "title": "Special Buys dates",
            "type": "array",
            "description": "Special Buys on-sale dates: \"latest\" (the current on-sale date), \"all\" (every date in ALDI's Special Buys calendar, usually ~5) or a date YYYY-MM-DD. Past dates still list the items sold \"While Stocks Last\". Any other value is an input error.",
            "items": {
              "type": "string"
            }
          },
          "specialBuysThemes": {
            "title": "Special Buys themes",
            "type": "array",
            "description": "Optional Special Buys themes, e.g. \"Gardening\", \"Pet Essentials\" (case-insensitive). With Special Buys dates: only these themes of those dates. Without dates: each theme across all on-sale dates.",
            "items": {
              "type": "string"
            }
          },
          "allProducts": {
            "title": "Whole catalogue",
            "type": "boolean",
            "description": "Scrape every product ALDI Australia lists (about 3,300, 60 per request) — for full price monitoring. Still capped by Max results (set it to 5000 to get everything).",
            "default": false
          },
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "aldi.com.au URLs: product pages (/product/<name>-<sku>), category pages (/products/.../k/<key>), Special Buys pages (/special-buys/<YYYY-MM-DD>, optional ?theme=) and search pages (/results?q=). Other URLs are skipped with a warning.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "storeId": {
            "title": "Store ID",
            "pattern": "^[A-Za-z0-9]{2,10}$",
            "type": "string",
            "description": "ALDI store id (e.g. G452 Glenmore Park NSW, G330 VIC). Prices are national and the same in every store; the store changes the assortment a little and is the store for Special Buys stock levels. An unknown store id fails the run with an input error.",
            "default": "G452"
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "relevance",
              "price_asc",
              "price_desc",
              "name_asc",
              "name_desc"
            ],
            "type": "string",
            "description": "Order of results: relevance, price_asc (low to high), price_desc (high to low), name_asc (A to Z) or name_desc (Z to A). Use with Max results per source to get e.g. the cheapest N products.",
            "default": "relevance"
          },
          "maxItems": {
            "title": "Max results",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Stop after this many products in total across all sources. Every product row is charged.",
            "default": 1000
          },
          "maxItemsPerSource": {
            "title": "Max results per source",
            "minimum": 1,
            "type": "integer",
            "description": "Optional cap for each search term, category, Special Buys date/theme and the whole catalogue. Empty = no per-source cap (only Max results applies)."
          },
          "includeDetails": {
            "title": "Include product details",
            "type": "boolean",
            "description": "Add description, ingredients, allergens, storage and usage instructions and country of origin (one extra request per product, charged as \"Product details\"). Product URLs always include them at no extra charge.",
            "default": false
          },
          "includeStoreStock": {
            "title": "Include Special Buys stock level",
            "type": "boolean",
            "description": "For Special Buys, add the stock level (green/yellow/orange/red) at the chosen store (one extra request per Special Buy, charged as \"Store stock level\" only when ALDI returns a level). Regular products have no stock data and are never requested.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Proxy settings. The default Apify datacenter proxy works; switch to residential only if you see blocks (HTTP 403).",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}