Coles, Woolworths & ALDI Scraper — AUS Grocery Prices avatar

Coles, Woolworths & ALDI Scraper — AUS Grocery Prices

Pricing

from $0.70 / 1,000 products

Go to Apify Store
Coles, Woolworths & ALDI Scraper — AUS Grocery Prices

Coles, Woolworths & ALDI Scraper — AUS Grocery Prices

Scrape Coles, Woolworths and ALDI Australia: price, was-price, unit price, specials and multi-buys, availability, brand, size, category, barcode and image for any search, category, specials list or product. Price-change monitor mode.

Pricing

from $0.70 / 1,000 products

Rating

0.0

(0)

Developer

Dustin Griffie

Dustin Griffie

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 hours ago

Last modified

Share

Coles, Woolworths & ALDI Scraper — AU Grocery Prices

Get grocery prices from Coles, Woolworths and ALDI Australia in one run. For every product you get the shelf price, was-price, unit price, special or multi-buy offer, availability, brand, pack size, category, image and link. Search all three supermarkets for the same terms to compare prices, pull a whole category or the weekly specials, or watch a list of products and get only the prices that changed.

What you can do

  • Compare prices for "milk", "coffee beans" or any search term at Coles, Woolworths and ALDI side by side.
  • Download a category such as Coles Pantry, Woolworths Dairy, Eggs & Fridge or ALDI Freezer: paste the category URL.
  • Get this week's specials: half-price, price drops and multi-buys, with the saving and promo text.
  • Look up specific products by URL or ID (coles:7265535, woolworths:88436, aldi:000000000000399309).
  • Monitor prices: schedule the same input daily or weekly. Monitor mode returns only products whose price, was-price, special or stock changed, and you pay only for those.

How to scrape Coles, Woolworths and ALDI prices

  1. Pick the supermarkets.
  2. Enter search terms and/or paste Coles, Woolworths or ALDI URLs (search, category, specials or product pages), or product IDs.
  3. Optional: tick Specials only, turn on All current specials, or turn on the Price-change monitor.
  4. Click Start, then download the results as JSON, CSV or Excel, or read them through the API.

Input

FieldWhat it does
retailersAny of coles, woolworths, aldi. Search terms run at each selected supermarket.
searchTermsWords to search for, e.g. milk, coffee beans, nappies.
startUrlsColes, Woolworths or ALDI URLs: search results, category (/browse/..., /shop/browse/..., /products/.../k/...), specials (/on-special, /shop/browse/specials) or a product page.
productIdscoles:<id>, woolworths:<stockcode>, aldi:<sku>. A bare number works when only one supermarket is selected.
scrapeSpecialsAdds each selected supermarket's specials list (Coles On Special, every Woolworths department's specials, ALDI Super Savers and Limited Time Only).
specialsOnlyKeep only products that are on special (for searches and categories).
maxItemsPerTargetProducts per search term, category or specials list (default 100). In monitor mode this counts products checked.
maxItemsHard limit for the whole run (0 = none).
includeSponsoredKeep the sponsored placements Woolworths mixes into results (off by default).
monitorMode, monitorIncludeNew, monitorStoreNamePrice-change monitor (see below).
proxyConfiguration, fallbackToResidentialApify datacenter proxy by default, with an automatic switch to Australian residential proxies if a supermarket keeps blocking.

Example:

{
"retailers": ["coles", "woolworths", "aldi"],
"searchTerms": ["milk", "coffee beans"],
"startUrls": [{ "url": "https://www.coles.com.au/browse/pantry" }],
"productIds": ["woolworths:88436"],
"maxItemsPerTarget": 50
}

Output

One row per product:

{
"recordType": "product",
"retailer": "woolworths",
"productId": "348593",
"name": "KitKat Milk Chocolate Mini Bars 154g 11 pack",
"brand": "KitKat",
"size": "154g 11 pack",
"price": 3.75,
"wasPrice": 7.5,
"savingsAmount": 3.75,
"isOnSpecial": true,
"promoType": "HALF_PRICE",
"promoText": "Save $3.75",
"multibuy": null,
"unitPrice": 2.44,
"unitPriceText": "$2.44 / 100G",
"unitMeasure": "100G",
"isAvailable": true,
"availabilityText": "Available",
"category": "Share Packs",
"categoryPath": "Snacks & Confectionery > Buckets & Treats > Share Packs",
"barcode": "9300605152397",
"imageUrl": "https://cdn1.woolworths.media/content/wowproductimages/large/348593.jpg",
"url": "https://www.woolworths.com.au/shop/productdetails/348593/kitkat-milk-chocolate-mini-bars",
"searchQuery": "chocolate",
"sourceType": "search",
"position": 5,
"scrapedAt": "2026-10-24T20:48:12.155Z"
}
  • Prices are in AUD. wasPrice and savingsAmount are set only when the supermarket shows a saving. multibuy holds offers like Buy 2 for $6 as { "quantity": 2, "unitPrice": 3, "text": "Buy 2 for $6" } (unitPrice = price each when you buy the quantity).
  • unitPrice is the supermarket's comparison price for unitMeasure (for example per 1L, 100g or 1EA).
  • barcode is only published by Woolworths.
  • In monitor mode each row also has changeType (new, price, wasPrice, special_started, special_ended, promo, back_in_stock, unavailable), previousPrice, priceChange and priceChangePct.

Status rows (recordType: "status") explain every input that gave no products: invalid, not_found, no_results, partial or failed, with a message. They are free. Run totals, request counts and the proxy used per supermarket are in the RUN_STATS key-value record.

The dataset has ready-made views: Products, Specials, Price changes (monitor) and Statuses.

Price-change monitor

Turn on monitorMode and schedule the same input (for example weekly). The Actor remembers the last price of every product in a named key-value store (monitorStoreName). Each run returns only:

  • products whose price, was-price, special/promo or availability changed, with the previous price and the change, and
  • products seen for the first time (turn off monitorIncludeNew to skip them).

Unchanged products are not saved and not charged. Use a different monitorStoreName for each watch list.

How much does it cost to scrape Coles, Woolworths and ALDI?

Pay per event: you pay only for products saved to the dataset.

EventFreeStarterScaleBusiness and up
product: one product row$0.001$0.0009$0.0008$0.0007
Actor start$0.00005$0.00005$0.00005$0.00005

Example: 1,000 products cost $1.00 on the Free plan and $0.70 on the Business plan. Status rows, duplicates, skipped sponsored items and unchanged products in monitor mode are free. The Actor respects your Max cost per run and stops cleanly at the limit without saving anything it can't charge for.

Tips & limits

  • Prices are the supermarkets' national online prices with no store or postcode selected. In-store prices and some regional prices (for example in WA, NT or Tasmania) can differ. Store- or postcode-specific pricing is not supported.
  • ALDI prices are the ALDI Australia website's walk-in (in-store) prices. ALDI rarely shows was-prices. ALDI Special Buys (weekly non-food deals) pages aren't supported; Super Savers and Limited Time Only are.
  • Woolworths mixes sponsored products into results. They are skipped by default so they don't repeat across searches; turn on includeSponsored to keep them (marked isSponsored: true).
  • Coles category pages list specials first, so a capped category run is weighted toward specials. Raise maxItemsPerTarget to get the whole category.
  • A product found by several inputs is saved (and charged) once per run.
  • Speed: about 1,000 products per 30–50 seconds with the default settings.

This Actor reads publicly available product and price information from coles.com.au, woolworths.com.au and aldi.com.au, the same data any visitor sees without signing in. It is not affiliated with, endorsed by or sponsored by Coles Group, Woolworths Group or ALDI. "Coles", "Woolworths" and "ALDI" are trademarks of their owners and are used only to describe the data source.

You are responsible for using the data lawfully and in line with each website's terms of use and the laws that apply to you. Keep request volumes reasonable, don't republish product images or descriptions as your own, and don't use the data to mislead consumers. Prices change often; always check the supermarket's website before relying on a price. If in doubt, ask a lawyer.

FAQ

Do I need a proxy? No setup is needed. The Actor uses Apify's datacenter proxy and switches to Australian residential proxies automatically if a supermarket starts blocking (keep Fall back to residential proxies on).

Can I get every product a supermarket sells? Yes: run its top-level categories with a high maxItemsPerTarget. For example, the whole ALDI range is about 3,300 products.

Why is a product missing? It may be out of the national online range, sponsored (Woolworths) or already saved by another input in the same run. Check the status rows and RUN_STATS.