{
  "openapi": "3.0.1",
  "info": {
    "title": "ALDI Australia Products & Prices Scraper",
    "description": "Collect public ALDI Australia grocery prices, categories, specials and product details for comparison and price monitoring.",
    "version": "0.1",
    "x-build-id": "eel6lhSI216slVkJ4"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/fetch_cat~aldi-australia-products-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-fetch_cat-aldi-australia-products-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/fetch_cat~aldi-australia-products-scraper/runs": {
      "post": {
        "operationId": "runs-sync-fetch_cat-aldi-australia-products-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/fetch_cat~aldi-australia-products-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-fetch_cat-aldi-australia-products-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": {
          "searchTerms": {
            "title": "Search terms",
            "maxItems": 50,
            "type": "array",
            "description": "ALDI keyword searches, for example milk or coffee. The source can match any word and milk can include milk chocolate. Leave empty to use categories/URLs or the whole catalogue.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 500
            }
          },
          "categories": {
            "title": "Categories",
            "maxItems": 50,
            "type": "array",
            "description": "Exact current category name, path or key, for example Dairy, Eggs & Fridge, dairy-eggs-fridge/milk or 1111111160. Names are resolved from ALDI's current tree, saved as CATEGORY_TREE.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 500
            }
          },
          "urls": {
            "title": "ALDI Australia URLs",
            "maxItems": 50,
            "type": "array",
            "description": "HTTPS aldi.com.au product, category, /products, /results?q=..., /special-buys or dated Special Buys URLs. Source brand-name/theme/category-tree/sort/page query parameters are preserved. URL filters override the corresponding inputs. No credentials or other hosts.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 500,
              "pattern": "^https://(www\\.)?aldi\\.com\\.au/"
            }
          },
          "maxItems": {
            "title": "Max products (whole run)",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Global maximum saved products across all targets, after deduplication and filtering. This is not per search. A capped run is explicitly marked incomplete. Zero/unlimited is not supported.",
            "default": 50
          },
          "maxPages": {
            "title": "Max pages per target",
            "minimum": 1,
            "maximum": 334,
            "type": "integer",
            "description": "Safety cap on source listing pages per search, category or dated Special Buys scope. ALDI currently returns 30 products per page. Source exhaustion, Max products and the independent runtime/request ceilings can stop earlier.",
            "default": 334
          },
          "fetchDetails": {
            "title": "Fetch product details",
            "type": "boolean",
            "description": "Add available descriptions, ingredients, nutrition/allergen claims, origin, storage, usage and full image data. Adds one request per listing product. Direct product URLs always return details. Missing source fields remain null.",
            "default": false
          },
          "sortBy": {
            "title": "Source sort order",
            "enum": [
              "relevance",
              "name_asc",
              "name_desc",
              "price_asc",
              "price_desc"
            ],
            "type": "string",
            "description": "Applied by ALDI before the item cap. A URL's own sort parameter takes precedence.",
            "default": "relevance"
          },
          "brands": {
            "title": "Brands",
            "maxItems": 50,
            "type": "array",
            "description": "Source brand filter, using exact ALDI brand names. A URL brand-name parameter takes precedence. Available source filters are saved in FILTERS_n.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 500
            }
          },
          "themes": {
            "title": "Themes",
            "maxItems": 50,
            "type": "array",
            "description": "Source theme filter, using exact current names such as Pet Essentials. A URL theme parameter takes precedence.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 500
            }
          },
          "excludeCategories": {
            "title": "Exclude departments or categories",
            "maxItems": 50,
            "type": "array",
            "description": "Exclude an exact category name or path in the product's own category hierarchy. Filtered products are not saved or billed.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 500
            }
          },
          "minPrice": {
            "title": "Minimum price (AUD)",
            "minimum": 0,
            "type": "number",
            "description": "Only save products with a known price at least this amount. Must not exceed Maximum price."
          },
          "maxPrice": {
            "title": "Maximum price (AUD)",
            "minimum": 0,
            "type": "number",
            "description": "Only save products with a known price no greater than this amount. Must not be less than Minimum price."
          },
          "onSaleOnly": {
            "title": "Promotional products only",
            "type": "boolean",
            "description": "Keep products with a was-price, on-sale date or source promotional category. An on-sale date is not proof of current store availability.",
            "default": false
          },
          "previousProducts": {
            "title": "Previous public product fingerprints (optional)",
            "maxItems": 5000,
            "type": "array",
            "description": "Explicit baseline of sku/fingerprint pairs from earlier output. Adds NEW, UPDATED or UNCHANGED changeType. By default unchanged products are suppressed and not billed. Use the same fetchDetails and filters for comparable fingerprints. No automatic schedules, cross-account reads or expired-product inference.",
            "items": {
              "type": "object",
              "properties": {
                "sku": {
                  "title": "Product SKU",
                  "description": "The stable public ALDI SKU from previous output.",
                  "type": "string",
                  "editor": "textfield",
                  "pattern": "^[0-9]{9,24}$"
                },
                "fingerprint": {
                  "title": "Content fingerprint",
                  "description": "The SHA-256 fingerprint from comparable previous output.",
                  "type": "string",
                  "editor": "textfield",
                  "pattern": "^[a-f0-9]{64}$"
                }
              },
              "required": [
                "sku",
                "fingerprint"
              ]
            }
          },
          "emitUnchanged": {
            "title": "Include unchanged products",
            "type": "boolean",
            "description": "With previousProducts, also save and bill unchanged products. Ignored without a baseline.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}