Australian Grocery Prices: Coles & ALDI avatar

Australian Grocery Prices: Coles & ALDI

Pricing

from $1.00 / 1,000 product saveds

Go to Apify Store
Australian Grocery Prices: Coles & ALDI

Australian Grocery Prices: Coles & ALDI

Coles and ALDI Australia prices in one clean table: price, was-price, specials, unit price normalised to $/kg, $/L or each, category, image and link. Search, categories, specials or product URLs, with optional day-to-day price-change tracking. Woolworths in beta.

Pricing

from $1.00 / 1,000 product saveds

Rating

0.0

(0)

Developer

Fourteener Devs

Fourteener Devs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

What does Australian Grocery Prices do?

Australian Grocery Prices collects product prices from Coles and ALDI Australia and returns them in one clean table with the same columns for both stores: price, was-price, specials, the shelf unit price, and a unit price converted to $/kg, $/L or per item so you can compare stores directly. Point it at search terms, categories, the specials pages or individual products, and schedule it to track price changes day to day.

No coding, no browser extensions, no logins. Results download as Excel, CSV or JSON, or flow straight into Google Sheets, Make, Zapier or your own app through the API.

Woolworths is available as a beta option (see below).

Why use it?

  • 🛒 Compare a shopping list across stores. Search "milk 2l", "olive oil" or "nappies" at Coles and ALDI in one run and sort by standardUnitPrice to find the cheapest per kilo or litre.
  • 🏷️ Get every special. The full Coles specials list (half price, multi-buy, price drops) and every announced ALDI Special Buys drop, including upcoming dates.
  • 📈 Monitor prices automatically. Turn on Only save new products and price changes, schedule a daily run, and you only receive (and only pay for) products whose price or special changed.
  • 🧱 Feed apps and research. Price-comparison apps, budgeting tools, deal newsletters, cost-of-living and inflation research, and brand and category teams watching their shelf.

What data does it collect?

FieldExampleNotes
retailerColesColes, ALDI or Woolworths
productId8150288The store's own product number
displayNameColes Full Cream Milk 3LBrand + name + size
name, brand, sizeFull Cream Milk, Coles, 3LAs the store lists them
price4.95Current price in AUD
wasPrice, savings6.70, 0.70Filled when the product is reduced
isOnSpecial, promotiontrue, 1/2 PriceHalf price, multi-buy, ALDI Special Buy and similar
unitPrice, unitPriceText1.65, $1.65/1LThe unit price shown on the shelf
standardUnitPrice, standardUnit1.65, LNormalised to $/kg, $/L, each, $/m or per 100 sheets
inStocktrueColes and Woolworths online availability (ALDI does not sell groceries online)
availableFrom2026-10-21ALDI Special Buys on-sale date
category, categoryPathDairy, Eggs & FridgeThe store's own category tree
gtin9300601186945Barcode, on Coles product-page results
detailsProduct-page results only: description, plus ingredients, allergens and country of origin for Coles
imageUrl, urlProduct image and page
sourceType, sourcesearch, milkWhat found it: search, url or specials, and the term or URL
scrapedAt2026-10-17T18:51:33ZWhen the price was read

With price tracking on, every row also gets previousPrice, previousWasPrice, priceChange, priceChangePercent, priceChanged, isNewProduct and lastSeenAt.

Sample output

[
{
"retailer": "Coles",
"productId": "1338352",
"name": "Protein Snack Dutch Chocolate",
"brand": "Rokeby",
"size": "160g",
"displayName": "Rokeby Protein Snack Dutch Chocolate 160g",
"price": 1.55,
"wasPrice": 3.15,
"savings": 1.6,
"isOnSpecial": true,
"promotion": "1/2 Price | save $1.60",
"unitPrice": 0.97,
"unitPriceText": "$0.97/100g",
"standardUnitPrice": 9.7,
"standardUnit": "kg",
"currency": "AUD",
"inStock": true,
"availableFrom": null,
"category": "Dairy, Eggs & Fridge",
"categoryPath": [
"Dairy, Eggs & Fridge",
"Dairy Desserts",
"Chilled Dairy Desserts"
],
"gtin": null,
"imageUrl": "https://productimages.coles.com.au/productimages/1/1338352.jpg",
"url": "https://www.coles.com.au/product/rokeby-protein-snack-dutch-chocolate-160g-1338352",
"sourceType": "url",
"source": "https://www.coles.com.au/browse/dairy-eggs-fridge",
"scrapedAt": "2026-10-17T18:51:33Z"
},
{
"retailer": "ALDI",
"productId": "000000000000398691",
"name": "Light Milk 2L",
"brand": "FARMDALE",
"size": "2 l",
"displayName": "FARMDALE Light Milk 2L",
"price": 3.39,
"wasPrice": null,
"savings": null,
"isOnSpecial": false,
"promotion": null,
"unitPrice": 1.7,
"unitPriceText": "$1.70 per 1 L",
"standardUnitPrice": 1.7,
"standardUnit": "L",
"currency": "AUD",
"inStock": null,
"availableFrom": null,
"category": "Dairy, Eggs & Fridge",
"categoryPath": [
"Dairy, Eggs & Fridge",
"Milk"
],
"gtin": null,
"imageUrl": "https://dm.apac.cms.aldi.cx/is/image/aldiprodapac/product/jpg/scaleWidth/600/93645b60-eb11-4046-b28e-2b441f8585a4/farmdale-light-milk-2l",
"url": "https://www.aldi.com.au/product/farmdale-light-milk-2l-000000000000398691",
"sourceType": "search",
"source": "milk",
"scrapedAt": "2026-10-17T18:51:33Z"
}
]

How to use it

  1. Click Try for free.
  2. Add search terms (one per line), or paste start URLs from coles.com.au or aldi.com.au, or tick Scrape all current specials.
  3. Pick the supermarkets and click Start. Results appear in the Prices tab as they arrive.

By default each search term, URL or specials list stops at 100 products per supermarket, which keeps first runs cheap. Set Max products per source to 0 to collect everything, for example the full specials lists.

Example inputs

Compare a shopping list across Coles and ALDI

{ "searchTerms": ["full cream milk 2l", "free range eggs", "olive oil"], "retailers": ["coles", "aldi"], "maxItemsPerSource": 30 }

Coles dairy specials plus every announced ALDI Special Buy

{ "startUrls": [{ "url": "https://www.coles.com.au/on-special/dairy-eggs-fridge" }, { "url": "https://www.aldi.com.au/special-buys" }], "maxItemsPerSource": 0 }

Daily price watch on specific products (schedule it every morning)

{
"startUrls": [
{ "url": "https://www.coles.com.au/product/coles-full-cream-milk-3l-8150288" },
{ "url": "https://www.aldi.com.au/product/farmdale-light-milk-2l-000000000000398691" }
],
"onlyChanged": true
}

Which URLs work?

StoreSupported pages
ColesCategories (/browse/...), specials (/on-special, /on-special/<category>), search (/search/products?q=...), products (/product/...)
ALDICategories (/products/.../k/...), Special Buys (/special-buys, /special-buys/<date>), search (/results?q=...), products (/product/...)
Woolworths (beta)Search (/shop/search/products?searchTerm=...)

Coles only lists the first ~5,000 products of any listing. When a category or the specials list is bigger, the Actor automatically walks its sub-categories instead. In testing, the full Coles specials list (about 7,800 products) took around 5 minutes and returned 98% of the count Coles shows.

How much does it cost?

You pay per product saved: $1 per 1,000 products. Platform usage is included, and Apify's standard run-start fee is a fraction of a cent.

RunProductsCost
3 search terms × 2 stores, 30 results each~180about $0.18
All ALDI Special Buys (this week and upcoming)~250about $0.25
Full Coles specials list (Max products per source set to 0)~7,800about $8
Daily watch of 200 products with Only changesonly the products that changedcents per day: specials mostly change once a week

Apify's free plan includes monthly credit, enough for thousands of products. Set a maximum cost per run in the run options and the Actor stops cleanly when it reaches it, and you are never charged beyond it. Duplicates found by several search terms are removed before saving, so you don't pay twice for the same product.

Price tracking

Turn on Track price changes between runs and the Actor remembers the last price of every product it sees in a storage on your own Apify account (au-grocery-price-history by default). Each row then shows the previous price and the change.

Turn on Only save new products and price changes to receive only what moved. The first run saves everything as a baseline; from then on a daily scheduled run returns just the price drops, rises and specials that started or ended. Use different storage names to keep separate watch lists apart.

Woolworths (beta)

Woolworths blocks requests from cloud servers, so this option sends its requests through Apify's Australian residential proxy. It is slower than Coles and ALDI and currently supports search terms and search URLs only (no full specials list yet). Select Woolworths (beta) under Supermarkets to try it.

Integrations and API

Use the results anywhere: export to Excel, CSV, JSON or HTML; send them to Google Sheets, Slack, Make, Zapier or Airbyte with Apify integrations; or call the Actor from your own code with the Apify API and the Python or JavaScript client.

FAQ

Is it legal to collect these prices? The Actor reads only public product and price information that any visitor sees without logging in, and it collects no personal data. It identifies itself as an automated tool rather than pretending to be a browser, keeps its request rate low, and backs off when a site asks it to slow down. You are responsible for how you use the data; if you republish it, check the retailers' terms first. This Actor is not affiliated with, endorsed by or sponsored by Coles, ALDI or Woolworths.

Are these in-store prices? They are the prices on each store's website at the moment of the run. Coles online prices can differ slightly by region and from some in-store prices. ALDI prices are the same nationwide for most products.

Why is inStock empty for ALDI? ALDI Australia does not sell groceries online, so its site has no stock level. Special Buys have an availableFrom date instead.

Something isn't working. Open an issue on the Actor's Issues tab with your run link and we'll look at it quickly. Store websites change; fixes ship fast.

Changelog

  • 1.0 First release: Coles and ALDI search, categories, specials, Special Buys and product pages; normalised unit prices; price-change tracking; Woolworths beta.