Woolworths Australia prices as JSON, with specials and multi-buys kept apart
The Woolworths API turns woolworths.com.au, Australia's largest supermarket, into clean JSON in seven actions: search, product/detail, product/reviews, deals, category, categories and suggest.
7 active endpoints. Every call is 1 credit.
- POST/woolworths/v1/search
- POST/woolworths/v1/product/detail
- POST/woolworths/v1/product/reviews
- POST/woolworths/v1/deals
- POST/woolworths/v1/category
- POST/woolworths/v1/categories
- POST/woolworths/v1/suggest
What Woolworths Australia endpoints does ReefAPI ship?
7 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.
Woolworths Australia API
3 of 7 endpoints, ready to run
Woolworths products for a keyword: shelf price, was-price and savings on specials, cup price, multi-buy offer, per-kg or variable-weight pricing, availability, star rating and the Everyday Market seller.
{ "ok": true, "meta": { "api": "woolworths", "endpoint": "search", "mode": "live", "latency_ms": 2790.2, "record_count": 16, "cache_hit": false }, "data": { "results": [ { "product_id": "36066", "title": "Arnott's Tim Tam Original Chocolate Biscuits 200g", "name": "Arnott's Tim Tam Original Chocolate Biscuits", "brand": "Arnott's", "package_size": "200g", "barcode": "9310072000282", "url": "https://www.woolworths.com.au/shop/productdetails/36066/arnott-s-tim-tam-original-chocolate-biscuits", "image": "https://cdn1.woolworths.media/content/wowproductimages/large/036066.jpg", "breadcrumb": [ { "level": "department", "id": "1_39FD49C", "name": "Pantry" }, { "level": "category", "id": null, "name": "Biscuits & Crackers" }, { "level": "subcategory", "id": null, "name": "Biscuits & Cookies" } ], "price": 6, "price_display": "$6.00", "currency": "AUD", "original_price": null, "original_price_display": null, "savings": null, "discount_percent": null, "on_special": false, "half_price": false, "member_price": null, "member_unit_price_text": null, "unit_price": 3, "unit_price_measure": "100G", "unit_price_text": "$3.00 / 100G", "sold_by": "piece", "price_per": "each", "increment_price": null, "increment_grams": null, "price_min": null, "price_max": null, "price_is_estimate": false, "approx_weight_grams": null, "multi_buy": null, "availability": "in_stock", "available": true, "in_stock": true, "next_available_date": "2026-09-18", "max_order_quantity": 36, "badges": [], "promotion_types": [], "rewards_points_offer": null, "new": false, "online_only": false, "marketplace": false, "seller": { "type": "retailer", "name": "Woolworths", "id": null, "delivery_fee": null, "free_shipping": null, "dispatch_note": null, "delivery_from": null, "delivery_to": null }, "has_variants": false, "sponsored": false, "fulfilment_store_id": "1101", "rating": 5, "rating_count": 2, "review_count": 2, "rating_scale": 5, "rating_distribution": { "1": 0, "2": 0, "3": 0, "4": 0, "5": 2 } }, { "product_id": "32257", "title": "Arnott's Tim Tam Double Chocolate Biscuits 200g", "name": "Arnott's Tim Tam Double Chocolate Biscuits", "brand": "Arnott's", "package_size": "200g", "barcode": "9310072013855", "url": "https://www.woolworths.com.au/shop/productdetails/32257/arnott-s-tim-tam-double-chocolate-biscuits", "image": "https://cdn1.woolworths.media/content/wowproductimages/large/032257.jpg", "breadcrumb": [ { "level": "department", "id": "1_717445A", "name": "Snacks & Confectionery" }, { "level": "category", "id": null, "name": "Biscuits & Crackers" }, { "level": "subcategory", "id": null, "name": "Biscuits & Cookies" } ], "price": 6, "price_display": "$6.00", "currency": "AUD", "original_price": null, "original_price_display": null, "savings": null, "discount_percent": null, "on_special": false, "half_price": false, "member_price": null, "member_unit_price_text": null, "unit_price": 3, "unit_price_measure": "100G", "unit_price_text": "$3.00 / 100G", "sold_by": "piece", "price_per": "each", "increment_price": null, "increment_grams": null, "price_min": null, "price_max": null, "price_is_estimate": false, "approx_weight_grams": null, "multi_buy": null, "availability": "in_stock", "available": true, "in_stock": true, "next_available_date": "2026-09-18", "max_order_quantity": 36, "badges": [], "promotion_types": [], "rewards_points_offer": null, "new": false, "online_only": false, "marketplace": false, "seller": { "type": "retailer", "name": "Woolworths", "id": null, "delivery_fee": null, "free_shipping": null, "dispatch_note": null, "delivery_from": null, "delivery_to": null }, "has_variants": false, "sponsored": false, "fulfilment_store_id": "1101", "rating": null, "rating_count": null, "review_count": null, "rating_scale": null, "rating_distribution": null }, { "product_id": "117833", "title": "Arnott's Tim Tam Chewy Caramel Chocolate Biscuits 175g", "name": "Arnott's Tim Tam Chewy Caramel Chocolate Biscuits", "brand": "Arnott's", "package_size": "175g", "barcode": "9310072001210", "url": "https://www.woolworths.com.au/shop/productdetails/117833/arnott-s-tim-tam-chewy-caramel-chocolate-biscuits", "image": "https://cdn1.woolworths.media/content/wowproductimages/large/117833.jpg", "breadcrumb": [ { "level": "department", "id": "1_717445A", "name": "Snacks & Confectionery" }, { "level": "category", "id": null, "name": "Biscuits & Crackers" }, { "level": "subcategory", "id": null, "name": "Biscuits & Cookies" } ], "price": 6, "price_display": "$6.00", "currency": "AUD", "original_price": null, "original_price_display": null, "savings": null, "discount_percent": null, "on_special": false, "half_price": false, "member_price": null, "member_unit_price_text": null, "unit_price": 3.43, "unit_price_measure": "100G", "unit_price_text": "$3.43 / 100G", "sold_by": "piece", "price_per": "each", "increment_price": null, "increment_grams": null, "price_min": null, "price_max": null, "price_is_estimate": false, "approx_weight_grams": null, "multi_buy": null, "availability": "in_stock", "available": true, "in_stock": true, "next_available_date": "2026-09-18", "max_order_quantity": 36, "badges": [], "promotion_types": [], "rewards_points_offer": null, "new": false, "online_only": false, "marketplace": false, "seller": { "type": "retailer", "name": "Woolworths", "id": null, "delivery_fee": null, "free_shipping": null, "dispatch_note": null, "delivery_from": null, "delivery_to": null }, "has_variants": false, "sponsored": false, "fulfilment_store_id": "1101", "rating": null, "rating_count": null, "review_count": null, "rating_scale": null, "rating_distribution": null } ], "count": 16, "total_results": 16, "page": 1, "page_size": 24, "page_count": 1, "sponsored_dropped": 0, "suggested_query": null, "corrections": [], "related_terms": [], "filters_available": { "departments": [ { "id": "1_717445A", "name": "Snacks & Confectionery", "count": 16 }, { "id": "1_39FD49C", "name": "Pantry", "count": 3 }, { "id": "1_A363395", "name": "Everyday Market", "count": 2 } ], "brands": [ { "name": "Arnotts", "value": "Arnotts", "count": 2 }, { "name": "Arnott's", "value": "Arnott's", "count": 14 } ] }, "query": "tim tam", "sort": "relevance" } }
How the Woolworths Australia API works
Woolworths Australia 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.
Track the Woolworths half-price catalogue with real savings
Half Price changes every week and a tracker needs the was-price, not only today's price. Three calls cover a department.
{"type": "half_price", "department": "1_717445A"}Snacks & Confectionery half-price products (145 on 2026-09-15) with price, original_price, savings and cup price. Promoted placements are removed, so every row is a real special.
{"product_id": "460245"}The full record for one special: 3.50 AUD down from 7.00, $2.50 / 100G, ingredients, allergens, nutrition panel and rating.
{"product_id": "888140", "sort": "highest_rating"}The reviews behind a rating, with their source - useful when a special coincides with a rating drop.
A weekly half-price list where every product carries its real saving, its unit price on today's price and its rating, for one credit per call.
curl -X POST https://api.reefapi.com/woolworths/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"milk"}'{
"ok": true,
"data": { … },
"meta": {
"api": "woolworths",
"endpoint": "search",
"mode": "live",
"latency_ms": …,
"record_count": …
},
"error": null
}Which Woolworths price is which - specials, cup prices, per-kg and variable weight
Woolworths prices a product five different ways, and a tracker that stores one number mixes them. The API names each case. Measured on 2026-09-15.
| Woolworths product | price | What else comes back | How to read it |
|---|---|---|---|
| Maltesers Milk Chocolate Snack & Share Bag 140g | 3.50 AUD | original_price 7.00, savings 3.50, half_price true | On special: store price and original_price together |
| KitKat Milk Chocolate Mini Bars 154g 11 pack | 7.50 AUD | multi_buy: 2 for 12.00, 6.00 each | The multi-buy is never subtracted from price |
| Leg Ham Shaved From The Deli per 100g | 19.90 AUD | price_per kg, increment_price 1.99 per 100 g | Sold by weight: price is per kg |
| Woolworths Lamb Midloins Chops 450g - 800g | 20.80 AUD | price_min 11.70, price_max 20.80, price_is_estimate true | Variable-weight pack: price is the heaviest pack |
| Woolworths Full Cream Milk 3L | 4.95 AUD | unit_price 1.65, unit_price_text $1.65 / 1L | Plain shelf price; original_price is null |
unit_price is the cup price for the price you pay today. On listing pages Woolworths also carries a second unit-price string that is still based on the was-price for products on special (Caramello Koala: $2.50 / 100G versus $4.17 / 100G); the API does not use it.
Which price, which store, which products, and what Woolworths does not publish
woolworths.com.au only - Australia, AUD, Woolworths' own range plus Everyday Market sellers. Measured on 2026-09-15 across 43 products in 18 departments, 20 searches, 48 controlled cases and an independent source comparison on 7 products. Four of these lines go against us.
This engine reads woolworths.com.au. Woolworths New Zealand runs a different website and is not covered. Every price is AUD with a display string next to the number ("$4.95").
price is what the product costs today; original_price and savings appear only when it is on special; multi_buy holds offers such as 2 for $12.00 and is never subtracted. On 7 of 7 products compared against an independent read of the source, title, price, was-price, availability and rating matched.
Deli and meat sold by weight return price_per kg plus the 100 g step price (Leg Ham Shaved: 19.90 per kg, 1.99 per 100 g). Variable-weight packs return price_min and price_max (lamb chops 450g - 800g: 11.70 to 20.80) with price_is_estimate true.
Woolworths' own product data carries an empty rating block for every product, so the API returns the page's ratings instead - rating, rating_count and the 5-to-1 star distribution. No ratings means null, not 0.
chocolate: 2,804 results, 464 with specials_only, 174 with brand=Cadbury. Price and name sorts came back in order. Promoted products placed at fixed positions are removed by default and counted in sponsored_dropped.
Price, was-price, unit price and multi-buy were checked between the search row and the full product record for 43 available products: 43 of 43 agreed.
Woolworths published no Everyday Rewards member price in about 1,000 products checked on 2026-09-15, so member_price is null. Points offers are returned in rewards_points_offer.
Woolworths prices and stock follow the store that fulfils the order. The API returns what a visitor with no delivery address sees and names the store in fulfilment_store_id. Prices for a specific address or store are not offered.
Nutrition was filled on 21 of 43 sampled products, ingredients on 30, Health Star Rating on 19 - missing on pet, baby, cleaning and most general merchandise, and on every Everyday Market product, which also has no barcode, unit price or ratings.
brand=Cadbury returned 174 results and brand=cadbury none. Use the spelling from a row's brand field or from filters_available.brands.
What people build with Woolworths Australia
The jobs this data is most often used for.
endpoints
credit per call
Australian grocery price trackers record price, original_price and multi_buy separately, so specials and multi-buy offers never get mixed into the shelf price.
FMCG brands monitor Half Price and Buy More Save More coverage of their products by department with deals.
Retail analysts compare unit prices like for like with unit_price and handle per-kg and variable-weight products correctly.
Nutrition and food apps pull ingredients, allergens, Health Star Rating and the nutrition panel by barcode-matched Woolworths product.
What Woolworths Australia 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/woolworths/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"milk"}'import requests
r = requests.post(
"https://api.reefapi.com/woolworths/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "milk"
},
)
print(r.json()["data"])Have a question? We got answers.
The questions people actually ask before wiring up Woolworths Australia.
Get a free key →Where do the star ratings come from?▾
From the ratings Woolworths shows on the product page. The rating block inside Woolworths' product data is empty for every product - it was 0 on 7 of 7 products compared on 2026-09-15 while the page showed real ratings on 6 of them - so the API reads the page's own ratings instead. Woolworths Full Cream Milk 3L: 2.67 out of 5 from 6 ratings. A product with no ratings returns rating null, never 0.
What does specials_only include?▾
Exactly what the Specials toggle on woolworths.com.au includes: products on a price special and products with a Buy More Save More multi-buy offer. For chocolate on 2026-09-15 it cut 2,804 results to 464; of the first 24, 19 were on special and 5 had a multi-buy offer. Each row says which through on_special, half_price and multi_buy.
Which specials pages can I read?▾
deals reads Woolworths' own pages, optionally for one department: Half Price (1,770 products on 2026-09-15, every row with its was-price), Lower Shelf Price (916), Buy More Save More (1,115, the rows carrying their multi-buy offer), Everyday Low Price (3,001) and Seasonal Price (199). Half Price for Snacks & Confectionery alone returned 145.
Are sponsored products mixed into the results?▾
Not unless you ask. Woolworths places Promoted products at fixed positions on search, category and specials pages regardless of your sort - 8 on the first chocolate page. The API removes them by default and counts them in sponsored_dropped; include_sponsored=true keeps them, flagged sponsored: true.
How do Everyday Market products differ?▾
They are sold and shipped by third-party sellers. seller.type reads marketplace, with the seller's name, the delivery fee (10.00 AUD flat on the products checked), free_shipping and the delivery window. Woolworths publishes no barcode, unit price, ratings or reviews for them, so those fields are null. Size or colour options come back as variants with their own ids and prices - a mattress returned five sizes.
Can I get reviews?▾
Yes. product/reviews returns the reviews on the product page, newest first or by highest or lowest rating, up to 50 per page: star rating, text, reviewer nickname, date and source. Some reviews are syndicated from partner retailers and say so in syndicated_from. Woolworths Full Cream Milk 3L had 6 reviews on 2026-09-15.
Does the brand filter need exact spelling?▾
Yes - Woolworths matches the brand exactly, including capitals. brand=Cadbury returned 174 chocolate results, all Cadbury; brand=cadbury returned none. Use the brand exactly as a row's brand field shows it, or pick it from filters_available.brands on a category page.
What does Woolworths NOT publish?▾
No Everyday Rewards member price for a visitor who is not signed in - none appeared in about 1,000 products checked on 2026-09-15, so member_price is null; points offers such as Boost to collect 10x points come back in rewards_points_offer. No stock count, only availability and an order limit. Prices and availability are those of the default store for a visitor with no delivery address. Nutrition, ingredients and allergens are published for food: nutrition was filled on 21 of 43 sampled products, missing on pet, baby, cleaning and personal care items.
What is the Woolworths Australia API?▾
Woolworths Australia API is a ReefAPI endpoint group for australian supermarket prices, specials, unit prices, ratings and nutrition panels. It returns live JSON through POST requests under /woolworths/v1.
Is the Woolworths Australia API free to try?▾
Yes. ReefAPI starts with 1,000 free credits, no card required. Woolworths Australia calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Woolworths Australia login or account?▾
No login to Woolworths Australia 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 Woolworths Australia 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 Woolworths Australia API use?▾
Woolworths Australia actions currently cost 1 credit per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.
Can I call Woolworths Australia from an AI assistant or MCP client?▾
Yes. Connect ReefAPI once through MCP and your assistant can call woolworths actions with the same key, credit pool and JSON envelope used by normal REST requests.
91 E-commerce & Marketplaces APIs on the same key
One key, one credit pool, one response envelope. If you are pulling Woolworths Australia, 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.