{
  "openapi": "3.0.1",
  "info": {
    "title": "Woolworths Australia Products Scraper",
    "description": "Woolworths Australia Products Scraper SD - Woolworths Australia Products Scraper is a logged-out tool that extracts woolworths.com.au grocery products from searches, categories, specials or product links: prices, was-price, unit price, specials, stock, ratings, nutrition, ingredients and allergens.",
    "version": "1.0",
    "x-build-id": "m501uqOa0PJVF22hM"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/neuro-scraper~woolworths-australia-products-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-neuro-scraper-woolworths-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/neuro-scraper~woolworths-australia-products-scraper/runs": {
      "post": {
        "operationId": "runs-sync-neuro-scraper-woolworths-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/neuro-scraper~woolworths-australia-products-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-neuro-scraper-woolworths-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",
            "type": "array",
            "description": "What you would type into the Woolworths search box, one search per line. Every result page is read until Max items, Max products per search term or the end of the results. Example: milk",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Woolworths URLs / product codes",
            "type": "array",
            "description": "Optional. woolworths.com.au search URLs (https://www.woolworths.com.au/shop/search/products?searchTerm=milk), category or specials URLs (https://www.woolworths.com.au/shop/browse/dairy-eggs-fridge/cheese, https://www.woolworths.com.au/shop/browse/specials/half-price), product URLs (https://www.woolworths.com.au/shop/productdetails/888140/a2-milk-full-cream) or plain product codes (888140).",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "specialsCategory": {
            "title": "Specials & offers category",
            "enum": [
              "",
              "half-price",
              "lower-shelf-price",
              "everyday-low-price",
              "seasonal-price",
              "buy-more-save-more",
              "online-only-specials",
              "bundles",
              "everyday-market-specials-and-offers"
            ],
            "type": "string",
            "description": "Optional. Also scrape one Woolworths specials list (the category id is read from the site's live category menu). Example: half-price",
            "default": ""
          },
          "maxItems": {
            "title": "Max products",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Maximum number of products in total for the whole run. Result pages (36 products each) are requested one after another with the site's own page number until this number or the end of the list. Example: 50",
            "default": 50
          },
          "maxResultsPerTerm": {
            "title": "Max products per search term / URL",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Optional limit per search term, category or URL (0 = only Max products applies). Example: 100",
            "default": 0
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "relevance",
              "priceLowToHigh",
              "priceHighToLow",
              "unitPriceLowToHigh",
              "unitPriceHighToLow",
              "name",
              "nameDesc",
              "newest",
              "specials"
            ],
            "type": "string",
            "description": "Order of the results, as on woolworths.com.au. The values are checked against the site's own sort menu on every run; a sort the site does not offer for a list (Specials sort on a category) skips that list with an error. Example: priceLowToHigh",
            "default": "relevance"
          },
          "specialsOnly": {
            "title": "Specials only",
            "type": "boolean",
            "description": "Only products on special. Searches use the site's own specials filter; for category URLs the downloaded products are filtered.",
            "default": false
          },
          "inStockOnly": {
            "title": "In stock only",
            "type": "boolean",
            "description": "Leave out products that are out of stock online (checked on the downloaded products).",
            "default": false
          },
          "minPrice": {
            "title": "Minimum price (AUD)",
            "minimum": 0,
            "type": "integer",
            "description": "Leave out products cheaper than this (0 = no minimum; checked on the downloaded products). Example: 2",
            "default": 0
          },
          "maxPrice": {
            "title": "Maximum price (AUD)",
            "minimum": 0,
            "type": "integer",
            "description": "Leave out products dearer than this (0 = no maximum; checked on the downloaded products). Example: 10",
            "default": 0
          },
          "minRating": {
            "title": "Minimum average rating",
            "enum": [
              "0",
              "3",
              "4",
              "5"
            ],
            "type": "string",
            "description": "Keep only products with at least this average star rating (needs Include ratings; products without ratings are left out when a minimum is set).",
            "default": "0"
          },
          "includeMarketplace": {
            "title": "Include Everyday Market products",
            "type": "boolean",
            "description": "Woolworths lists third-party Everyday Market (marketplace) items next to its own groceries. Turn off to keep Woolworths' own range only.",
            "default": true
          },
          "excludeCategories": {
            "title": "Skip these departments / categories",
            "type": "array",
            "description": "Optional. Products whose department or category name contains any of these words are left out (case-insensitive). Example: Everyday Market",
            "items": {
              "type": "string"
            }
          },
          "includeRatings": {
            "title": "Include ratings",
            "type": "boolean",
            "description": "Add average rating, rating count, review count and star distribution (one extra request per result page, all products of the page at once).",
            "default": true
          },
          "fetchDetails": {
            "title": "Fetch product details",
            "type": "boolean",
            "description": "Open every product's detail data and add country of origin, the country-of-origin label text and the aisle. One extra request per product. Nutrition, ingredients and allergens are included without it.",
            "default": false
          },
          "fetchReviews": {
            "title": "Fetch customer reviews",
            "type": "boolean",
            "description": "Add the written customer reviews of every product (rating, text, author, source, date). Extra requests per product (10 reviews per request).",
            "default": false
          },
          "maxReviewsPerProduct": {
            "title": "Max reviews per product",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Only with Fetch customer reviews. Reviews are paged 10 at a time until this number or the last review. Example: 20",
            "default": 20
          },
          "reviewsSort": {
            "title": "Review order",
            "enum": [
              "latest",
              "highest",
              "lowest"
            ],
            "type": "string",
            "description": "Only with Fetch customer reviews. The same three orders the product page offers.",
            "default": "latest"
          },
          "includeRaw": {
            "title": "Include raw product data",
            "type": "boolean",
            "description": "Add the full product object as Woolworths returns it (column raw) - large.",
            "default": false
          },
          "maxPagesPerSearch": {
            "title": "Max pages per search / category",
            "minimum": 1,
            "maximum": 2000,
            "type": "integer",
            "description": "Safety limit on result pages per search term or category (Max products is the main limit). Example: 200",
            "default": 200
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Residential proxy in Australia is the default (woolworths.com.au is protected by Akamai; prices are national online prices).",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "AU"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}