curl --request POST \
--url https://api.scrapeunblocker.com/groceries/woolworths \
--header 'x-scrapeunblocker-key: <api-key>'import requests
url = "https://api.scrapeunblocker.com/groceries/woolworths"
headers = {"x-scrapeunblocker-key": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {'x-scrapeunblocker-key': '<api-key>'}};
fetch('https://api.scrapeunblocker.com/groceries/woolworths', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Scrape Woolworths (Australia) groceries
Woolworths Australia (woolworths.com.au) products as JSON. mode=search&query=, mode=category&category= and mode=specials return products: id (stockcode), name, brand, size, url, barcode, price, wasPrice, onSale, savings, promotion (type half_price / special / multibuy / offer, text, multibuy quantity and price), unitPrice (price, per, text), soldBy, inStock, available, purchaseLimit, isNew, sponsored, image, categories, healthStarRating and rating, plus totalResults, totalPages and nextPage. mode=product&product= returns product with those fields and description, ingredients, allergens (contains, mayContain, freeFrom), dietary, nutrition (per serving and per 100 g / mL), servingSize, servingsPerPack, storage, countryOfOrigin, department, aisle, images and variants. Prices are Woolworths’ online prices in AUD. Listings collect up to max_results from page on, billed one unit per page.
curl --request POST \
--url https://api.scrapeunblocker.com/groceries/woolworths \
--header 'x-scrapeunblocker-key: <api-key>'import requests
url = "https://api.scrapeunblocker.com/groceries/woolworths"
headers = {"x-scrapeunblocker-key": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {'x-scrapeunblocker-key': '<api-key>'}};
fetch('https://api.scrapeunblocker.com/groceries/woolworths', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
Your ScrapeUnblocker API key. Apply on every request.
Query Parameters
'search' (default): products matching query. 'category': a category listing. 'specials': a specials page (Half Price unless category names another). 'product': one product with nutrition and ingredients. Defaults to 'product' when product is given and to 'category' when category is.
What to search for (mode=search), e.g. 'milk', 'tim tam', 'chicken breast'.
mode=category: a browse link (https://www.woolworths.com.au/shop/browse/dairy-eggs-fridge/milk), its path ('dairy-eggs-fridge/milk') or a category id ('1_6E4F4E4'). mode=specials: the specials page - 'half-price' (default), 'lower-shelf-price', 'everyday-low-price', 'seasonal-price', 'buy-more-save-more', 'online-only-specials' or a specials link.
mode=product: a stockcode ('888137') or a product link (https://www.woolworths.com.au/shop/productdetails/888137/woolworths-full-cream-milk).
Listing order: relevance, price_asc, price_desc, unit_price_asc, unit_price_desc, name.
mode=search: only products on special.
1-based listing page to start from (36 products per page).
Products to collect across pages, 1-360. Each page fetched is billed one unit.
Proxy country the request is sent from (ISO-2, e.g. 'AU', 'US'). Leave blank: Woolworths answers every country, so the load spreads over all exits.
Response
JSON with products (listings) or product. A search with no matches answers 200 with an empty products list; one Woolworths shows only to signed-in shoppers (tobacco) also carries warnings.

