{
  "openapi": "3.0.1",
  "info": {
    "title": "AU Grocery Prices - Coles, Woolworths, ALDI & IGA",
    "description": "Scrape Australian grocery prices from Coles, Woolworths, ALDI and IGA in one run. Get price, was-price, half-price and multi-buy specials, unit price, stock and category - or match the same product across all four chains on one row and see which is cheapest.",
    "version": "0.1",
    "x-build-id": "2yaKHBu6qAqkbprGu"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/toptock~au-grocery-prices/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-toptock-au-grocery-prices",
        "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/toptock~au-grocery-prices/runs": {
      "post": {
        "operationId": "runs-sync-toptock-au-grocery-prices",
        "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/toptock~au-grocery-prices/run-sync": {
      "post": {
        "operationId": "run-sync-toptock-au-grocery-prices",
        "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": {
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Products to search in every selected chain, e.g. <b>milk</b>, <b>weet-bix</b>, <b>toilet paper</b>. Each keyword is searched in all selected supermarkets and returned in one dataset. In <b>recall alerts</b> mode these are optional and act as a watch list: only recalls whose product or company contains every word of a keyword are returned (e.g. <b>ham</b>, <b>peanut butter</b>).",
            "items": {
              "type": "string"
            }
          },
          "chains": {
            "title": "Supermarkets",
            "type": "array",
            "description": "Which chains to scrape. Default: all four.",
            "items": {
              "type": "string",
              "enum": [
                "coles",
                "woolworths",
                "aldi",
                "iga"
              ],
              "enumTitles": [
                "Coles",
                "Woolworths",
                "ALDI",
                "IGA"
              ]
            }
          },
          "maxResultsPerKeyword": {
            "title": "Max results per keyword (per chain)",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Cap on products returned for each keyword in each chain. Default 30, max 500.",
            "default": 30
          },
          "output": {
            "title": "Output format",
            "enum": [
              "products",
              "comparison",
              "recalls"
            ],
            "type": "string",
            "description": "<b>One product per row</b> returns every product separately. <b>One comparison per row</b> matches the same product across chains (same size, compatible brand - house brands like Coles/Essentials/Farmdale/Black & Gold are treated as comparable) and names the cheapest chain. <b>Food recall alerts</b> returns official Australian food recalls from Food Standards Australia New Zealand, with hazard, allergens, states and retailers - optionally cross-checked against the four chains' shelves.",
            "default": "products"
          },
          "onSpecialOnly": {
            "title": "Specials only",
            "type": "boolean",
            "description": "Return only products currently on special (half-price, multi-buy, percent-off, TPR).",
            "default": false
          },
          "igaStoreId": {
            "title": "IGA store ID",
            "type": "string",
            "description": "IGA prices are store-specific. Default is store 32600 (Ashcroft's IGA Erskine Park, NSW). Find other IDs via igashop.com.au.",
            "default": "32600"
          },
          "recallDays": {
            "title": "Recalls: how far back (days)",
            "minimum": 1,
            "maximum": 3650,
            "type": "integer",
            "description": "Return recalls published in the last N days. FSANZ history goes back to late 2023.",
            "default": 90
          },
          "recallStates": {
            "title": "Recalls: states",
            "type": "array",
            "description": "Only recalls affecting these states. Nationwide recalls always match. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "NSW",
                "VIC",
                "QLD",
                "WA",
                "SA",
                "TAS",
                "ACT",
                "NT"
              ]
            }
          },
          "recallHazards": {
            "title": "Recalls: hazard types",
            "type": "array",
            "description": "Only these kinds of recall. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "allergen",
                "listeria",
                "salmonella",
                "e-coli",
                "microbial",
                "foreign-matter",
                "chemical",
                "other"
              ],
              "enumTitles": [
                "Undeclared allergen",
                "Listeria",
                "Salmonella",
                "E. coli",
                "Other microbial",
                "Foreign matter (metal, plastic, glass)",
                "Chemical",
                "Other"
              ]
            }
          },
          "recallAllergens": {
            "title": "Recalls: allergens",
            "type": "array",
            "description": "Only allergen recalls involving these allergens - e.g. pick peanut for a peanut-allergy household. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "peanut",
                "tree nut",
                "milk",
                "egg",
                "soy",
                "sesame",
                "wheat",
                "gluten",
                "fish",
                "crustacean",
                "mollusc",
                "lupin",
                "sulphites"
              ]
            }
          },
          "meatOnly": {
            "title": "Recalls: meat products only",
            "type": "boolean",
            "description": "Only recalls of meat, poultry and smallgoods.",
            "default": false
          },
          "findAlternatives": {
            "title": "Recalls: find shelf alternatives",
            "type": "boolean",
            "description": "For each recall, search the selected supermarkets for the same kind of product from other brands (cheapest unit price first), and flag listings that may be the recalled product itself so you can check batch and date codes. Adds a few seconds per recall.",
            "default": false
          },
          "organicOnly": {
            "title": "Recalls: organic alternatives only",
            "type": "boolean",
            "description": "Only suggest alternatives with 'organic' in the name. This is a preference filter - organic products are recalled too, so it is not a safety guarantee.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}