{
  "openapi": "3.0.1",
  "info": {
    "title": "ALDI Australia Scraper: Prices, Specials & Special Buys",
    "description": "Get ALDI Australia (aldi.com.au) products by keyword, category or product ID: price, unit price, price drops, Super Savers, Special Buys by date, categories and images in a clean format. Combine with our Coles & Woolworths scraper for full Australian grocery price comparison.",
    "version": "1.0",
    "x-build-id": "tFR4E4ItzFCte9NHx"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/egra_van~aldi-au-products/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-egra_van-aldi-au-products",
        "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/egra_van~aldi-au-products/runs": {
      "post": {
        "operationId": "runs-sync-egra_van-aldi-au-products",
        "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/egra_van~aldi-au-products/run-sync": {
      "post": {
        "operationId": "run-sync-egra_van-aldi-au-products",
        "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": {
          "searchTerms": {
            "title": "Search terms",
            "type": "array",
            "description": "Keywords to search on aldi.com.au, e.g. \"milk\", \"coffee pods\", \"nappies\". Each term returns up to \"Max products per search\" products.",
            "items": {
              "type": "string"
            }
          },
          "categoryUrls": {
            "title": "Category or Special Buys URLs",
            "type": "array",
            "description": "Pages copied from aldi.com.au: categories (https://www.aldi.com.au/products/dairy-eggs-fridge/k/960000000 — sub-categories work too), Special Buys dates (https://www.aldi.com.au/special-buys/2026-09-30), Super Savers (https://www.aldi.com.au/products/super-savers/k/1588161426952145) or Lower Prices (https://www.aldi.com.au/products/lower-prices/k/1588161425841179).",
            "items": {
              "type": "string"
            }
          },
          "productIds": {
            "title": "Products (links or product numbers)",
            "type": "array",
            "description": "Specific products to check, e.g. for daily price tracking: product links (https://www.aldi.com.au/product/lodge-farms-cage-eggs-700g-000000000000399451) or ALDI product numbers (399451 or 000000000000399451).",
            "items": {
              "type": "string"
            }
          },
          "onlySpecials": {
            "title": "Only specials",
            "type": "boolean",
            "description": "Keep only products on special: Special Buys, Super Savers, Lower Prices and price drops. With no search terms, links or products, the Actor returns the current and upcoming Special Buys plus the Super Savers and Lower Prices lists.",
            "default": false
          },
          "maxItemsPerSearch": {
            "title": "Max products per search",
            "minimum": 1,
            "maximum": 20000,
            "type": "integer",
            "description": "Maximum number of products saved for each search term, category or Special Buys list. You pay only for products saved.",
            "default": 100
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "relevance",
              "price_asc",
              "price_desc",
              "name_asc",
              "name_desc"
            ],
            "type": "string",
            "description": "Order of search and category results, as on the website. Matters when \"Max products per search\" is lower than the number of results.",
            "default": "relevance"
          },
          "storeId": {
            "title": "ALDI store ID (optional)",
            "type": "string",
            "description": "ALDI store code sent with API requests. Leave empty: the Actor picks a store automatically (ALDI shelf prices are national). Only set it if you know a store code, e.g. from the store finder."
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Proxy used for all requests. The default Apify Proxy works in most cases. If the log says requests are BLOCKED, switch to the RESIDENTIAL group with country Australia (AU).",
            "default": {
              "useApifyProxy": true
            }
          },
          "useBrowserForCookies": {
            "title": "Start with browser cookies",
            "type": "boolean",
            "description": "Open aldi.com.au once in a real Chrome browser and send its cookies with the API requests. Not needed normally (the ALDI API answers plain requests) — turn on only if the log shows blocks.",
            "default": false
          },
          "browserFallback": {
            "title": "Switch to in-browser requests when blocked",
            "type": "boolean",
            "description": "If fast requests keep getting blocked, load the data from inside a real browser that has aldi.com.au open (slower, but looks exactly like a visitor). Recommended.",
            "default": true
          },
          "maxPagesPerSearch": {
            "title": "Max pages per search",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Safety limit on result pages read per search term or list (up to 60 products per page). Mostly matters with \"Only specials\", where many pages may be checked to find enough specials.",
            "default": 30
          },
          "maxRetries": {
            "title": "Retries per request",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "How many times a failed or blocked request is retried (with a new IP when blocked) before that search is reported as failed.",
            "default": 4
          },
          "requestDelayMs": {
            "title": "Delay between requests (ms)",
            "minimum": 0,
            "maximum": 30000,
            "type": "integer",
            "description": "Average pause between two requests. Slower is less likely to be blocked.",
            "default": 500
          },
          "saveDebugPages": {
            "title": "Save block pages for diagnosis",
            "type": "boolean",
            "description": "When ALDI answers with a block/captcha page, save up to 4 such pages (and a browser screenshot) to the run's key-value store as DEBUG-* records. Free; helps report problems.",
            "default": true
          },
          "includeRaw": {
            "title": "Include raw ALDI data",
            "type": "boolean",
            "description": "Add the original product object from the ALDI API as a \"raw\" field on every product (large; for debugging or fields not in the unified format).",
            "default": false
          },
          "apiBaseUrl": {
            "title": "API base URL (testing)",
            "type": "string",
            "description": "For testing only: send API requests to this address instead of https://asl.api.aldi.com.au/commerce (e.g. a local mock server). Leave empty."
          },
          "siteBaseUrl": {
            "title": "Website base URL (testing)",
            "type": "string",
            "description": "For testing only: open this address in the fallback browser instead of https://www.aldi.com.au. Leave empty."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}