Coles Australia Scraper: Products, Prices, Specials & Stock avatar

Coles Australia Scraper: Products, Prices, Specials & Stock

Pricing

from $1.80 / 1,000 product records

Go to Apify Store
Coles Australia Scraper: Products, Prices, Specials & Stock

Coles Australia Scraper: Products, Prices, Specials & Stock

Scrape product data, live prices, discounts, weekly specials, and stock levels from Coles Australia (coles.com.au). Search by keyword, walk category and specials URLs, or look up specific SKUs. Get brand, pack size, aisle location, purchase limits, and store-specific pricing by Coles store ID.

Pricing

from $1.80 / 1,000 product records

Rating

5.0

(1)

Developer

GetAScraper

GetAScraper

Maintained by Community

Actor stats

0

Bookmarked

11

Total users

5

Monthly active users

3 hours ago

Last modified

Share

πŸ‡¦πŸ‡Ί Coles Australia Scraper: Products, Prices, Specials & Stock

Coles prices you can actually compare
Scrape Coles Australia products with a true per-kg or per-L price already worked out, honest specials math, and optional alerts when a price or stock level moves.
πŸ“ True unit pricing
A real price per kg or per L on every row, not a label that mixes per-100g and per-kg listings.
🏷️ Honest specials math
A markdown only shows as a markdown when the original price genuinely beats today's price.
πŸ”” Price & stock alerts
Turn on change tracking for new, dropped, risen, and restocked items on every scheduled run.
πŸ“¦ Full stock detail
Purchase limits, available quantity, and stock channel on every row.

Point this scraper at any Coles search term, category page, or product SKU. It returns clean pricing, was/now markdown discounts, a normalized unit price, stock availability, and full product details. No login required.

πŸ” What does this actor do?

Coles is one of Australia's two largest supermarket chains, with more than 800 stores. This scraper pulls structured product data from Coles Australia (coles.com.au) so you can track prices, specials, and availability at scale.

You can scrape three ways: by keyword search, by pasting category or weekly specials URLs, or by feeding a list of product SKUs. Results download as JSON, CSV, Excel, or XML.

πŸ’‘ Who uses this?

  • I am a pricing analyst at a competing grocery brand. Every morning I need to know exactly what Coles charges per kilo on my category, not just the sticker price, before I set today's price match.
  • I am a category manager at an FMCG supplier. I need to know which of my SKUs just went on markdown and by how much, without opening dozens of product pages by hand.
  • I am a data journalist covering cost of living. I track a weekly grocery basket and need true per-kg and per-L prices on staples like milk, bread, and eggs, not numbers that mix per-100g and per-kg listings.
  • I am an online reseller. I want an alert the moment a product goes on markdown or comes back in stock, not a reason to keep refreshing the page.

πŸš€ How to use

STEP 1
Choose your scope
Search a keyword, paste a category or specials URL, or drop in a SKU list.
STEP 2
Get comparable data
Every row lands with a true per-kg or per-L price and clean specials math, ready to sort.
STEP 3
Track what changes
Turn on change monitoring to see only what's new, dropped, risen, or restocked on repeat runs.

πŸ“₯ Input

FieldTypeRequiredDescription
scrapeModeenumYesHow to find products: searchKeyword, providedUrls, or skuList.
searchQuerystringNoSearch term, product name, or barcode. Used in keyword search mode.
startUrlsarray of URLsNoColes search, category, or weekly specials URLs. Used in category mode.
skuListarrayNoSpecific Coles product SKU IDs to scrape. Used in SKU list mode.
includeDescriptionbooleanNoInclude the full product description text. Default: true.
maxItemsintegerNoMaximum number of products to scrape per run. Default: 25.
maxRequestsPerCrawlintegerNoMaximum pages to load per run. Set to 0 for no limit.
monitorModeenumNosnapshot (default) returns current data every run. changes compares against the last run of the same Watchlist name and adds change fields to every row.
stateNamestringNoWatchlist name that separates independent change-tracking scopes. Only used when monitorMode is changes.
onlyChangedbooleanNoWhen monitorMode is changes, emit only rows that changed since the last run. Default: false.
proxyConfigurationproxyNoDatacenter proxies are the default. Switch to an Australian residential proxy only if a high-volume run is challenged.

πŸ“Š Data table

FieldTypeDescription
product_idstringUnique Coles product SKU.
namestringProduct name as listed on Coles.
brandstring | nullBrand name, when published by the source.
descriptionstringFull product description text.
sizestring | nullPack size or volume, for example "2L", when published.
availabilityboolean | nullWhether the product is currently in stock, when published.
availability_typestring | nullStock channel, for example "InStoreAndOnline", when published.
available_quantityinteger | nullUnits currently available, including a genuine 0 for an out-of-stock item.
pricenumber | nullCurrent retail price.
original_pricenumber | nullPre-discount "was" price, only when the source published a real one.
on_specialbooleanWhether original_price genuinely exceeds price.
discount_amountnumber | nulloriginal_price minus price, only when on_special is true.
discount_percentnumber | nullDiscount as a percentage of original_price, only when on_special is true.
currencystringCurrency code, always AUD.
comparablestringThe unit price exactly as Coles displays it, for example "$3.39/ 100g".
unit_pricenumber | nullThe numeric unit price behind comparable.
unit_price_quantitynumber | nullThe quantity that unit_price is per, for example 100.
unit_price_unitstring | nullThe unit that unit_price is per, for example "g".
unit_price_basisstring | nullNormalized comparison basis: kg, L, or ea.
price_per_base_unitnumber | nullThe true price per full unit_price_basis unit, always comparable across products, unlike comparable, which mixes per-100g and per-1kg displays.
image_urlstring | nullFull-resolution product image URL.
categorystringTop-level Coles category for the product.
urlstringDirect link to the Coles product page.
scraped_atstringTimestamp when the record was extracted.
retail_limitinteger | nullMaximum units a shopper can buy.
promotional_limitinteger | nullPurchase limit that applies during a promotion.
online_specialboolean | nullWhether the item is an online-only special.
sub_categorystring | nullMore specific category below the top level.
class_namestring | nullColes product classification label.
trade_profit_centrestring | nullColes's internal merchandise grouping, e.g. "DAIRY".
category_groupstring | nullA broader grouping above category.
change_typestringOnly present in changes mode: NEW, PRICE_DROP, PRICE_RISE, BACK_IN_STOCK, OUT_OF_STOCK, or UNCHANGED.
old_pricenumber | nullOnly present in changes mode: the price from the previous run.
price_deltanumber | nullOnly present in changes mode: price minus old_price.
price_delta_pctnumber | nullOnly present in changes mode: price_delta as a percentage of old_price.

You can download the dataset in JSON, HTML, CSV, or Excel from the Output tab of any run.

πŸ“€ Sample output

{
"product_id": "8150288",
"name": "Full Cream Milk",
"brand": "Coles",
"description": "Coles Full Cream Milk | 3L",
"size": "3L",
"availability": true,
"availability_type": "InStoreAndOnline",
"available_quantity": 245,
"price": 4.95,
"currency": "AUD",
"on_special": false,
"comparable": "$1.65/ 1L",
"unit_price": 1.65,
"unit_price_quantity": 1,
"unit_price_unit": "l",
"unit_price_basis": "L",
"price_per_base_unit": 1.65,
"image_url": "https://productimages.coles.com.au/productimages/8/8150288.jpg",
"category": "MILK",
"url": "https://www.coles.com.au/product/8150288",
"scraped_at": "2026-09-08T12:00:00.000Z",
"retail_limit": 20,
"promotional_limit": 12,
"online_special": false,
"sub_category": "WHITE MILK",
"class_name": "FULL CREAM",
"trade_profit_centre": "DAIRY",
"category_group": "DAIRY"
}

πŸ’° Pricing

Pricing is pay per result. You are charged only for products successfully written to your dataset. Empty runs and blocked requests cost nothing. There are no monthly subscriptions or minimum commitments.

⭐ Enjoying Coles Australia Scraper?

⭐ ⭐ ⭐ ⭐ ⭐
One run just told you which Coles price actually wins, not just which one looks cheapest.
A 5-star rating takes 10 seconds and helps other pricing analysts and category managers find this actor. Your feedback also tells us what to build next.
β˜…Β Β Rate this Actor on Apify

✨ Tips

  • Track weekly specials. Paste a specials URL like the half-price page as a start URL to capture every markdown in one run.
  • Compare prices fairly. Sort or filter on price_per_base_unit, not price or the raw comparable string. Coles displays some products per-100g and others per-1kg, so the sticker numbers alone aren't comparable.
  • Get alerted, not just logged. Set monitorMode to changes and schedule the run. Each run after the first only reports what actually moved.
  • Start small. Set a low maxItems for your first run to confirm the output matches what you need before scaling up.

❓ FAQ

Which Coles pages can I scrape?

You can scrape keyword search results, category and browse pages, weekly specials pages, and individual product SKUs. Pick the mode that matches your input.

Can I get prices for a specific store or region?

No, this actor does not support pinning a specific Coles store. Coles resolves store-specific pricing automatically based on network location, and there is no way to override that from a scraper input. Every run reflects whatever store Coles resolves for that run.

Why is there no in-store aisle location field?

Coles's own product data confirms this isn't published online for any product. The field that would carry it is a placeholder message telling shoppers to ask staff in-store, so no scraper can extract data the source doesn't have.

How fresh is the data?

Every run fetches live data directly from Coles. Results reflect the prices, specials, and stock shown on the site at the moment the run executes.

This actor reads publicly available product pages, the same pages any shopper can open without logging in. You are responsible for complying with Coles' terms of service and applicable laws. For questions or custom fields, contact the author at devanshtiwari365@gmail.com.

πŸ”— Other actors