{
  "openapi": "3.0.1",
  "info": {
    "title": "Woolworths Product Scraper – Prices, Specials & Stock",
    "description": "Get Woolworths Australia product prices, was-prices, specials, unit prices, stock, barcodes and categories by keyword, barcode, URL or specials group. Optional nutrition and origin. No login, about $1.16 per 1,000 products.",
    "version": "0.0",
    "x-build-id": "Olnck1z1UPKfuyHm3"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/genial_candlestand~woolworths-product-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-genial_candlestand-woolworths-product-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/genial_candlestand~woolworths-product-scraper/runs": {
      "post": {
        "operationId": "runs-sync-genial_candlestand-woolworths-product-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/genial_candlestand~woolworths-product-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-genial_candlestand-woolworths-product-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": {
          "queries": {
            "title": "Search terms, barcodes or stockcodes",
            "type": "array",
            "description": "One per line, e.g. \"milk\" or \"tim tam\". A barcode (EAN) or Woolworths stockcode returns exactly that product.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Woolworths URLs",
            "type": "array",
            "description": "woolworths.com.au links: a category or aisle (/shop/browse/dairy-eggs-fridge/milk), a specials page (/shop/browse/specials/half-price; /shop/browse/specials = every group), a search page (/shop/search/products?searchTerm=milk) or a product page (/shop/productdetails/888140/...). Page, sort and filter parameters in the link are ignored. Other links are skipped with a warning.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "specials": {
            "title": "Specials groups",
            "type": "array",
            "description": "Pick Woolworths specials catalogues (half price, buy more save more, all groups and others) without typing URLs. Each group is limited by Max products per source.",
            "items": {
              "type": "string",
              "enum": [
                "half-price",
                "buy-more-save-more",
                "all",
                "lower-shelf-price",
                "everyday-low-price",
                "seasonal-price",
                "bundles",
                "online-only-specials",
                "everyday-market-specials-and-offers"
              ],
              "enumTitles": [
                "Half price",
                "Buy more, save more (multibuy)",
                "All specials (every group)",
                "Lower shelf price",
                "Everyday low price",
                "Seasonal price",
                "Bundles",
                "Online-only specials",
                "Everyday Market (marketplace) specials"
              ]
            }
          },
          "maxItemsPerSource": {
            "title": "Max products per source",
            "minimum": 1,
            "maximum": 20000,
            "type": "integer",
            "description": "Stop each search term, URL or specials group after this many products (36 products per page on the source). Use a large number, e.g. 5000, for a whole aisle or specials group.",
            "default": 100
          },
          "maxItems": {
            "title": "Max products in total",
            "minimum": 1,
            "type": "integer",
            "description": "Stop the whole run after this many products, whatever the number of sources. Each product row is one charged event.",
            "default": 1000
          },
          "sortBy": {
            "title": "Sort order",
            "enum": [
              "relevance",
              "priceAsc",
              "priceDesc",
              "unitPriceAsc",
              "unitPriceDesc",
              "nameAsc",
              "nameDesc"
            ],
            "type": "string",
            "description": "Order of the source's results, matters when you stop early. Note: \"Unit price, low to high\" on search terms makes Woolworths return only products that show a unit price (far fewer results); on URLs and specials it returns everything.",
            "default": "relevance"
          },
          "specialsOnly": {
            "title": "Only products on special",
            "type": "boolean",
            "description": "Return only products marked as on special (isOnSpecial). Applies to search terms, search URLs and category URLs. Specials groups and product URLs are always returned in full.",
            "default": false
          },
          "inStockOnly": {
            "title": "Only products in stock",
            "type": "boolean",
            "description": "Skip products that are out of stock or unavailable online (they have no price). Applies to every source.",
            "default": false
          },
          "includeDetails": {
            "title": "Add nutrition, country of origin and aisle",
            "type": "boolean",
            "description": "Open every product's detail data for the nutrition panel (per 100 g and per serve), country of origin, aisle and all images. Same price per product, but the run is slower (one extra request per product). Product URLs always include these fields.",
            "default": false
          },
          "includeSponsored": {
            "title": "Include sponsored products",
            "type": "boolean",
            "description": "Keep the sponsored (promoted) tiles Woolworths mixes into category, specials and later search pages. They are often from other aisles. Kept rows have isSponsored = true; off by default so you pay only for real results.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apify Proxy is recommended; the default datacenter proxy works on every plan. Residential AU is a slower fallback if blocks rise. A datacenter proxy with country AU is not available and is replaced by any datacenter country.",
            "default": {
              "useApifyProxy": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}