{
  "openapi": "3.0.1",
  "info": {
    "title": "Coles Woolworths ALDI Scraper",
    "description": "Coles, Woolworths and ALDI Australia prices, specials and unit prices in one dataset with the same columns. Reliable Coles scraping, store pricing by postcode, optional ingredients and nutrition.",
    "version": "0.1",
    "x-build-id": "WTMkszHuBe1GgISIa"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrape-lads~au-grocery-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrape-lads-au-grocery-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/scrape-lads~au-grocery-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrape-lads-au-grocery-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/scrape-lads~au-grocery-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrape-lads-au-grocery-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",
            "type": "array",
            "description": "Products to search for, e.g. \"milk\", \"weet-bix\", \"chicken breast\". Each term is searched at every store selected below, so you get the same products side by side for price comparison. Provide search terms, URLs below, or both.",
            "items": {
              "type": "string"
            }
          },
          "stores": {
            "title": "Stores for search terms",
            "type": "array",
            "description": "Which supermarkets to search. URLs below always go to the store they belong to.",
            "items": {
              "type": "string",
              "enum": [
                "coles",
                "woolworths",
                "aldi"
              ],
              "enumTitles": [
                "Coles",
                "Woolworths",
                "ALDI Australia"
              ]
            },
            "default": [
              "coles",
              "woolworths",
              "aldi"
            ]
          },
          "startUrls": {
            "title": "Category, search or product URLs",
            "type": "array",
            "description": "Paste any mix of Coles, Woolworths and ALDI Australia links: category pages (coles.com.au/browse/..., coles.com.au/on-special, woolworths.com.au/shop/browse/..., aldi.com.au/products/.../k/...), search result pages, or single product pages.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "specialsOnly": {
            "title": "Specials only",
            "type": "boolean",
            "description": "Only return products that are on special right now (half price, multibuy, price drops, ALDI Super Savers).",
            "default": false
          },
          "maxItemsPerQuery": {
            "title": "Max products per search term or URL",
            "minimum": 0,
            "type": "integer",
            "description": "Stop each search term or category (per store) after this many products. 0 = everything (a big category can be thousands of products).",
            "default": 100
          },
          "maxItems": {
            "title": "Max products in total",
            "minimum": 0,
            "type": "integer",
            "description": "Hard cap for the whole run across all stores. 0 = no cap.",
            "default": 0
          },
          "postcodes": {
            "title": "Postcodes or suburbs (store pricing)",
            "type": "array",
            "description": "Prices and stock differ by store. For each postcode or suburb (e.g. 2000, 6000, Bondi) the Actor picks the nearest Coles and Woolworths supermarket and reads that store's own prices, and the nearest ALDI for in-store stock of Special Buys. Each store gets its own rows. Leave empty for the online default prices.",
            "items": {
              "type": "string"
            }
          },
          "includeDetails": {
            "title": "Include ingredients, allergens and nutrition",
            "type": "boolean",
            "description": "Adds a details object (ingredients, allergens, health star rating, country of origin, nutrition table where the store publishes it). Coles and ALDI need one extra request per product, so runs are slower.",
            "default": false
          },
          "includeOutOfStock": {
            "title": "Include out-of-stock products",
            "type": "boolean",
            "description": "Turn off to drop products the store marks as unavailable.",
            "default": true
          },
          "aldiStoreId": {
            "title": "ALDI store ID",
            "type": "string",
            "description": "ALDI service point used for the ALDI catalogue (the website's default is G452). ALDI prices are national, so you rarely need to change this.",
            "default": "G452"
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Coles blocks datacenter IPs, so Coles requests use an Australian residential proxy. The Actor already ships with one; only set this if you want to use your own proxy.",
            "default": {
              "useApifyProxy": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}