Australian Supermarkets Scraper - Woolworths & ALDI Prices avatar

Australian Supermarkets Scraper - Woolworths & ALDI Prices

Pricing

from $0.27 / 1,000 products

Go to Apify Store
Australian Supermarkets Scraper - Woolworths & ALDI Prices

Australian Supermarkets Scraper - Woolworths & ALDI Prices

Search Woolworths and ALDI the way you would on their websites, or paste category and product links, and get one row per product: price, was-price, unit price, size, special, availability, image and link. Coles isn't covered yet. No account needed.

Pricing

from $0.27 / 1,000 products

Rating

0.0

(0)

Developer

Dami's Studio

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Search Woolworths and ALDI the way you would on their websites, or paste a category or product link, and get one row per product: name, brand, size, price, was-price and saving, unit price, availability, image and link. Both stores answer the same search in one run, so a price comparison is a sort away.

Two things to know first. Coles isn't covered yet; Coles links are skipped and not charged. And Woolworths shows prices for the store picked by your suburb. Nobody picks one here, so you get the prices Woolworths shows when no suburb is set, and each row says which store that was (storeId). Your local shelf can differ.

InputSearch words, or Woolworths and ALDI category, product and search links
OutputOne row per product: name, brand, size, price, was-price, saving, unit price, special, availability, categories, barcode (Woolworths), image, link
Ceiling2,000 products per search or category, 20,000 per run
SpeedRoughly 600 to 1,100 Woolworths products a minute; ALDI is quicker
Account neededNone from you
Price$0.28 per 1,000 products, flat on every plan. The free plan's $5 a month covers about 17,800

๐Ÿ” What Australian Supermarkets Scraper does

You give it what you'd type into the search box, full cream milk or vegemite, and it runs that search at Woolworths and at ALDI and returns every product each store lists, in the store's own order. Or paste links: a category page returns the products in it, a product page returns that product.

Prices are numbers, not text: 4.5, not "$4.50". Specials come with the old price and the saving worked out. The unit price comes both ways, 2.25 plus 1L, and as the shelf label prints it, $2.25 / 1L, so you can compare a 2L bottle with a 3L one without doing the sums.

Woolworths also lists products that other businesses sell through its website. On a search for milk that was two listings in three, mostly bulk packs and things that aren't groceries. You get Woolworths' own range unless you tick Include other sellers at Woolworths.

๐Ÿ“‹ What data you get from each Woolworths and ALDI product

What you getField
Which store, and what found itstore, searchTerm, inputUrl, position
The store's product number, name, brand and pack sizeproductId, name, brand, size
Price, old price, saving and the special's wordingprice, wasPrice, savings, onSpecial, promotion
Unit price, as a number and as printedunitPrice, unitPriceUnit, unitPriceText
Sold by weight (the price is for a typical pack)soldByWeight
Availabilityavailable, inStock, availableFrom
The store's own aisles for the productcategories
Barcode, Woolworths onlybarcode
Sponsored listing and marketplace seller flags, Woolworths onlysponsored, marketplace
The store whose prices these are, Woolworths onlystoreId
Product page and pictureurl, imageUrl

โ–ถ๏ธ How to scrape Woolworths and ALDI prices

  1. Open Australian Supermarkets Scraper and click Try for free.
  2. Type your searches into Search words, one per line, and tick the stores under Stores to search.
  3. Or paste links copied from woolworths.com.au or aldi.com.au into Category or product links.
  4. Set Products per search or category while you're testing, since you pay per product.
  5. Click Start, then download the table as CSV, Excel or JSON, or read it through the Apify API.

Start it with everything empty and you get one labelled sample row, free, so you can see the columns first.

๐Ÿ’ฐ How much does it cost to scrape Woolworths and ALDI prices?

$0.28 per 1,000 products. Flat on every Apify plan, no volume tiers. On the free plan, the $5 Apify gives you each month covers about 17,800 products.

You pay for products delivered and nothing else. A search that finds nothing, a misspelt search, a product link that no longer exists, a Coles link and the sample row are all free. A product the store lists twice in one search, which Woolworths does with sponsored products, is returned and charged once.

๐Ÿ“ฅ What you give it

{
"searchTerms": ["full cream milk", "vegemite"],
"stores": ["woolworths", "aldi"],
"urls": [
"https://www.woolworths.com.au/shop/browse/dairy-eggs-fridge/milk",
"https://www.aldi.com.au/products/dairy-eggs-fridge/k/960000000"
],
"maxResultsPerSearch": 100
}
FieldDefaultWhat it is
searchTermsnoneSearches, one per line, run at each ticked store. Up to 200.
storesbothwoolworths, aldi, or both. Applies to search words only.
urlsnoneWoolworths or ALDI links: a category page, a product page or a search results page. Up to 500.
includeMarketplacefalseAlso return products other businesses sell through the Woolworths website.
maxResultsPerSearch100The most products from one search at one store, or from one category link. Up to 2,000.
maxResults5000The most products in the whole run. Up to 20,000.

A link from anywhere else gets a free row saying it was skipped, and the rest of the run carries on.

๐Ÿ“ค What you get back

A real row from a run on 3 October 2026:

{
"recordType": "product",
"store": "Woolworths",
"searchTerm": "milk",
"inputUrl": null,
"position": 9,
"productId": "44528",
"name": "Norco Full Cream Milk 2L",
"brand": "Norco",
"size": "2L",
"price": 4.5,
"wasPrice": 5.05,
"onSpecial": true,
"savings": 0.55,
"promotion": "Save $0.55",
"unitPrice": 2.25,
"unitPriceUnit": "1L",
"unitPriceText": "$2.25 / 1L",
"soldByWeight": false,
"available": true,
"inStock": true,
"availableFrom": null,
"categories": ["Dairy, Eggs & Fridge", "Milk", "Full Cream Milk"],
"url": "https://www.woolworths.com.au/shop/productdetails/44528/norco-full-cream-milk",
"imageUrl": "https://cdn1.woolworths.media/content/wowproductimages/large/044528.jpg",
"barcode": "9322042000048",
"sponsored": false,
"marketplace": false,
"storeId": "1101",
"currency": "AUD",
"scrapedAt": "2026-10-03T16:03:05.288Z"
}
FieldHow to read it
priceDollars, as the store shows it today. For meat ALDI sells by weight it's the price of a typical pack, and unitPrice is the per-kilo price. A product Woolworths lists as unavailable comes back with price: null and available: false.
wasPrice, savingsOnly on a special; null otherwise.
positionWhere the product sat in that store's results for that search, from 1.
inStockWoolworths says; ALDI doesn't publish stock, so it's null there.
availableFromALDI's date for Special Buys that go on sale on a set day.
storeIdThe Woolworths store these prices belong to. Listings from other sellers carry their own number. null for ALDI, which lists one price per product online.
sponsoredWoolworths mixes paid listings into its results. They're real products at real prices; filter them out if you only want the plain search.
marketplacetrue on a listing from another seller, which only appears when you ask for them.

๐Ÿงพ Reading the output

Three kinds of row can land in your dataset, and recordType tells them apart.

RowHow to spot itBilled
A productrecordType: "product"yes
The sample rowrecordType: "sample", _sample: trueno
A note about one search or linkrecordType: "diagnostic", _diagnostic: true, an errorCodeno

Filter on recordType == "product" and you have your products. The notes say:

CodeWhat it means
NO_RESULTSThe store has nothing for that search or link.
DIFFERENT_SEARCHThe store didn't recognise the words and showed results for its own correction instead, named in suggestion. Nothing from that search is returned or charged; search for the suggestion if it's what you meant.
NOT_FOUNDThe product link no longer leads to a product.
NOT_COVEREDA Coles link. Coles isn't covered yet.
BAD_INPUTA setting or link that can't be used, or a Woolworths category that doesn't exist.
NOT_ANSWEREDThe store didn't answer that search this time. Run it again later.
PARTIALA later page of results didn't come back. What came before it is in the dataset.
NOT_LOOKED_UPThe run stopped before reaching it: your spending limit, the run's total, or its timeout.
MAX_CHARGE_TOO_LOWYour spending limit for the run doesn't cover one product.

RUN_REPORT in the run's storage lists every search and link with its outcome and how many products the store said it had.

๐Ÿ’ก What people use it for

  • Comparing a shopping list across both stores. Run the list as search words, then sort each search by unitPrice.
  • Tracking prices over time. Schedule the same searches weekly and keep the rows; productId stays the same between runs.
  • Watching specials in one aisle. Paste a category link and keep the rows where onSpecial is true.
  • Feeding a budgeting or meal-planning app that needs real prices, unit prices and pictures.

A weekly price check in three steps:

  1. Put your regular items into Search words with Products per search or category at 10.
  2. Schedule the run for the same time every week.
  3. Join each week's rows on store and productId and look at price and wasPrice.

๐Ÿšง What it does not do

  • No Coles. Coles links get a free row and nothing else.
  • No choice of suburb or store. Woolworths prices are the ones it shows with no suburb set, and storeId says which store that is.
  • No stock counts. Woolworths says in stock or not; ALDI says nothing about stock.
  • No reviews, nutrition panels or ingredients.
  • No online orders at ALDI. ALDI Australia doesn't sell groceries online, so its rows are the prices it lists on its website.
  • Search results follow the store's own search, sponsored listings included. A broad word like milk brings back milk chocolate and meal-replacement shakes too.
  • Long Woolworths searches come up a little short. Its result pages repeat some products, so a search it says has 689 products returned 621 different ones. Reading past its last page brings back nothing new.

๐Ÿงญ Which supermarket scraper do you need?

If you wantUse
Woolworths and ALDI products and pricesThis one
An alert when a product page on an online shop changes price or stockProduct Price & Stock Monitor
Supermarket locations and ratings from Google MapsGoogle Maps Scraper
What shoppers say about one storeGoogle Maps Reviews Scraper
The same kind of product rows from AmazonAmazon Scraper
Products and prices from a Shopify shopShopify Products Scraper

โ“ Questions people ask

Do I need a Woolworths or ALDI account?

No. It reads what anyone can see on the two websites without logging in.

Why is a Woolworths price different from what I see in the app?

The app shows prices for the store your suburb or delivery area picks. This reads the prices Woolworths shows when no suburb is set, and storeId names that store. To check a row, open its link in a private browser window without choosing a suburb.

Can it scrape Coles prices?

Not yet. Coles links are accepted and skipped with a free note, so a list that mixes all three stores still runs.

Can I call it from code or connect it to an AI assistant?

Yes. The API tab has ready-made code for Python, JavaScript and the command line. For Claude, ChatGPT or another MCP client, connect https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/australian-supermarkets-scraper. Either way the run happens on your Apify account at the same price.

It reads public product pages, the same ones any shopper sees, and no personal data. Apify's write-up on the legality of web scraping is a good starting point, and we are not lawyers.

๐Ÿ†˜ If something breaks

Open the Issues tab on the actor page. Include your searches or links and the run ID, and the log is enough for us to see what happened.