Coles AU Scraper – Groceries, Prices & Reviews
Pricing
from $1.20 / 1,000 product results
Coles AU Scraper – Groceries, Prices & Reviews
Scrape Coles.com.au grocery products and customer reviews. Search by keyword, browse categories, or use product/search URLs. Returns name, brand, price, was price, unit price, size, specials, availability, aisle/category, nutrition, allergens, ingredients, ratings, and reviews.
Pricing
from $1.20 / 1,000 product results
Rating
0.0
(0)
Developer
Abot API
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Coles Australia Grocery Product & Reviews Scraper
Scrape coles.com.au grocery products and customer reviews at scale. Search by keyword, browse a category, pull the On Special catalogue, or paste product / search links (or bare product ids). Every product comes back as one flat record with price, was-price and savings, unit (comparable) price, specials, size, availability, aisle/category, nutrition, allergens, ingredients, rating and - optionally - customer reviews.
What it does
- Four ways to start
- Search - one or more keywords, with minimum-rating, price-range and specials filters, across all result pages.
- Specials - browse Coles' own On Special catalogue by its real offer taxonomy: All specials, Half price, Multi buy or Online only (the
specialsCategoryfield, search mode). Every product returned is on special and carries its was-price, saving amount/percent and promo label. - Category - browse a category by its Coles slug (e.g.
dairy-eggs-fridge), across all its pages. - URL - paste product pages (
/product/<slug>-<id>), search pages (/search/products?q=...), category pages (/browse/<category>), On Special pages (/on-special,/on-special/<department>), or bare numeric product ids.
- Was-price & discounts - on every discounted product the record carries the strike-through was-price, the saving amount and percent, the promo label (e.g.
1/2 Price), the promotion type, and, for multi-buy offers, the multi-buy detail (e.g. buy 2 for $7). - Full product detail - collect each product's canonical title, long description, ingredients, allergens, dietary statement, storage instructions, dimensions, country of origin, GTIN, brand, category path, product variants, the nutrition panel and images.
- Ratings & reviews - the aggregate rating (average score, review count and the 5-star-to-1-star distribution) plus customer reviews: star rating, title, review text, author display name, date, verified-purchase flag and helpful-vote count.
- Send results into your apps - optional Notion / Linear / Airtable / Apify export via MCP connectors, without changing the dataset.
Ratings & reviews: what you get
Coles shows an aggregate rating and a customer review list on product pages. This actor captures both:
- The aggregate rating and star distribution are collected during enrichment (
fetchDetails), so every enriched product that has ratings carriesrating,ratingCount,reviewCountandratingDistribution. - The review list is collected when
fetchReviewsis on, walked across review pages up to yourmaxReviewsPerProductcap. Each review carries star rating, title, text, author display name, ISO date, verified-purchase flag and helpful-vote count.
Note: most Coles grocery lines carry no reviews at all - reviews cluster on health, beauty, vitamins, pet and baby lines. When a product has no ratings, the rating and reviews fields are omitted (not guessed). Products with reviews return them in full.
Specials & discounts
Select a specialsCategory in search mode to walk Coles' own On Special catalogue with the same forward pagination and maxItems cap as a keyword search:
| Value | What it returns |
|---|---|
allspecials | The whole On Special listing. |
halfprice | Products at half price (50% off). |
multibuy | Multi-buy offers (e.g. buy 2 for $7). |
onlineonly | Online-only specials. |
In URL mode, paste an On Special link instead - https://www.coles.com.au/on-special for everything, or https://www.coles.com.au/on-special/<department> (e.g. /on-special/bakery) to scope it to one department.
Every product returned from a specials source is on special, so each record carries wasPrice, savingsAmount, savingsPercent, savingsLabel, promoLabel, promotionType and specialType; multi-buy offers also carry offerDescription and a structured multibuyPromotion. The specialsOnly toggle is a separate client-side filter that keeps only on-special products from any search, category or specials source.
Ordering
Coles serves search and category pages in relevance order. The optional sortBy (price_asc, price_desc, name) is applied over the products the run collects, so it orders the gathered result set rather than re-querying the store. Leave it on relevance to keep the storefront's own order.
Input
| Field | Type | Description |
|---|---|---|
mode | select | search (keyword + filters), category (browse a category slug), or url (paste links / product ids). |
queries | string[] | Search keywords (search mode). Each keyword is searched separately. |
specialsCategory | select | Browse Coles' On Special catalogue (search mode): allspecials, halfprice, multibuy or onlineonly. Leave empty to skip. |
categories | string[] | Category slugs (category mode), e.g. dairy-eggs-fridge. |
sortBy | select | relevance, price_asc, price_desc, name (applied over the collected products). |
minRating | select | Keep products rated at least 3, 4 or 5 stars (requires enrichment). |
specialsOnly | boolean | Keep only products currently on special (any source). |
minPrice / maxPrice | integer | Keep products within an AUD price range. |
urls | string[] | Product / search / category URLs, or bare product ids (url mode). |
fetchDetails | boolean | Collect full product detail + aggregate rating. Default true. |
fetchReviews | boolean | Also collect customer reviews. Default false. |
maxReviewsPerProduct | integer | Cap reviews per product (0 = all). Default 20. |
maxItems | integer | Max products for the whole run (0 = unlimited). Default 20. |
maxPages | integer | Safety cap on result pages walked per keyword/category/URL. |
proxy | object | Proxy configuration (Australian residential recommended). |
mcpConnectors | array | Optional MCP connectors to export results into (Notion, Linear, Airtable, Apify). |
notionParentPageUrl | string | Notion connector only: page under which item pages are created. |
maxNotifyListings | integer | Cap on items exported to each connector per run. Does not affect the dataset. |
Example input
{"mode": "search","queries": ["milk"],"sortBy": "relevance","specialsOnly": false,"minPrice": 1,"maxPrice": 20,"fetchDetails": true,"fetchReviews": true,"maxReviewsPerProduct": 20,"maxItems": 20,"proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "AU" }}
Send results into your apps (MCP connectors)
Optionally pipe results into the apps you already use through Model Context Protocol (MCP) connectors. Authorize a connector once under Apify, Settings, Integrations, then select it in the mcpConnectors field. Each connector receives a condensed, human-readable summary per product (title plus key fields), while the complete record always stays in the Apify dataset. For Notion, set notionParentPageUrl to the page the item pages should be created under. Supported connectors: Notion, Linear, Airtable, and Apify. Leave the field empty to skip; it never changes the dataset output.
Output
One record per product. Example (values below are illustrative):
{"productId": "100000","name": "Example Full Cream Milk 2L","title": "ExampleBrand Full Cream Milk 2L","brand": "ExampleBrand","description": "EXAMPLE FULL CREAM MILK 2L","size": "2L","url": "https://www.coles.com.au/product/example-full-cream-milk-2l-100000","price": 3.0,"wasPrice": 6.0,"savingsAmount": 3.0,"savingsPercent": 50,"savingsLabel": "save $3.00","promoLabel": "1/2 Price","promotionType": "SPECIAL","specialType": "PERCENT_OFF","isOnSpecial": true,"comparablePrice": "$1.50 per 1L","unitPrice": 1.5,"unitOfMeasure": "l","unitMeasure": "1l","currency": "AUD","isAvailable": true,"availabilityType": "InStoreAndOnline","availableQuantity": 500,"retailLimit": 20,"promotionalLimit": 12,"ageRestricted": false,"aisle": "Full Cream Milk","category": "Milk","subCategory": "Dairy, Eggs & Fridge","department": "DAIRY","productClass": "FULL CREAM","variantCount": 3,"image": "https://cdn.productimages.coles.com.au/productimages/1/100000.jpg","images": ["https://cdn.productimages.coles.com.au/productimages/1/100000.jpg"],"longDescription": "A fresh Australian full cream milk, rich and creamy.","gtin": "9300000000000","brandSlug": "examplebrand","countryOfOrigin": "Australia","countryOfOriginStatement": "Made in Australia from at least 99% Australian ingredients","categoryPath": ["Milk", "Dairy, Eggs & Fridge", "Full Cream Milk"],"variants": [{ "productId": "100001", "name": "Example Full Cream Milk 1L", "brand": "ExampleBrand", "size": "1L", "url": "https://www.coles.com.au/product/example-full-cream-milk-1l-100001", "image": "https://cdn.productimages.coles.com.au/productimages/1/100001.jpg" }],"ingredients": "Full cream milk.","allergens": "Contains Milk","dietary": "Source of Calcium","storageInstructions": "Keep refrigerated. Store at or below 5°C.","dimensions": "250.00 x 100.00 x 100.00 mm","nutrition": { "servingSize": "250mL", "servingsPerPackage": "8.00", "breakdown": [] },"rating": 4.6,"ratingCount": 128,"reviewCount": 128,"ratingDistribution": { "5": 96, "4": 20, "3": 7, "2": 3, "1": 2 },"recommendedCount": 118,"reviews": [{"reviewId": "1000000001","rating": 5.0,"title": "Family favourite","body": "Fresh and creamy, our family buys it every week.","author": "sampleShopper","date": "2025-02-14T06:01:00.000+00:00","isRecommended": true,"helpfulCount": 4}],"reviewsCollected": 1,"searchMode": "search"}
Field reference
| Field | Description |
|---|---|
productId | Coles product id. |
name, title, brand, description, size, url | Product name, fuller canonical title (brand + name + size), brand, short description, size, product page URL. |
price, wasPrice, savingsAmount, savingsPercent, savingsLabel, isOnSpecial | Current price, strike-through was-price, saving amount/percent, saving label and specials flag. |
promoLabel, promotionType, specialType, offerDescription, multibuyPromotion | Promo label (e.g. 1/2 Price), promotion/special type, and, for multi-buy offers, the offer text and structured multi-buy detail (quantity, price, unitPrice, description). Present on discounted products. |
comparablePrice, unitPrice, unitOfMeasure, unitMeasure, currency | Comparable (unit) price string, numeric unit price, unit, the measure the unit price is quoted against (e.g. 100g), and currency (AUD). |
isAvailable, availabilityType, availableQuantity, retailLimit, promotionalLimit, ageRestricted | Availability, purchase limits and age-restriction flag. |
aisle, category, subCategory, department, productClass, categoryPath | Category path (online aisle / category, internal department and product class), plus the breadcrumb path (with details). |
variantCount, variants | Number of sibling variations and, with details, the variant matrix (productId, name, brand, size, url, image). |
image, images | Primary image and the image list. |
longDescription, gtin, brandSlug, countryOfOrigin, countryOfOriginStatement, lastUpdated | Long description, GTIN, brand slug, country of origin (country name plus the full origin statement) and last-updated timestamp (with details). |
ingredients, allergens, dietary, storageInstructions, dimensions, nutritionalClaims, nutrition, disclaimers | Grocery labelling and nutrition (with details, when published). |
rating, ratingCount, reviewCount, ratingDistribution, recommendedCount | Aggregate rating and the 5★→1★ split (with enrichment, when the product has ratings). |
reviews, reviewsCollected | Collected reviews and their count (present when reviews are enabled). Each review: reviewId, rating, title, body, author, date, verifiedPurchase, isRecommended, helpfulCount, syndicatedFrom, photos. |
Whenever a value is not published for a product, the field is omitted or null rather than guessed.
Proxy
Coles serves results to Australian residential connections, so the actor uses an Australian residential exit by default. Apify Proxy is recommended for reliable results.
Notes
- Prices, specials, ratings and stock are captured as shown on the storefront at scrape time.
- Filters (
minRating,minPrice,maxPrice,specialsOnly) are applied to each product's own values, so exact numeric ranges work independently of the on-site filters. verifiedPurchaseis included when the storefront exposes it for a review; on many reviews it is not published and the field is left out.