Coles Scraper - Prices, Specials, Stock & Catalog
Pricing
from $2.00 / 1,000 results
Coles Scraper - Prices, Specials, Stock & Catalog
Scrape Coles.com.au groceries: product name, brand, size, price, was-price & savings (specials), unit price, stock availability and quantity, and category catalog. By search term or category. No login, no API key, no browser.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
Haketa
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
18 hours ago
Last modified
Categories
Features
Share
Coles Scraper — Prices, Specials, Stock & Catalog 🛒
Scrape Coles, Australia's leading supermarket chain, for live grocery prices, weekly specials, unit pricing, stock availability, and full category catalogs. This high-performance Coles scraper transforms Coles searches and browse directories into structured retail intelligence — product title, brand, size, current price, was-price and dollar savings, unit economics (price per 100g/L), stock availability and on-hand quantity, department taxonomy, high-res images, and product URLs.
Export your Coles data effortlessly to JSON, CSV, Excel (XLSX), XML, HTML, or integrate directly with the Apify REST API.
Built for retail FMCG analysts, pricing intelligence platforms, supermarket price-comparison apps, brand manufacturers auditing digital shelf compliance, deal aggregators, and e-commerce researchers tracking the Australian grocery market.
⚡ At a glance
| Feature | Specification |
|---|---|
| Target Retailer | Coles Supermarkets (Australia #2 Grocer) |
| Input Methods | Keywords (searchTerms), Department slugs/URLs (categories) |
| Output Formats | JSON, CSV, XML, Excel (XLSX), HTML Table, RSS |
| Performance | Pure HTTP engine (~20-45 seconds for 100+ grocery items) |
| Pagination Support | 1,000+ products per query with deep multi-page pagination |
| Proxy Requirement | Apify Proxy (Residential Australia required for carrier access) |
| Pricing Intelligence | Current price, was price, savings statement, unit price (comparable) |
| Stock & Inventory | In-stock status, availability type, available inventory count |
| Deduplication | Automatic global product ID deduplication across terms & categories |
🔎 Why scrape Coles?
Coles represents nearly 30% of the Australian supermarket sector, operating over 800 physical stores alongside a massive nationwide online delivery service. Its e-commerce catalog contains over 40,000 active SKUs across fresh produce, dairy, bakery, meat & seafood, pantry staples, frozen foods, drinks, health, and household essentials.
Monitoring Coles catalog data provides invaluable commercial insights:
- Dynamic Promotional Cycles: Coles rotates thousands of weekly specials (half-price discounts, multi-buys, and catalog promotions) every Wednesday.
- Unit Economics: Explicit price-per-unit comparisons (
comparable, e.g.$1.25 / 100gor$2.10 / 1L) enabling direct value benchmarking across varying package sizes. - Stock & Inventory Levels: Precise on-hand inventory counts (
availableQuantity) that reveal out-of-stock patterns and supply chain disruptions. - Private Label vs National Brands: Granular brand penetration metrics comparing Coles home brand against leading FMCG multinationals.
Collecting this grocery data manually is virtually impossible due to rapid price shifts and extensive catalog breadth. This Coles scraper automates the entire process, retrieving clean, structured product data directly into downloadable spreadsheets or automated database pipelines.
Primary Industry Use Cases
- Supermarket Price Comparison: Monitor price parity on identical SKUs between Coles and Woolworths to power consumer comparison engines and grocery savings apps.
- FMCG Brand Shelf Auditing: Verify whether manufacturer products are properly stocked, accurately priced, and featured on weekly promotional rotations.
- Inflation & CPI Research: Track grocery price index fluctuations over time by scheduling recurring weekly scrapes across core food baskets.
- Deal Aggregation & Bargain Hunting: Filter products where
onSpecial: trueto feed automated discount deal portals and bargain community newsletters. - Local Store Inventory Optimization: Supply specific
storeIdvalues to analyze stock availability differences between suburban hypermarkets and urban metro stores.
✨ Features
- Dual Collection Modes: Search Coles by product keywords (
searchTerms) or harvest complete departments via category slugs (categories). - Deep 1,000+ Pagination: Automatically traverses 48 products per page across all pagination pages up to your configured
maxItemswithout artificial limits. - Comprehensive Promotion Data: Captures current price (
priceNow), previous price (priceWas), exact dollar savings (saveAmount), and promotional taglines (saveStatement). - True Unit Price Intelligence: Extracts normalized unit pricing (
comparableandunitPrice), allowing accurate cost comparison across different packaging volumes. - Stock & Inventory Visibility: Reports binary in-stock flags (
availability) alongside actual available purchase units (availableQuantity). - Store-Specific Fulfillment: Target specific regional stores by setting the optional
storeIdparameter for local stock variations. - Zero Duplicates Guarantee: Maintains an in-memory product ID hash set across all pages and search terms, ensuring completely unique output records.
- Zero Browser Overhead: Pure HTTP request engine running with minimal memory (256-512 MB) for maximum execution speed and cost efficiency.
🥦 Popular Coles Category Slugs
When targeting entire departments with the categories parameter, you can supply category slugs or direct browse URLs:
| Category Slug | Department Name | Representative Products |
|---|---|---|
dairy-eggs-fridge | Dairy, Eggs & Fridge | Fresh milk, yogurt, butter, block cheese, chilled dips |
pantry | Pantry | Coffee, pasta, canned goods, breakfast cereal, baking |
meat-seafood | Meat & Seafood | Beef mince, chicken breast, salmon fillets, sausages |
fruits-vegetables | Fruit & Vegetables | Bananas, apples, potatoes, salad mixes, avocados |
bakery | Bakery | Sliced bread, rolls, sourdough, muffins, croissants |
frozen | Frozen | Ice cream, frozen vegetables, microwave meals, pizza |
drinks | Drinks | Soft drinks, kombucha, sparkling water, fruit juices |
snacks-confectionery | Snacks & Confectionery | Potato chips, chocolate bars, biscuits, nuts, candy |
health-beauty | Health & Beauty | Shampoo, toothpaste, vitamins, body wash, skincare |
household | Household | Laundry detergent, toilet paper, cleaning sprays, dishwashing |
📥 Input parameters
The actor takes clean JSON inputs. All parameters are completely optional with sensible defaults.
| Parameter | Type | Default | Description |
|---|---|---|---|
searchTerms | array | [] | Keywords to search (e.g. ["milk", "coffee"]). Empty runs a demo. |
categories | array | [] | Category slugs or browse URLs (e.g. ["dairy-eggs-fridge"]). |
onlySpecials | boolean | false | Keep only products currently marked down or on promotion. |
maxItems | integer | 0 | Max products per source. 0 = unlimited / all matching pages. Prefill: 50. |
storeId | string | "" | Optional Coles store ID for localized stock lookups. Empty = national default. |
proxyConfiguration | object | Residential AU | Apify Residential proxy required to navigate Australian retailer firewalls. |
Example Input
{"searchTerms": ["coffee", "oat milk"],"categories": ["dairy-eggs-fridge"],"onlySpecials": true,"maxItems": 100,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "AU"}}
📤 Output data fields
The actor outputs clean tabular records stored in the default dataset. Below is an emoji-grouped schema breakdown with data coverage indicators:
🏷️ Product Identification & Details
| Field | Type | Coverage | Description |
|---|---|---|---|
id | string | 🟢 High (100%) | Unique Coles product identifier number. |
name | string | 🟢 High (100%) | Full brand and product description title. |
brand | string | 🟢 High (98%) | Brand manufacturer name or private label indicator. |
description | string | 🟡 Conditional (80%) | Extended marketing description or tasting notes. |
size | string | 🟢 High (95%) | Pack size or volume label (e.g. 1L, 500g, 24 pack). |
category | string | 🟢 High (98%) | Full department taxonomy path. |
imageUrl | string | 🟢 High (98%) | Full CDN link to high-resolution product photography. |
url | string | 🟢 High (100%) | Canonical direct URL: https://www.coles.com.au/product/.... |
💵 Pricing & Weekly Specials
| Field | Type | Coverage | Description |
|---|---|---|---|
priceNow | number | 🟢 High (100%) | Current retail selling price in AUD. |
priceWas | number | 🟡 Conditional (Specials) | Original regular price before promotional discount. |
onSpecial | boolean | 🟢 High (100%) | true if item is marked down or carries a promotion. |
saveAmount | number | 🟡 Conditional (Specials) | Exact dollar amount saved per purchase unit. |
saveStatement | string | 🟡 Conditional (Specials) | Promotional marketing text (e.g. Save $2.50, 1/2 Price). |
promotionType | string | 🟡 Conditional (Specials) | Deal classification (e.g. Special, MultiBuy). |
onlineSpecial | boolean | 🟢 High (100%) | true if special is exclusive to online orders. |
currency | string | 🟢 High (100%) | ISO currency code (AUD). |
⚖️ Unit Economics & Inventory
| Field | Type | Coverage | Description |
|---|---|---|---|
unitPrice | number | 🟢 High (95%) | Raw numeric unit cost. |
unitMeasure | string | 🟢 High (95%) | Unit benchmark specification (e.g. 100g, 1L). |
comparable | string | 🟢 High (95%) | Formatted unit price statement (e.g. $1.25 per 100g). |
availability | boolean | 🟢 High (100%) | true if item is in stock and purchasable. |
availabilityType | string | 🟢 High (100%) | Fulfillment channel (e.g. InStoreAndOnline). |
availableQuantity | number | 🟡 Conditional (80%) | Exact numeric quantity available in current inventory. |
retailLimit | number | 🟡 Conditional (70%) | Maximum purchase limit per order. |
source | string | 🟢 High (100%) | Scraper origin identifier (e.g. search:milk). |
scrapedAt | string | 🟢 High (100%) | ISO timestamp when the product was extracted. |
📋 Comprehensive Output Example
Below is a complete JSON output record from a live scrape:
{"id": "3184875","name": "Coles Full Cream Milk","brand": "Coles","description": "Australian full cream pasteurised milk with a smooth rich taste.","size": "2L","priceNow": 3.10,"priceWas": null,"onSpecial": false,"saveAmount": null,"saveStatement": null,"promotionType": null,"onlineSpecial": false,"unitPrice": 1.55,"unitMeasure": "1L","comparable": "$1.55 per 1L","currency": "AUD","availability": true,"availabilityType": "InStoreAndOnline","availableQuantity": 99,"category": "Dairy, Eggs & Fridge > Milk > Fresh Milk","retailLimit": 10,"promotionalLimit": null,"imageUrl": "https://productimages.coles.com.au/productimages/3/3184875.jpg","url": "https://www.coles.com.au/product/coles-full-cream-milk-2l-3184875","source": "search:milk","scrapedAt": "2026-11-10T13:49:00.000Z"}
💻 Code examples & integrations
Node.js (Apify Client)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({token: process.env.APIFY_TOKEN,});const run = await client.actor('haketa/coles-scraper').call({searchTerms: ['chocolate', 'coffee'],onlySpecials: true,maxItems: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Retrieved ${items.length} Coles grocery specials:`);for (const item of items.slice(0, 5)) {console.log(`- ${item.name} (${item.brand}): Now $${item.priceNow} (Was $${item.priceWas}) | ${item.saveStatement || 'Special'}`);}
Python (apify-client) & Basket Analysis
import osimport pandas as pdfrom apify_client import ApifyClientclient = ApifyClient(os.getenv('APIFY_TOKEN'))run_input = {"searchTerms": ["olive oil", "pasta"],"maxItems": 60,}run = client.actor("haketa/coles-scraper").call(run_input=run_input)# Convert dataset into a Pandas DataFrameitems = list(client.dataset(run["defaultDatasetId"]).iterate_items())df = pd.DataFrame(items)print(f"Loaded {len(df)} Coles products.")specials = df[df["onSpecial"] == True]print(f"Items currently on special: {len(specials)}")print(specials[["name", "priceNow", "priceWas", "saveStatement", "comparable"]])
cURL (Apify API)
curl "https://api.apify.com/v2/acts/haketa~coles-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"searchTerms": ["sourdough"],"maxItems": 50}'
🏷️ Promotional Deal Types on Coles
Coles utilizes several promotional structures to merchandise discount lines:
| Deal Type | Sample Marketing Tag | Meaning & FMCG Strategy |
|---|---|---|
| 1/2 Price Specials | 1/2 Price | 50% discount off regular retail price; major traffic drivers |
| Price Drops | Save $X.XX | Standard temporary price reduction across seasonal campaigns |
| Multi-Buys | 2 for $7.00 | Bundle incentives requiring volume purchase to unlock savings |
| Online Exclusives | Online Only Special | Promotional pricing available strictly through web delivery |
| Clearance / Markdown | Clearance | Final stock sell-off before discontinuing a SKU |
💼 FMCG & Retail Optimization Workflows
1. Automated Wednesday Specials Alert
Coles updates weekly discount catalogs every Wednesday morning. Set up an Apify Schedule running Wednesdays at 08:00 AEST with onlySpecials: true. Push output data to Google Sheets or Slack to alert merchandising teams to newly discounted competitor lines.
2. Digital Shelf & Out-of-Stock Tracking
Monitor inventory health across your brand's SKUs. When availability turns false or availableQuantity < 5, trigger an automated webhook alerting field sales reps to restock the distribution center.
3. Price-Per-Unit Value Benchmarking
Sort grocery datasets by comparable unit pricing to identify whether private label brands or national brands offer superior value per kilogram across staple commodities.
4. Zapier & Make E-Commerce Automation
Connect the Apify Webhook trigger to a Make (Integromat) or Zapier scenario. Whenever a Coles scrape completes, automatically push discounted product titles, savings statements, and image URLs to Discord, Slack, or an Airtable deal database.
💡 Practical tips & optimization
- Keep Residential AU Proxies Enabled: Coles utilizes sophisticated carrier security that restricts standard datacenter IP blocks. Retaining the pre-configured Apify Residential (Australia) proxy guarantees reliable request resolution.
- Harvesting Broad Departments: To download hundreds of items in a category, use department slugs like
dairy-eggs-fridgerather than specific keywords. - Store-Specific Variations: Prices are generally consistent nationwide, but stock quantities vary heavily by retail branch. Set
storeIdif you require localized inventory verification.
❓ Frequently Asked Questions (FAQ)
Do I need a Coles account or credentials?
No. This actor retrieves publicly available grocery catalog data directly. No user login, customer account, or proprietary API key is required.
Why is a residential proxy required?
Coles employs advanced carrier firewall rules that block generic cloud datacenter IP addresses. Apify Residential proxies route requests through genuine Australian residential networks, ensuring seamless page resolution.
How many products can I extract in a single execution?
You can scrape thousands of products across multiple queries and categories. Setting maxItems: 0 instructs the scraper to paginate through all available pages in the category.
Can I extract products exclusively on special?
Yes. Enabling onlySpecials: true automatically filters out regular-priced items, exporting only products with active price reductions or promotional deals.
What export formats are supported?
You can download datasets in JSON, CSV, Excel (XLSX), XML, or HTML formats directly from the Apify Console or access records programmatically via the Apify Dataset API.
Does the scraper capture high-resolution product imagery?
Yes. Every product record includes an absolute CDN URL inside imageUrl pointing directly to Coles's high-resolution product photography servers.
How fresh is the pricing data?
Every run queries Coles's live e-commerce servers in real time. Because grocery prices and promotional discounts rotate weekly and daily, scheduling recurring runs guarantees you capture the latest active figures.
Can I track private-label penetration across categories?
Yes. Coles home-brand items explicitly list "Coles", "Coles Finest", or "Coles Organic" within the brand field. You can filter by brand in Excel or Python to calculate the proportion of private-label offerings in any department.
Can I combine search keywords and category departments in one run?
Yes. You can supply both searchTerms and categories in the same input JSON. The scraper processes all search keywords first and subsequently harvests the specified category departments, maintaining global deduplication so overlapping items are never duplicated.
What happens if a search keyword has no matching products?
If Coles returns zero results for a search term, the actor logs an informational notice and gracefully continues to the next term or category without crashing.
🔗 Related grocery & retail scrapers
Explore complementary retail intelligence scrapers from Haketa:
- Woolworths Scraper — Extract prices, specials, and stock from Australia's #1 grocery supermarket.
- Blinkit Scraper — Scrape quick-commerce grocery prices and catalog data from Blinkit India.
📋 Changelog
Version 1.2 (2026-11)
- Unlocked Deep Pagination: Extended pagination loops up to 1,000 pages per query, supporting deep multi-thousand product catalog exports.
- Normalized Query Caps: Configured
maxItems: 0as unlimited / auto-pagination mode, with clean prefill defaults. - Session & Network Resilience: Enhanced automatic session retry handling across residential proxy connections to guarantee reliable data ingestion.
- Unit Economics Enrichment: Improved regex extraction of unit measure ratios and packaging volume benchmarks.
- Documentation Expansion: Added detailed visual badges, category slug tables, Pandas analysis guides, and refined SEO metadata.
Version 1.1
- Added full image URL prefix resolution with CDN fallback.
- Added support for store-specific cookie fulfillment targeting.
- Standardized string typing across all output schema properties.
Version 1.0
- Initial release featuring Coles keyword search, category catalog extraction, and weekly specials tracking.