{
  "openapi": "3.0.1",
  "info": {
    "title": "Australian Supermarket Prices: Woolworths & Aldi Unit Prices",
    "description": "Compare Woolworths and Aldi Australia prices, with unit prices per kg, litre or item. Specials, barcodes, Health Star Ratings and nutrition in one format, the cheapest match per search term, and price-change alerts on a schedule.",
    "version": "0.1",
    "x-build-id": "BTeugjGQLIJePuglT"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/subtleasianmerch~australian-grocery-prices/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-subtleasianmerch-australian-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/subtleasianmerch~australian-grocery-prices/runs": {
      "post": {
        "operationId": "runs-sync-subtleasianmerch-australian-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/subtleasianmerch~australian-grocery-prices/run-sync": {
      "post": {
        "operationId": "run-sync-subtleasianmerch-australian-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": {
          "searchTerms": {
            "title": "Search terms",
            "type": "array",
            "description": "Woolworths is searched for each term. Aldi products from the categories below are kept only when they match a term, unless you turn that off.",
            "items": {
              "type": "string"
            }
          },
          "stores": {
            "title": "Stores",
            "type": "array",
            "description": "Which supermarkets to read.",
            "items": {
              "type": "string",
              "enum": [
                "woolworths",
                "aldi"
              ],
              "enumTitles": [
                "Woolworths",
                "Aldi"
              ]
            },
            "default": [
              "woolworths",
              "aldi"
            ]
          },
          "aldiCategories": {
            "title": "Aldi categories",
            "type": "array",
            "description": "Aldi is read by category, because its own search page is closed to automated access (robots.txt). Pick the categories your products are in.",
            "items": {
              "type": "string",
              "enum": [
                "fruits-vegetables",
                "meat-seafood",
                "deli-chilled-meats",
                "dairy-eggs-fridge",
                "pantry",
                "bakery",
                "freezer",
                "drinks",
                "snacks-confectionery",
                "health-beauty",
                "baby",
                "cleaning-household",
                "pets",
                "liquor",
                "higher-protein-food-and-drink",
                "lower-prices",
                "super-savers",
                "limited-time-only",
                "the-people-s-picks"
              ],
              "enumTitles": [
                "Fruits & Vegetables",
                "Meat & Seafood",
                "Deli & Chilled Meats",
                "Dairy, Eggs & Fridge",
                "Pantry",
                "Bakery",
                "Freezer",
                "Drinks",
                "Snacks & Confectionery",
                "Health & Beauty",
                "Baby",
                "Cleaning & Household",
                "Pets",
                "Liquor",
                "Higher Protein Food and Drink",
                "Lower Prices",
                "Super Savers",
                "Limited Time Only",
                "The People's Picks"
              ]
            }
          },
          "aldiCategoryUrls": {
            "title": "Or Aldi category links",
            "type": "array",
            "description": "Narrower Aldi categories, copied from aldi.com.au, e.g. https://www.aldi.com.au/products/dairy-eggs-fridge/milk/k/1111111160. Smaller categories mean fewer pages to read.",
            "items": {
              "type": "string"
            }
          },
          "aldiAllProducts": {
            "title": "Read Aldi's whole range",
            "type": "boolean",
            "description": "All of Aldi's products (about 3,300 in October 2026, 30 per page). Replaces the categories above; \"Most products per Aldi category\" still applies.",
            "default": false
          },
          "filterAldiBySearchTerms": {
            "title": "Keep only Aldi products matching the search terms",
            "type": "boolean",
            "description": "On: an Aldi product is kept when its name or brand contains every word of a search term. Off, or with no search terms: every product in the categories is kept.",
            "default": true
          },
          "specialsOnly": {
            "title": "Specials only",
            "type": "boolean",
            "description": "Only products on special (with a lower price than usual).",
            "default": false
          },
          "woolworthsSort": {
            "title": "Woolworths order",
            "enum": [
              "relevance",
              "priceLow",
              "priceHigh",
              "unitPriceLow",
              "name"
            ],
            "type": "string",
            "description": "The order Woolworths returns results in, which decides which products fall within the limit below.",
            "default": "relevance"
          },
          "maxProductsPerSearch": {
            "title": "Most products per Woolworths search",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Woolworths returns 36 per page; popular terms have thousands of results.",
            "default": 100
          },
          "maxProductsPerCategory": {
            "title": "Most products to read per Aldi category",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Products read from each Aldi category (30 per page), before the search-term filter.",
            "default": 300
          },
          "includeNutrition": {
            "title": "Add ingredients and nutrition (Woolworths)",
            "type": "boolean",
            "description": "Ingredients, the allergy statement and the nutrition panel (per 100 g/mL and per serve). Aldi doesn't publish these on its product listings.",
            "default": false
          },
          "monitorId": {
            "title": "Monitor ID (for scheduled runs)",
            "type": "string",
            "description": "Any name, e.g. \"weekly-basket\". Runs with the same ID remember each product's last price, so a schedule can report new products and price changes."
          },
          "onlyChanges": {
            "title": "Output only new products and price changes",
            "type": "boolean",
            "description": "With a monitor ID: on, only products that are new or whose price or special changed since the last run; off, all products with changes marked.",
            "default": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}