Coles, Woolworths & Aldi Scraper - Australia Grocery Prices
Pricing
from $1.20 / 1,000 products
Coles, Woolworths & Aldi Scraper - Australia Grocery Prices
Give supermarket categories (e.g. pantry, dairy-eggs-fridge) and get every product's price, was price, unit price, special type and stock from Coles, Woolworths and Aldi Australia in one flat table.
Pricing
from $1.20 / 1,000 products
Rating
0.0
(0)
Developer
SUNGHWAN CHO
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Australia Supermarket Prices: Coles, Woolworths & Aldi
Give supermarket categories (for example pantry or dairy-eggs-fridge) and get one flat row per product with its current price, was price, unit price, special type and stock status from Coles, Woolworths and Aldi Australia, all in the same columns.
Live example: this week's Coles vs Woolworths vs Aldi specials is rebuilt every Wednesday from this Actor's output.
Use it to track grocery prices and specials every week, compare the three chains side by side, or feed an Australian price-comparison app, retail analytics model or AI agent.
What you get
One row per product per store:
- Store, product ID, name, brand, size
- Price, was price, discount %
- Unit price and its unit (
$1.73per100g) - On special yes/no, special type (
HALF_PRICE,PERCENT_OFF,MULTI_BUY,PRICE_DROP, …) and the store's own special text (1/2 Price,Buy 2 for $6) - In stock (Coles and Woolworths)
- Department and aisle
- Product URL and image URL
- Barcode (GTIN): Woolworths only
Prices are numbers in AUD. A value the store does not provide is null, never a missing field.
No login, no API key and no browser, so runs are fast and cheap.
Input
| Field | Description |
|---|---|
categories | Departments to list, one per line. The same name works for every store (fruit-vegetables finds Coles "Fruit & Vegetables", Woolworths "Fruit & Veg" and Aldi "Fruits & Vegetables"). Add a subcategory with a slash (pantry/breakfast), paste a store category URL, or write all for every department. Default: dairy-eggs-fridge, fruit-vegetables, pantry. |
stores | coles, woolworths, aldi. Default: coles. |
maxItems | Maximum products per category for each store. 0 = the whole category. Default 100. |
onlyOnSpecial | Keep only products on special. Products filtered out are not saved and not charged. |
proxyConfiguration | Default Apify Proxy (datacenter). If a store refuses a request, the retry goes through Australian residential proxy automatically. |
Common department names: fruit-vegetables, meat-seafood, dairy-eggs-fridge, bakery, deli, pantry, frozen, chips-chocolates-snacks, drinks, liquor, health-beauty, cleaning-laundry, baby, pet. If a name does not match, the run summary lists each store's exact department names.
{"stores": ["coles", "woolworths", "aldi"],"categories": ["dairy-eggs-fridge", "pantry"],"maxItems": 0,"onlyOnSpecial": true}
Why no keyword search? Coles and Woolworths disallow their search pages in robots.txt, so this Actor lists categories only. A whole department (for example all 2,263 Coles dairy products) is usually what price trackers want anyway.
Output
{"store": "coles","productId": "6545966","name": "Special Fried Rice Pouch","brand": "Ben's Original","size": "250g","price": 2,"wasPrice": 4,"unitPrice": 0.8,"unitOfMeasure": "100g","isOnSpecial": true,"specialType": "HALF_PRICE","specialText": "1/2 Price","discountPct": 50,"inStock": true,"category": "Pantry","subcategory": "Pasta, Rice, Legumes & Grains","url": "https://www.coles.com.au/product/ben-s-original-special-fried-rice-pouch-250g-6545966","imageUrl": "https://cdn.productimages.coles.com.au/productimages/6/6545966.jpg","barcode": null,"requestedCategory": "pantry","scrapedAt": "2026-10-11T11:47:11.680Z","schemaVersion": 1}
| Field | Notes |
|---|---|
price | Current shelf price in AUD. null when the store shows no price (product unavailable). |
wasPrice | Only when the store shows a higher previous price; otherwise null. |
unitPrice, unitOfMeasure | The store's comparison price, e.g. 0.8 per 100g, 21.25 per 1kg, 1.75 per 1l. |
specialType | HALF_PRICE, PERCENT_OFF, MULTI_BUY, PRICE_DROP (was price shown), SPECIAL (store flags a special without price details), Aldi SUPER_SAVER / LOWER_PRICE, or null. |
inStock | Coles: availability at Coles' default online store. Woolworths: online stock. Aldi sells in store only, so always null. |
barcode | Woolworths GTIN. Coles and Aldi listings do not include barcodes (null). |
category, subcategory | The department that was listed and the product's aisle in it. |
Each product appears once per store per run, even when it is listed in several requested departments.
Run summary
The key-value store record RUN_SUMMARY (free) shows, per store and per category: completed, partial, failed, notFound or budgetLimited, products saved, the store's own product count, coverage, and request statistics (refused requests, retries). A failed category or store does not stop the others.
Pricing
Pay per product row saved. Failed or blocked categories, filtered-out products and the run summary are free. Set Maximum cost per run to cap a run; the Actor stops cleanly at the limit and says so in the status message.
Tips
- Whole departments: Coles pantry has about 6,000 products, Woolworths pantry about 8,500. Use
maxItems: 0with a few departments, orallfor the full catalogue (Coles lists about 30,000 products across its departments). - With
maxItemsset, products come in the store's own order (on Coles this usually puts specials first). Whole-category Coles runs use a price sort so pages do not shift while the run is going. - Run on a schedule (for example every Wednesday, when Coles and Woolworths specials change) and compare
pricebystore+productIdover time.
Limitations
- Prices are the stores' online prices for their default location; some products are priced differently in store or by state.
- Coles and Woolworths use bot protection. The Actor sends spaced requests and retries refused ones with a new proxy session, but it does not solve captchas. If a store keeps refusing, that store's remaining categories are reported as
failed(free) and the other stores continue. If every store refuses, the run still ends normally with zero products and a status message saying so (nothing is charged); only wrong input (unknown store or category) fails the run. - Matching the same product across stores is not included: only Woolworths provides a barcode.
- Data is collected from public pages. Check the stores' terms before reusing names, descriptions or images commercially.