Coles Australia Scraper
Pricing
from $2.00 / 1,000 product scrapeds
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
Maintained by CommunityActor 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):
| Field | Description |
|---|---|
productId, stockcode | Coles 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, shortName | Product name with size ("Coles Bananas approx. 170g") and without |
url | Product page URL |
brand | Brand ("Coles", "Pauls", …) |
packageSize | Pack size ("2L", "approx. 170g", "1 Each") |
price | Current shelf price in AUD (number) |
wasPrice | Previous price when the product is marked down, else null |
savingsAmount, savingsPercent | wasPrice - price (0 when not on special) and the percentage Coles shows |
isOnSpecial, isHalfPrice, isOnlineSpecial | Special, half-price and online-only special flags |
promotionType, specialType | Coles promotion codes, e.g. SPECIAL, MULTI_SAVE |
specialText | Saving badge such as "Save $3.00" |
promotion | Offer 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, unitPriceText | Comparative unit price, e.g. 4.9, "1KG", "$4.90 / 1KG" |
isWeighted | True for produce priced by weight (price is for the approximate pack weight) |
isAvailable, availabilityType, availableQuantity | Online availability, channel (InStoreAndOnline, …) and stock quantity signal |
supplyLimit, promotionalLimit, isAgeRestricted | Purchase limits and liquor/tobacco flag |
isSponsored | Ad / cross-sell tile flag (these are skipped unless Include sponsored tiles is on) |
imageUrl, images | Main product image and all images |
department, category, subcategory, breadcrumbs | Coles taxonomy, e.g. "Fruit & Vegetables" > "Fruit" > "Bananas" |
description | Short Coles description line |
sourceUrl, searchTerm, scrapedAt | Category 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:
| Field | Description |
|---|---|
description | Long product description |
ingredients | Ingredient list |
allergens, allergenStatement | Allergen list and the original statement |
nutrition, servingSize, servingsPerPack | [{name, per100g, perServe}] nutrition table and serving information |
dietaryClaims, lifestyle | "Gluten Free", "Vegan", … |
countryOfOrigin, countryOfOriginText, australianIngredientsPercent | Country-of-origin label ("Made in Australia from at least 90% Australian ingredients") |
storageInstructions, directions, productWarnings | Usage and safety information where Coles publishes it |
barcode | GTIN / EAN barcode when exposed on the page |
additionalInfo | All information panels as [{title, text}] |
images | Full gallery images |
How to use Coles Australia Scraper
- 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=halfpriceor.../browse/down-down. Every page is followed. - Search: enter terms such as
almond milkordishwasher tablets. - Product: paste product URLs or product IDs to get single products with full details.
- Category: paste listing URLs such as
- Set Max items to cap the run (and the cost).
- Optionally switch on Include product details, Only specials, or change the Sort order (price low to high, name, newest, specials first).
- 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.
Is it legal to scrape Coles?
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.