{
  "openapi": "3.0.1",
  "info": {
    "title": "Bunnings Product & Stock Scraper",
    "description": "Fast, HTTP-only Bunnings (bunnings.com.au) scraper. Get products by store, category, or search — with prices, stock status, and (for product-mode results) GTIN/EAN barcodes. No browser, dedicated proxies, pay only for what you scrape.",
    "version": "0.1",
    "x-build-id": "nRCqei98kBGGSnyUI"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/mof1re~bunnings-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-mof1re-bunnings-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/mof1re~bunnings-scraper/runs": {
      "post": {
        "operationId": "runs-sync-mof1re-bunnings-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/mof1re~bunnings-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-mof1re-bunnings-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",
        "required": [
          "mode"
        ],
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "search",
              "category",
              "product"
            ],
            "type": "string",
            "description": "Choose what this run should do. Each mode charges a different event - see Pricing tab.",
            "default": "search"
          },
          "store": {
            "title": "Store / location",
            "enum": [
              "4058",
              "4040",
              "4056",
              "4059",
              "4025",
              "7301",
              "7316",
              "7071",
              "7175",
              "7334",
              "7373",
              "7174",
              "7173",
              "7313",
              "7132",
              "7374",
              "7378",
              "7304",
              "7159",
              "7216",
              "7168",
              "7333",
              "7384",
              "7082",
              "7152",
              "7346",
              "7364",
              "7376",
              "7369",
              "7342",
              "7179",
              "7222",
              "7213",
              "7351",
              "7086",
              "7219",
              "7319",
              "7315",
              "7148",
              "7321",
              "7118",
              "7344",
              "7380",
              "7302",
              "7363",
              "7122",
              "7335",
              "7088",
              "7332",
              "7385",
              "7323",
              "7345",
              "7312",
              "7303",
              "7354",
              "7337",
              "7092",
              "7395",
              "7309",
              "7200",
              "7348",
              "7343",
              "7094",
              "8153",
              "8170",
              "8129",
              "8139",
              "7217",
              "7220",
              "7377",
              "7349",
              "7365",
              "7021",
              "7368",
              "7386",
              "7214",
              "7379",
              "7336",
              "7196",
              "7356",
              "7306",
              "6436",
              "7096",
              "7063",
              "7151",
              "7318",
              "7310",
              "7212",
              "7314",
              "7016",
              "7329",
              "7361",
              "7325",
              "7161",
              "7091",
              "7347",
              "7080",
              "7076",
              "7341",
              "8211",
              "8172",
              "8140",
              "8157",
              "8159",
              "8219",
              "8182",
              "8181",
              "8204",
              "8035",
              "8161",
              "8056",
              "8175",
              "8026",
              "8057",
              "8197",
              "8018",
              "8191",
              "8212",
              "8180",
              "8196",
              "8066",
              "8109",
              "8210",
              "8199",
              "8103",
              "8101",
              "8164",
              "8171",
              "8201",
              "8215",
              "8085",
              "8158",
              "8169",
              "8195",
              "8017",
              "8179",
              "8076",
              "8176",
              "8203",
              "8079",
              "8220",
              "8042",
              "8205",
              "8190",
              "8027",
              "8386",
              "8152",
              "8453",
              "8477",
              "8462",
              "8467",
              "8451",
              "8476",
              "8469",
              "8437",
              "8440",
              "8471",
              "8466",
              "8470",
              "8474",
              "8041",
              "8154",
              "5024",
              "5221",
              "5150",
              "5095",
              "5228",
              "5083",
              "5121",
              "5211",
              "5214",
              "5229",
              "5227",
              "5222",
              "5210",
              "5230",
              "5181",
              "5224",
              "5068",
              "5160",
              "5212",
              "5226",
              "5220",
              "5215",
              "4457",
              "4455",
              "4467",
              "4466",
              "4422",
              "4453",
              "4468",
              "6300",
              "6156",
              "6430",
              "6177",
              "6412",
              "6975",
              "6409",
              "6423",
              "6404",
              "6395",
              "6224",
              "6310",
              "6249",
              "6083",
              "6126",
              "6425",
              "6299",
              "6443",
              "6426",
              "6042",
              "6448",
              "6401",
              "6390",
              "6402",
              "6428",
              "6359",
              "6035",
              "6438",
              "6140",
              "6230",
              "6439",
              "6240",
              "6400",
              "6363",
              "6403",
              "6075",
              "6429",
              "6388",
              "6225",
              "6431",
              "6386",
              "6194",
              "6453",
              "6196",
              "6185",
              "6459",
              "6420",
              "6174",
              "6215",
              "6442",
              "6450",
              "6411",
              "6385",
              "6446",
              "6422",
              "6435",
              "6118",
              "6246",
              "6037",
              "6228",
              "6432",
              "6011",
              "6461",
              "6160",
              "6399",
              "6449",
              "6462",
              "6433",
              "6227",
              "6247",
              "6180",
              "6221",
              "6427",
              "6437",
              "6451",
              "6202",
              "6201",
              "6452",
              "6463",
              "2170",
              "2435",
              "2174",
              "2443",
              "2010",
              "2183",
              "2708",
              "2404",
              "2445",
              "2052",
              "2440",
              "2260",
              "2094",
              "2130",
              "2438",
              "2157",
              "2402",
              "2206",
              "2015",
              "2433",
              "2437",
              "2163",
              "2160",
              "2442",
              "2432",
              "2016",
              "2707",
              "2444",
              "2063",
              "2703",
              "2179",
              "2706",
              "2182",
              "2181",
              "2390",
              "2022",
              "2355",
              "2210"
            ],
            "type": "string",
            "description": "Bunnings store used for pricing and stock data across all modes. Prices and availability are store-specific. Defaults to Melbourne VIC 3000 if not selected. Format: ZIP - StoreName, Address, STATE.",
            "default": "6425"
          },
          "query": {
            "title": "Search query",
            "type": "string",
            "description": "Used when mode = search. E.g. 'cordless drill'.",
            "default": "cordless drill"
          },
          "categoryUrl": {
            "title": "Category URL or slug",
            "type": "string",
            "description": "Used when mode = category. Paste a full bunnings.com.au category URL (e.g. https://www.bunnings.com.au/products/outdoor-living/camping-recreation/camping-power-cables) or just the last slug (e.g. camping-power-cables). Resolved automatically to the internal category key.",
            "default": "https://www.bunnings.com.au/products/outdoor-living/camping-recreation/camping-power-cables"
          },
          "maxPages": {
            "title": "Max pages",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Maximum number of pages to fetch (18 products/page, fixed by Bunnings internal API). Bunnings caps browsing at 100 pages (1800 products) max per search/category. If your category or search has more than 1800 results, you won't get all of them this way - narrow it down using the sort order and price filters below, or split it into multiple runs. Stops earlier if fewer results exist. Charged per page actually fetched.",
            "default": 10
          },
          "sortOrder": {
            "title": "Sort order",
            "enum": [
              "BoostOrder",
              "PriceAscending",
              "PriceDescending"
            ],
            "type": "string",
            "description": "Ignored for product mode.",
            "default": "BoostOrder"
          },
          "priceMin": {
            "title": "Min price (AUD)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Filter results to products priced at or above this value."
          },
          "priceMax": {
            "title": "Max price (AUD)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Filter results to products priced at or below this value. Leave empty for no upper limit."
          },
          "productIdsOrUrls": {
            "title": "Product IDs or URLs",
            "type": "array",
            "description": "Used when mode = product. Accepts product page URLs (the _p<id> slug is extracted automatically) or raw product IDs.",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}