Bunnings for Australia and New Zealand as JSON, priced and stocked per store
The Bunnings API turns bunnings.com.au and bunnings.co.nz into clean JSON, in six actions: search, category/products, product/detail, product/stock, stores and search/suggest.
6 active endpoints, on 1 and 2 credit tiers.
- POST/bunnings/v1/search
- POST/bunnings/v1/category/products
- POST/bunnings/v1/product/detail
- POST/bunnings/v1/product/stock
- POST/bunnings/v1/stores
- POST/bunnings/v1/search/suggest
What Bunnings endpoints does ReefAPI ship?
6 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.
Bunnings API
4 of 6 endpoints, ready to run
Bunnings' product results for a keyword, priced for one store: item number, title, brand, price in AUD or NZD, unit price, Marketplace seller, fulfilment options, offer badges, rating and review count, image and category path.
{ "ok": true, "meta": { "api": "bunnings", "endpoint": "search", "mode": "live", "latency_ms": 2107.1, "record_count": 36, "cache_hit": false }, "data": { "query": "cordless drill", "results": [ { "position": 1, "item_number": "0365191", "title": "XU1 3.6V Cordless Screwdriver XSD-363", "brand": "XU1", "brand_code": null, "url": "https://www.bunnings.com.au/xu1-3-6v-cordless-screwdriver-xsd-363_p0365191", "price": 19.98, "price_source": "search_index", "currency": "AUD", "unit_price": null, "sold_by_unit": "EA", "is_marketplace": false, "seller": null, "fulfilment_options": [ "In-Store", "Delivery", "Click & Collect" ], "is_special_order": false, "delivery_included": false, "promotions": null, "campaign": null, "key_selling_points": [ "Ideal for light screwdriving jobs", "2 Position Rear Handle –Switch between angle or inline orientation to operate in tight areas", "1.5Ah Lithium Ion Battery –Allows for convenient cordless operation" ], "search_index_rating": 3.66, "search_index_review_count": 26, "rating_scale": 5, "variant_count": null, "colour_count": null, "new_arrival": false, "best_seller": false, "age_restricted": false, "for_hire": false, "image": "https://media.bunnings.com.au/api/public/content/c7f5a5dfc4314a76af3095ea61e9b605?v=54a19270", "thumbnail": "https://media.bunnings.com.au/api/public/content/c7f5a5dfc4314a76af3095ea61e9b605?v=54a19270", "category_path": [ { "code": "tools", "name": "Tools", "path": "/tools" }, { "code": "power-tools", "name": "Power Tools", "path": "/tools/power-tools" }, { "code": "drills", "name": "Drills", "path": "/tools/power-tools/drills" } ] }, { "position": 2, "item_number": "0949092", "title": "Powerfit Workshop Vacuum 30-38L M-Class Plastic Bags - 3 Pack", "brand": "PowerFit", "brand_code": null, "url": "https://www.bunnings.com.au/powerfit-workshop-vacuum-30-38l-m-class-plastic-bags-3-pack_p0949092", "price": 21.99, "price_source": "search_index", "currency": "AUD", "unit_price": null, "sold_by_unit": "EA", "is_marketplace": false, "seller": null, "fulfilment_options": [ "In-Store", "Delivery", "Click & Collect" ], "is_special_order": false, "delivery_included": false, "promotions": null, "campaign": null, "key_selling_points": [ "Tear-resistant plastic design for enhanced durability", "Seals in debris for hygienic disposal", "Fits all RYOBI M-Class Workshop Vacuums and other leading M-class workshop vacuum brands" ], "search_index_rating": null, "search_index_review_count": null, "rating_scale": null, "variant_count": null, "colour_count": null, "new_arrival": false, "best_seller": false, "age_restricted": false, "for_hire": false, "image": "https://media.bunnings.com.au/api/public/content/eb9e5196d1a247c0826ee8c6dbb94b5a?v=6b5a2ee4", "thumbnail": "https://media.bunnings.com.au/api/public/content/eb9e5196d1a247c0826ee8c6dbb94b5a?v=6b5a2ee4", "category_path": [ { "code": "tools", "name": "Tools", "path": "/tools" }, { "code": "power-tools", "name": "Power Tools", "path": "/tools/power-tools" }, { "code": "drills", "name": "Drills", "path": "/tools/power-tools/drills" } ] }, { "position": 3, "item_number": "6330509", "title": "Ultra 13mm Keyless Drill Chuck", "brand": "Ultra", "brand_code": null, "url": "https://www.bunnings.com.au/ultra-13mm-keyless-drill-chuck_p6330509", "price": 27.95, "price_source": "search_index", "currency": "AUD", "unit_price": null, "sold_by_unit": "EA", "is_marketplace": false, "seller": null, "fulfilment_options": [ "In-Store", "Delivery", "Click & Collect" ], "is_special_order": false, "delivery_included": false, "promotions": null, "campaign": null, "key_selling_points": [ "Superior quality metal construction", "Ratchet locking of drill bits", "Common thread size" ], "search_index_rating": 4.34, "search_index_review_count": 6, "rating_scale": 5, "variant_count": null, "colour_count": null, "new_arrival": false, "best_seller": false, "age_restricted": false, "for_hire": false, "image": "https://media.bunnings.com.au/api/public/content/8a6f9b97b0e1440b9091f48729fa3ec1?v=9899d647", "thumbnail": "https://media.bunnings.com.au/api/public/content/8a6f9b97b0e1440b9091f48729fa3ec1?v=9899d647", "category_path": [ { "code": "tools", "name": "Tools", "path": "/tools" }, { "code": "tool-accessories", "name": "Tool Accessories", "path": "/tools/tool-accessories" }, { "code": "drill-bits", "name": "Drill Bits & Accessories", "path": "/tools/tool-accessories/drill-bits" } ] } ], "count": 36, "total_results": 238, "fallback_results_dropped": 0, "page": 1, "per_page": 36, "has_more": true, "duplicate_rows_dropped": 0, "did_you_mean": null, "site_redirect": null, "store": { "store_id": "7313", "name": "Alexandria", "pricing_region": "NSWMetro", "chosen_by": "postcode" }, "country": "au", "currency": "AUD", "sort": "price_asc", "applied_filters": { "seller": "all" } } }
How the Bunnings API works
Bunnings is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.
No OAuth app, no request signing, no per-site account. One key covers all 252 engines.
Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.
Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.
One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.
Price a shopping list at the stores near a job site
One search gives you Bunnings item numbers. The same numbers give you the price and stock at every nearby store, each in one call.
{"query": "treated pine 90x45", "postcode": "2000", "sort": "price_asc"}Priced for the store Bunnings assigns to Sydney 2000, cheapest first, with the price per metre where Bunnings publishes one (16 of 34 rows on 2026-09-15). Take results[].item_number.
{"item_number": "0539753", "postcode": "2000", "nearest": 4}The four nearest stores with their price, in-store stock and the aisle and bay to walk to.
{"store_id": "7313"}The chosen store's address, phone, opening hours and services.
Where an item is cheapest and in stock near you, and where to find it in the store - without mixing one region's price into another's.
curl -X POST https://api.reefapi.com/bunnings/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"cordless drill"}'{
"ok": true,
"data": { … },
"meta": {
"api": "bunnings",
"endpoint": "search",
"mode": "live",
"latency_ms": …,
"record_count": …
},
"error": null
}A Bunnings price belongs to a store, and so does the stock
Bunnings prices by region and counts stock per store. The same timber length costs a different amount in Melbourne and Sydney, and the same drill kit can be in aisle 19 at one store and aisle 21 at another. This engine always returns the store a price or stock figure is for, and lets you choose it.
| Item | Mentone VIC (store 6400) | Alexandria NSW (store 7313) |
|---|---|---|
| Treated pine length, I/N 8030089 | $28.94 | $26.73 |
| Ryobi 18V ONE+ Hammer Drill Power Up kit, I/N 0539753 - price | $199.00 | $199.00 |
| Same kit - in-store stock | 7, aisle 19 bay 2 | 2, aisle 21 bay 1 |
In a same-minute comparison of the first 36 'timber' results at both stores, 21 of the 30 items listed at both were priced differently. Stock counts and prices here are a 2026-09-15 snapshot and change daily.
Which price, which store, which seller, and what Bunnings leaves out
Two countries, six actions, prices in AUD and NZD. Measured on 2026-09-15 with 128 live calls across every action and both countries, and a 12-product check across six categories. Two of these lines go against us.
bunnings.com.au in AUD and bunnings.co.nz in NZD. Every live test ran in both; country accepts au or nz only.
Prices differ by region (21 of 30 shared timber items between a Victorian and a New South Wales store) and stock differs by store. Choose the store with store_id or postcode; the answer always says which store it is for.
Six products in Australia and New Zealand, including a Marketplace listing, matched the Bunnings product page on title, price, rating, review count, seller type, store and in-store stock, 6 of 6.
Marketplace listings carry the seller's name. The product record lists every seller's offer, marks the one Bunnings features and returns the cheapest, which can differ.
Search rows use the figure Bunnings' own search results show, which differed from the product page on 2 of 84 rows. live_prices true re-prices every row from the live product price.
Bunnings shows no struck-through price, so was_price is null. No barcode is published. The average rating and review count are returned, the reviews themselves are not. Weight was present on 8 of 12 verified products, manuals on 4, a unit price on 1; the rest are null, never guessed.
What people build with Bunnings
The jobs this data is most often used for.
endpoints
credits per call
Tradies and estimators check the price and in-store stock of a materials list at the stores near a job site before driving out.
Price-monitoring teams track Bunnings shelf prices per region for Australia and New Zealand, with unit prices for timber, paint and garden supplies.
Marketplace sellers see which competing Bunnings Marketplace offers sit on the same product and which one Bunnings features.
Store-locator and local-commerce apps list the nearest Bunnings with opening hours, services and click & collect.
What Bunnings data costs
The cheapest call here is 1 credit, so $15/mo (Pro) buys 10,000 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.
Full pricing →- 1,000 free credits on signup, no card
- One key, all 252 APIs, one credit pool
- Failed and blocked calls are never charged
- Credits roll over and never expire
Call it in two lines
Sign up, get 1,000 credits and one key that works on every engine. Then this is the whole protocol.
curl -X POST https://api.reefapi.com/bunnings/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"cordless drill"}'import requests
r = requests.post(
"https://api.reefapi.com/bunnings/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "cordless drill"
},
)
print(r.json()["data"])Have a question? We got answers.
The questions people actually ask before wiring up Bunnings.
Get a free key →Which countries and currencies does the Bunnings API cover?▾
Australia (bunnings.com.au, AUD) and New Zealand (bunnings.co.nz, NZD) - both run on the same Bunnings platform. Set country to au or nz; any other value returns INVALID_PARAM. Every live test ran in both countries.
Why does the price change when I change the store?▾
Bunnings sets prices per region. Every search row and product record is priced for one store, named in store (store_id, name, pricing_region and how it was chosen). Pass store_id, or a postcode to use the store Bunnings assigns to it; without either you get Bunnings' own default store (Mentone VIC in Australia).
Can I get stock for a specific store, and where the item is in the store?▾
Yes. product/detail returns in-store and click & collect stock for the chosen store, with the aisle and bay Bunnings publishes. product/stock checks one item across up to 10 store_ids, or the nearest stores to a postcode or coordinates, with each store's price and stock. Special-order products and items a store does not range come back as special_order or not_sold_at_store, never as a stock of 0.
Is the search price the same as the product page price?▾
Almost always. A search row carries the price Bunnings' own search results show, and that figure occasionally lags the product page: 2 of 84 rows measured on 2026-09-15 (for example $31.31 in search, $29.88 on the product page). Rows say price_source search_index. Pass live_prices true to re-price every row from the live product price; rows then say price_source live and keep search_index_price when the two differed. product/detail always uses the live price.
Does it cover Bunnings Marketplace sellers?▾
Yes. Marketplace products are flagged is_marketplace with the seller's name. product/detail lists every seller's offer with price, shipping and delivery window, marks the featured offer Bunnings shows first, and returns the cheapest offer price, because the featured offer is not always the only one. seller bunnings or marketplace filters search; by default Australia shows both, like the site, and New Zealand shows Bunnings' own range.
What happens when a search has no matches?▾
You get ok true with an empty result list. Bunnings' spelling suggestion comes back as did_you_mean (drlil gives drill). When Bunnings answers a nonsense query with loosely related products, those rows are dropped and counted in fallback_results_dropped; include_fallback_results true returns them separately. When Bunnings sends a keyword to a category page (paint, bbq), the matching products are still returned and site_redirect names that category.
What does Bunnings NOT publish?▾
A was-price or struck-through price (Bunnings runs everyday low pricing, so was_price is always null), member or trade prices, barcodes (gtin is null), and review texts - the average rating and review count are returned, the reviews themselves are not. On 12 verified products weight was published for 8, manuals for 4, a unit price for 1.
What is the Bunnings API?▾
Bunnings API is a ReefAPI endpoint group for australia and new zealand hardware: store prices, stock by store with aisle and bay, marketplace sellers. It returns live JSON through POST requests under /bunnings/v1.
Is the Bunnings API free to try?▾
Yes. ReefAPI starts with 1,000 free credits, no card required. Bunnings calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Bunnings login or account?▾
No login to Bunnings is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the Bunnings data?▾
The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the Bunnings API use?▾
Bunnings actions currently cost 1-2 credits per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.
Can I call Bunnings from an AI assistant or MCP client?▾
Yes. Connect ReefAPI once through MCP and your assistant can call bunnings actions with the same key, credit pool and JSON envelope used by normal REST requests.
Is the Bunnings API a Bunnings scraper?▾
It is the managed alternative to a DIY Bunnings scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same australia and new zealand hardware: store prices, stock by store with aisle and bay, marketplace sellers back as clean JSON.
91 E-commerce & Marketplaces APIs on the same key
One key, one credit pool, one response envelope. If you are pulling Bunnings, you are one call away from the rest of the category — no second contract, no second integration.
Need something this API does not do?
Name the endpoint, the field, or a source we do not carry yet. We ship new APIs every week and you would be first to get the key. Real people read every message and reply the same day.
Try it on your own data before you pay anything
The call above is the real endpoint, not a recording. A free key gives you 1,000 credits, the other 251 APIs, and the same envelope everywhere.
Endpoints, parameters and credit costs on this page are read from the live catalog and cannot drift from what the API accepts. Field notes were captured on 2026-09-15.