Coles Australia Scraper avatar

Coles Australia Scraper

Pricing

from $2.00 / 1,000 product scrapeds

Go to Apify Store
Coles Australia Scraper

Coles Australia Scraper

Scrape Coles Australia grocery products by category, search term or product URL: price, was-price, specials, multibuys, unit price, brand, size, images, nutrition.

Pricing

from $2.00 / 1,000 product scrapeds

Rating

0.0

(0)

Developer

Trevor Ortega

Trevor Ortega

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Scrape Coles Australia (coles.com.au) grocery products by category, search term or product URL: current price, was-price and savings, specials and half-price deals, multibuy promotions ("Buy 4 for $6.50"), unit price per kg/L, product ID, brand, package size, images, availability and category, plus ingredients, nutrition, allergens, country of origin and barcode on request. Track grocery prices, monitor promotions, build price-comparison datasets or feed a product catalogue.

Built for reliability: it reads the same page data the Coles website renders (no headless browser, no CSS selectors, no login), with browser TLS fingerprinting, automatic detection of Coles' Imperva bot challenge and retries on a fresh proxy session. You pay only for the products you get.

What data does Coles Australia Scraper extract?

Every product (category, search or product mode):

FieldDescription
productId, stockcodeColes product ID (the number at the end of the product URL); stockcode is the same value, named like the Woolworths scraper for easy joins
name, shortNameProduct name with size ("Coles Bananas approx. 170g") and without
urlProduct page URL
brandBrand ("Coles", "Pauls", …)
packageSizePack size ("2L", "approx. 170g", "1 Each")
priceCurrent shelf price in AUD (number)
wasPricePrevious price when the product is marked down, else null
savingsAmount, savingsPercentwasPrice - price (0 when not on special) and the percentage Coles shows
isOnSpecial, isHalfPrice, isOnlineSpecialSpecial, half-price and online-only special flags
promotionType, specialTypeColes promotion codes, e.g. SPECIAL, MULTI_SAVE
specialTextSaving badge such as "Save $3.00"
promotionOffer text such as "Buy 4 for $6.50" or "Pick any 2 for $5"
multibuy{quantity, price, unitPriceText} for multibuy deals, else null
unitPrice, unitMeasure, unitPriceTextComparative unit price, e.g. 4.9, "1KG", "$4.90 / 1KG"
isWeightedTrue for produce priced by weight (price is for the approximate pack weight)
isAvailable, availabilityType, availableQuantityOnline availability, channel (InStoreAndOnline, …) and stock quantity signal
supplyLimit, promotionalLimit, isAgeRestrictedPurchase limits and liquor/tobacco flag
isSponsoredAd / cross-sell tile flag (these are skipped unless Include sponsored tiles is on)
imageUrl, imagesMain product image and all images
department, category, subcategory, breadcrumbsColes taxonomy, e.g. "Fruit & Vegetables" > "Fruit" > "Bananas"
descriptionShort Coles description line
sourceUrl, searchTerm, scrapedAtCategory URL or search term that produced the item, and the run timestamp

With Include product details on (or in product mode), each item also gets:

FieldDescription
descriptionLong product description
ingredientsIngredient list
allergens, allergenStatementAllergen list and the original statement
nutrition, servingSize, servingsPerPack[{name, per100g, perServe}] nutrition table and serving information
dietaryClaims, lifestyle"Gluten Free", "Vegan", …
countryOfOrigin, countryOfOriginText, australianIngredientsPercentCountry-of-origin label ("Made in Australia from at least 90% Australian ingredients")
storageInstructions, directions, productWarningsUsage and safety information where Coles publishes it
barcodeGTIN / EAN barcode when exposed on the page
additionalInfoAll information panels as [{title, text}]
imagesFull gallery images

How to use Coles Australia Scraper

  1. Pick a Mode:
    • Category: paste listing URLs such as https://www.coles.com.au/browse/fruit-vegetables, .../browse/dairy-eggs-fridge/milk, https://www.coles.com.au/on-special?filter_Special=halfprice or .../browse/down-down. Every page is followed.
    • Search: enter terms such as almond milk or dishwasher tablets.
    • Product: paste product URLs or product IDs to get single products with full details.
  2. Set Max items to cap the run (and the cost).
  3. Optionally switch on Include product details, Only specials, or change the Sort order (price low to high, name, newest, specials first).
  4. Click Start. Results appear in the Dataset tab; export as JSON, CSV or Excel, or read them through the API.

Input example

{
"mode": "category",
"categoryUrls": ["https://www.coles.com.au/on-special?filter_Special=halfprice"],
"maxItems": 500,
"onlySpecials": true,
"includeDetails": false
}

Search mode:

{
"mode": "search",
"searchTerms": ["almond milk", "oat milk"],
"maxItems": 100,
"sort": "priceAscending"
}

Output example

{
"productId": 6979376,
"stockcode": 6979376,
"name": "Coles Gold Kiwifruit 1 Each",
"shortName": "Coles Gold Kiwifruit",
"url": "https://www.coles.com.au/product/coles-gold-kiwifruit-1-each-6979376",
"brand": "Coles",
"packageSize": "1 Each",
"price": 1.8,
"wasPrice": null,
"savingsAmount": 0.0,
"isOnSpecial": true,
"isHalfPrice": false,
"isOnlineSpecial": false,
"promotionType": "SPECIAL",
"specialType": "MULTI_SAVE",
"savingsPercent": null,
"specialText": null,
"priceDescription": null,
"promotion": "Buy 4 for $6.50",
"multibuy": {
"quantity": 4,
"price": 6.5,
"unitPriceText": "$1.62 / 1EA"
},
"unitPrice": 1.8,
"unitMeasure": "1EA",
"unitPriceText": "$1.80 / 1EA",
"isWeighted": false,
"isAvailable": true,
"availabilityType": "InStoreAndOnline",
"availableQuantity": 2518,
"supplyLimit": 50,
"promotionalLimit": 50,
"isAgeRestricted": false,
"isSponsored": false,
"imageUrl": "https://cdn.productimages.coles.com.au/productimages/6/6979376.jpg",
"images": [
"https://cdn.productimages.coles.com.au/productimages/6/6979376.jpg"
],
"department": "Fruit & Vegetables",
"category": "Fruit",
"subcategory": "Kiwi Fruit",
"breadcrumbs": [
"Fruit & Vegetables",
"Fruit",
"Kiwi Fruit"
],
"description": "KIWIFRUIT:GOLD 1 EACH",
"sourceUrl": "https://www.coles.com.au/browse/fruit-vegetables",
"searchTerm": null,
"scrapedAt": "2026-09-14T05:04:00+00:00"
}

How to scrape Coles specials and half-price deals

Use category mode with https://www.coles.com.au/on-special (all specials), https://www.coles.com.au/on-special?filter_Special=halfprice (half price) or ...?filter_Special=multibuy, or any category with Only specials on. wasPrice, savingsAmount, isHalfPrice and specialText tell you the size of a price cut; promotion and multibuy capture "Buy 2 for $X" deals. Run it daily on a schedule to build a price history.

How to get Coles prices per kg or per litre

Every item carries unitPrice and unitMeasure (for example 4.9 and 1KG for bananas) plus the display string unitPriceText. Produce sold by weight has isWeighted: true: price is for the approximate weight in packageSize ("approx. 170g") and the unit price is the per-kg shelf price.

Compare Coles and Woolworths prices

This Actor is the Coles half of a matched pair. The Woolworths Australia Scraper uses the same input (mode, categoryUrls, searchTerms, productUrls, maxItems, includeDetails, onlySpecials) and the same output field names (name, brand, packageSize, price, wasPrice, savingsAmount, isOnSpecial, promotion, unitPrice, unitMeasure, stockcode, …), so you can run the same search terms on both and put the datasets side by side in one spreadsheet. unitPrice + unitMeasure is the fairest comparison across different pack sizes.

How to track a specific product's price

Use product mode with the product URL or ID (8150288). Each run returns the current price, wasPrice, specials and availability plus ingredients, nutrition and origin. Schedule the Actor and diff the dataset over time.

Does it work without login or a browser?

Yes. The Actor only reads public pages and never logs in. Coles uses Imperva bot protection; when a request is challenged, the Actor detects it and retries on a new proxy session with a back-off, which is why Apify Proxy is on by default. If a run logs repeated challenges, switch the proxy to residential (Australia). Prices are the standard online prices Coles shows before a store or delivery address is chosen; store-specific pricing is not covered.

Proxy note

Coles uses Imperva bot protection that blocks datacenter IP addresses, so the Actor uses Apify residential proxies located in Australia by default. Proxy traffic is billed to your Apify account at the standard residential rate.

Pricing

Pay per result: a small fee per product saved, plus a small extra fee per product page opened when Include product details is on or in product mode. There is no subscription and no start fee; Apify's free plan is enough to try it.

Integrations and API

Use the run in Zapier, Make, n8n, Google Sheets, or call it from Python/Node with the Apify client. See the API tab for ready-made snippets.

This Actor collects only publicly available, non-personal product data (prices, descriptions, nutrition). It does not log in and does not collect any user or reviewer information. You are responsible for how you use the data and for complying with Coles' terms and applicable law.

Support

Found a bug or need a field added? Open an issue in the Issues tab; it is usually answered within a day.