{
  "openapi": "3.0.1",
  "info": {
    "title": "ALDI Scraper: Prices & Special Buys (AU, UK, IE)",
    "description": "Scrape ALDI Australia, UK and Ireland by search term, category, Special Buys date or SKU. Get price, was price, unit price, Special Buys on-sale date, brand, pack size, categories and images, plus optional ingredients, allergens and nutrition. No browser; $0.50 per 1,000 products.",
    "version": "0.1",
    "x-build-id": "ILnK51NWLSJu3U0G5"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/fabricalabs~aldi-products/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-fabricalabs-aldi-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/fabricalabs~aldi-products/runs": {
      "post": {
        "operationId": "runs-sync-fabricalabs-aldi-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/fabricalabs~aldi-products/run-sync": {
      "post": {
        "operationId": "run-sync-fabricalabs-aldi-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": {
          "country": {
            "title": "Country",
            "enum": [
              "au",
              "uk",
              "ie"
            ],
            "type": "string",
            "description": "Which ALDI to collect from: Australia (aldi.com.au), the United Kingdom (aldi.co.uk) or Ireland (aldi.ie). It applies to search terms, Special Buys and bare SKUs; page and product links always use the country of their address.",
            "default": "au"
          },
          "searchTerms": {
            "title": "Search terms",
            "type": "array",
            "description": "Product searches, typed as you would on the ALDI website, e.g. milk, coffee beans, air fryer. Each term is paged through separately and its products keep their position in the results.",
            "items": {
              "type": "string"
            }
          },
          "specialBuys": {
            "title": "Special Buys",
            "type": "boolean",
            "description": "Collect every Special Buy ALDI lists right now: those on sale and the upcoming ones, one input per on-sale date (ALDI adds new ones twice a week). Each product carries its onSaleDate.",
            "default": false
          },
          "categoryUrls": {
            "title": "Category and Special Buys pages",
            "type": "array",
            "description": "ALDI category pages, e.g. https://www.aldi.com.au/products/dairy-eggs-fridge/milk/k/1111111160, or Special Buys pages such as https://www.aldi.com.au/special-buys/2026-10-03?theme=BBQ. Open the page on the ALDI website and paste its address; the address sets the country. A product on several pages is delivered once.",
            "items": {
              "type": "string"
            }
          },
          "productIds": {
            "title": "Products (SKUs or links)",
            "type": "array",
            "description": "ALDI SKUs (e.g. 398689 or 000000000000398689) or product page links, to track the price of specific products. They are looked up 60 at a time, so long lists are fast. A bare SKU is looked up in the selected country, a link in its own. SKUs ALDI doesn't list are reported as free rows.",
            "items": {
              "type": "string"
            }
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "relevance",
              "priceLowToHigh",
              "priceHighToLow",
              "name",
              "nameZToA"
            ],
            "type": "string",
            "description": "Order of the products within each search term or page, as ALDI sorts them.",
            "default": "relevance"
          },
          "includeDetails": {
            "title": "Include product details",
            "type": "boolean",
            "description": "Also read each product's page: description, ingredients, allergens, storage and, in the UK and Ireland, nutrition per 100 g. The price per product stays the same, but runs take longer: one extra request per product.",
            "default": false
          },
          "maxResults": {
            "title": "Maximum products (whole run)",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Stop after this many products in total, across all inputs and countries. 0 means no limit. It caps what a run can cost: 1,000 products cost $0.50.",
            "default": 1000
          },
          "maxResultsPerTerm": {
            "title": "Maximum products per search term or page",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Stop each search term, category or Special Buys date after this many products. 0 means no limit per input (the whole-run maximum still applies).",
            "default": 0
          },
          "countries": {
            "title": "Several countries",
            "type": "array",
            "description": "Optional. Country codes (au, uk, ie) to run every search term, the Special Buys switch and bare SKUs in each of these countries, e.g. to compare prices. Replaces Country when set.",
            "items": {
              "type": "string"
            }
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apify datacenter proxy is the cheapest option and works with ALDI's product API. Switch to residential only if your runs get refused.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}