Bunnings Scraper - Products, Reviews & Q&A
Pricing
from $1.50 / 1,000 product results
Bunnings Scraper - Products, Reviews & Q&A
Scrape bunnings.com.au products with full specifications, price, brand, stock, image gallery, warranty, customer reviews, rating stats and Q&A. Search by keyword with brand, price, rating and sort filters, or paste product / category / search URLs.
Pricing
from $1.50 / 1,000 product results
Rating
0.0
(0)
Developer
Abot API
Maintained by CommunityActor stats
0
Bookmarked
5
Total users
2
Monthly active users
6 hours ago
Last modified
Categories
Share
Bunnings Scraper - Products & Reviews from bunnings.com.au
Extract structured product data from Bunnings Warehouse (bunnings.com.au), Australia's largest hardware and home-improvement retailer. Search by keyword with brand, price, rating and sort filters, or paste product, category and search URLs - and get clean JSON with full specifications, pricing, image galleries, warranty, and customer reviews with rating statistics.
Running on the Apify platform gives you API access, scheduling, integrations (Google Sheets, Zapier, webhooks), automatic proxy rotation and full run monitoring out of the box.
What it does
Give it a keyword (or a list of Bunnings URLs) and it returns one structured record per product. Category and search results are collected across multiple pages, so you can gather hundreds of drills, mowers, paints or fasteners in a single run.
Fields per product
| Field | Description |
|---|---|
code, itemNumber | Bunnings product code / item number |
name, title | Product name and canonical brand-prefixed title |
brand, brandCode, brandUrl, brandIconUrl | Brand name, code, brand page and icon |
isLeadingBrand, isTradeBrand | Brand flags |
price, currency, formattedPrice | Price, currency and formatted price |
wasPrice, savingsAmount, savingsPercent, isOnSpecial | Original / "was" price and discount (see note below - stays empty on Bunnings) |
offerTypes, isRedemptionOffer | Site's own product-offer tags (e.g. Redemption Offer, New Arrival) |
promotion, hasPromotion | Marketing campaign the product is in (name, dates, OnePass-exclusive flag) |
productOffers | Detail-level product offers list, verbatim (empty on most products) |
variants | Size / colour variant matrix with per-variant code, item number and URL |
sustainabilityInformation, guideDocuments | Sustainability info and care / guide documents |
fsc, colorCount, sizeCount, hasMultipleOffers | Certification and variant-count flags |
isDeliveryIncluded, isPOAProduct, isAREnabled | Additional product flags |
priceType, priceAvailable | Price type (e.g. FROM) and availability flag |
paymentOptions | Instalment options (Afterpay, PayPal, Zip) |
unitOfPrice | Unit-of-measure price where shown |
rating, ratingCount | Average star rating and number of ratings |
reviewStats | Aggregate rating stats + star distribution |
reviews[] | Review text, star rating, author, date, recommended flag, helpful votes |
specifications | Flattened spec name to value map |
features[] | Full feature list (name, code, value) |
summary | Product summary |
warranty | Warranty & returns text |
weight, dimension | Weight and packaged / product dimensions |
images[], imageUrl, thumbnailUrl | Full image gallery and primary image |
categories, superCategories, categoryPath | Category taxonomy |
keySellingPoints | Key selling points |
availableForDelivery, inStorePickup, purchasable | Availability flags |
fulfilment | Delivery / click-and-collect fulfilment detail |
isTradeOnly, isSpecialProduct, isDangerousGood, customMade | Product flags |
bestSeller, newArrival, forHire, ageRestricted | Merchandising flags |
variantCount, size, productRanges | Variant and range info |
url, source, searchMode | Canonical URL and provenance |
Input
Configure the run in the Input tab.
Search mode
{"mode": "search","queries": ["cordless drill", "exterior paint"],"brand": "Ryobi","sortBy": "ratingDesc","minPrice": 20,"maxPrice": 500,"minRating": 4,"productOffers": "redemption-offer","fetchDetails": true,"fetchReviews": true,"maxItems": 50}
URL mode
{"mode": "url","urls": ["https://www.bunnings.com.au/our-range/tools/power-tools/drills","https://www.bunnings.com.au/search/products?q=hammer","https://www.bunnings.com.au/ryobi-18v-one-drill-driver-starter-kit-r18dd22_p0715241"],"fetchDetails": true,"fetchReviews": true}
Options
- mode -
search(keyword + filters) orurl(paste links). Product URLs (ending in_p<id>) return a single product; category and search URLs return multiple pages of results. - queries - one or more search keywords (search mode).
- brand - keep only products whose brand contains this text.
- sortBy -
relevance,priceAsc,priceDesc,ratingDesc,reviewsDesc,nameAsc. - minPrice / maxPrice / minRating - result filters.
- productOffers - keep only products carrying the site's own product-offer tag:
redemption-offer(bonus / gift-with-purchase promotions) ornew-arrival. Leaveanyto include everything. In URL mode you can instead paste a search or category URL with?productoffers=Redemption Offer. - fetchDetails - open each product page for full specifications, warranty, dimensions, gallery and price breakdown (default on).
- fetchReviews - collect customer reviews + rating statistics.
- maxReviewsPerProduct - cap reviews per product (0 = all).
- maxItems - overall cap on products returned across the run.
- maxPages -
0 = walk the whole catalogue(the run still stops at the storefront's own result total or a page repeat — no artificial ceiling). - resumeFromRunId - prior run ID (or dataset ID) to resume from — seeds the de-dup set so a re-run only appends new items.
- proxy - Apify Proxy with residential access in Australia is recommended for reliable results.
Incremental & dedup mode (recurring monitoring)
resumeFromRunId continues one interrupted run. incrementalMode is for
running the same search again and again (daily/scheduled) and getting
only what changed, without pasting a run id every time - the actor remembers
the previous run of the same search itself.
Turn on incrementalMode and every product is classified against the
last run of the same search/filter setup:
- NEW - not seen before
- UPDATED - a real catalogue field changed (
changedFieldslists which) - UNCHANGED - nothing changed since last time (suppressed - not
returned or billed - unless
emitUnchangedis on) - REAPPEARED - was gone, is back
- EXPIRED - was tracked, no longer found (only synthesized when
emitExpiredis on AND the run fully scanned every keyword/URL with nomaxItems/maxPagescap hit and noresumeFromRunId- a partial run never marks anything expired)
Every row also carries firstSeenAt / lastSeenAt. State is scoped
automatically to your exact mode/keywords/URLs/filters (two different
searches never share a baseline), or pin it yourself with stateKey to
name a monitoring campaign explicitly. emitUnchanged and emitExpired are
both off by default because they return - and bill - extra rows you already
have.
What counts as a change: price, was-price, savings, isOnSpecial,
offerTypes/isRedemptionOffer, promotion/hasPromotion, priceType,
fulfilment and the specifications/variants are all real catalogue data and
trigger UPDATED. The aggregate rating/ratingCount and the
reviews/reviewStats fields are driven by other customers rather
than the product itself and change far more often than the catalogue data,
so they are deliberately excluded from change detection (still fully
returned as usual) - otherwise almost every recurring run would look like
an update.
Product offers, was-price & discounts
Bunnings runs an everyday-low-price model, so it is important to know what is and is not available:
- Was-price / discount fields stay empty. Bunnings publishes no strike-through, "was", RRP or savings price anywhere in its product data - not on the listing card and not on the product page. The
wasPrice,savingsAmount,savingsPercentfields are thereforenullandisOnSpecialisfalsefor every product. These fields are included for a consistent schema and populate only if a genuine reduced price ever appears - they are never fabricated from other numbers. - There is no half-price / clearance / catalogue product listing. Bunnings has no
/specials,/clearanceor/dealsproduct page (those paths return "not found"), and the online catalogue is a flip-book viewer, not a product feed. So there is no specials category to select. - What Bunnings does expose is the "Product offers" tag on its own search and category pages, with two values: Redemption Offer (bonus / gift-with-purchase promotions) and New Arrival. Use the
productOffersinput to filter to these. Matching products carry the tag verbatim inofferTypes/isRedemptionOffer. - Marketing campaigns a product belongs to (for example free-delivery or OnePass-member campaigns) are surfaced verbatim in
promotion/hasPromotion. These are delivery / loyalty campaigns, not price reductions.
Pricing
You are billed for the results you actually collect: a small charge per product returned, plus optional charges only when detail extraction or reviews are enabled. See the actor's Pricing tab for current rates.
Send results into your apps (MCP connectors)
Optionally pipe results into the apps you already use via Model Context Protocol (MCP) connectors - Notion, Linear, Airtable or Apify. Authorize a connector under Apify, Settings, API & Integrations, then select it in the input. This never changes the dataset output.
Notes
- Review availability varies per product; products with no reviews return an empty array.
- Plan Requirement: runs on any Apify plan. On the free plan, proxy coverage may be limited and some runs may return fewer results.