Coles Scraper - Prices & Stock by Store, Specials, Catalog
Pricing
from $0.99 / 1,000 product or store results
Coles Scraper - Prices & Stock by Store, Specials, Catalog
Coles Australia prices and stock for every store. Search, paste any Coles link, or scrape half-price and multibuy specials and the full catalog, by store ID, postcode or all ~870 stores. Add barcodes, nutrition, ingredients and allergens, plus every store's address and opening hours.
Pricing
from $0.99 / 1,000 product or store results
Rating
0.0
(0)
Developer
ClearPath
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 hours ago
Last modified
Categories
Share
Why choose this Coles scraper?
- Each store's own price and stock. Pick stores by ID or postcode, or run all ~870 Coles stores that sell online. Every store gets its own rows with shelf price, was price, stock and availability. In one run the same biscuits were "was $6.00" in Sydney and "was $6.42" in Karratha, and 3L milk was not available in Darwin.
- Fast, and runs finish. Thousands of products a minute: a full-catalogue test saved 19,012 products in under two minutes. When a run gets close to its time limit it stops on its own and keeps every product it already collected.
- Everything Coles shows. Specials with saving and multi-buy offer text, unit prices, purchase limits, category path and in-store aisle where Coles lists it. Add barcode, ingredients, allergens, nutrition panel and country of origin, or the full store directory with opening hours.
Try it
Open the input page, switch to JSON and paste this. It searches Tim Tam in the nearest Coles to Sydney, Melbourne and Brisbane postcodes and returns up to 10 products per store: at most 30 results, under $0.05.
{"searchTerms": ["tim tam"],"postcodes": ["2000", "3000", "4000"],"maxItems": 10}
Add "includeDetails": true for barcode, ingredients, allergens and nutrition on every product. Details are charged as an add-on per product.
Copy to your AI assistant
clearpath/coles-scraper on Apify. Scrapes Coles Australia: product search (searchTerms), any Coles product, category, specials, brand, search or store link, or a product ID as https://www.coles.com.au/product/ID (startUrls), specials (allspecials, halfprice, multibuy, onlineonly), whole departments with departments=[...] on its own, no other setting needed (slugs: fruit-vegetables, meat-seafood, deli, dairy-eggs-fridge, bakery, lunchbox, frozen, chips-chocolates-snacks, pantry, international-foods, drinks, liquorland, health-dietary, health-beauty, cleaning-laundry, baby, pet, home-garden; an unrecognised slug is skipped), fullCatalog=true (every department except Tobacco; departments narrows it) and storeDirectory=true (every store with address, phone, coordinates, opening and holiday hours, and the way to discover store IDs); combine them in one run. Price, stock and availability are per store: set storeIds, postcodes (nearest Coles supermarket selling online) or allStores=true (~870 stores); without them results come from Coles' default online store. Each store gets its own rows. For barcode (gtin), ingredients, allergens, nutrition and country of origin set includeDetails=true; product links always include them. sortBy orders listings: relevance (default), priceAscending, priceDescending, productNameAscending or productNameDescending, and a link that already carries a sort keeps it. maxItems applies per search term, link, specials type or department, per store (stores for storeDirectory); omitted or 0 means no limit, so set it to bound cost. One run takes at most 100 search terms, 1,000 links and 500 postcodes; more than that fails the run with a message. Searches with no matching product return no rows. Every dataset row carries a type field: product or store. An allStores or unlimited run takes minutes and outlives the synchronous run endpoints, so start the run, poll it and then read its dataset. Cost: $1.49 per 1,000 rows (Free plan) down to $0.99 (Gold and above), details +$0.49 down to +$0.29 per 1,000 products with details, plus $0.005 per run start, so batch inputs into one run. Full spec: GET https://api.apify.com/v2/actors/clearpath~coles-scraper/builds/default (Authorization: Bearer TOKEN) returns inputSchema, actorDefinition.storages.dataset and readme.
What can this Coles scraper do?
- 🔍 Search Coles by keyword, the same products you see on coles.com.au, in any sort order
- 🔗 Paste any Coles link: product, category, specials, brand, search results or store page. Filters and sorting in the link are kept. For a product ID, paste coles.com.au/product/ followed by the ID
- 🏷️ Scrape specials: all specials, half price, multi-buy or online-only
- 🗂️ Scrape whole departments picked from a list: Fruit & Vegetables, Bakery, Pantry, Drinks, Baby, Pet and the rest
- 📦 Pull the full Coles catalogue, department by department: more than 20,000 products per store
- 🏪 Choose stores by store ID, by postcode (nearest Coles supermarket) or all stores at once
- 📍 Export the Coles store directory: address, phone, coordinates, opening hours and public holiday hours
- 🥛 Add product details: barcode (GTIN), ingredients, allergens, dietary, nutrition panel, country of origin, storage, every size and variety, UNSPSC code
- 🧾 Combine everything in one run: searches, links, specials, catalog and stores run side by side
How to scrape Coles products, prices and specials
Search products in specific stores
{"searchTerms": ["full cream milk", "bread"],"storeIds": ["313", "7689"],"maxItems": 50,"sortBy": "priceAscending"}
The store ID is the number at the end of a Coles store page link, for example 313 in coles.com.au/find-stores/coles/wa/karratha-313. Leave stores empty to use Coles' default online store.
Scrape Coles half-price specials
{"specials": "halfprice","maxItems": 0}
maxItems: 0 returns every half-price product. Use allspecials, multibuy or onlineonly for the other special types. Coles changes its weekly specials on Wednesdays, so a weekly schedule on Wednesday keeps a specials tracker current.
Get this week's Coles catalogue
{"specials": "allspecials","maxItems": 0}
The catalogue as data: every product on special right now, half price and multi-buy included, with the shelf price, the was price, the saving, the offer description and the unit price. Coles turns its catalogue over on Wednesday, so schedule this weekly on Wednesday. Add postcodes to get the catalogue as it prices at your own store. This returns the catalogue's products, not the printed PDF.
Paste Coles links
{"startUrls": [{ "url": "https://www.coles.com.au/browse/dairy-eggs-fridge/milk" },{ "url": "https://www.coles.com.au/on-special?filter_Special=multibuy" },{ "url": "https://www.coles.com.au/product/coles-full-cream-milk-3l-8150288" },{ "url": "https://www.coles.com.au/find-stores/coles/wa/karratha-313" }],"maxItems": 100}
Category, specials, brand and search links return their product lists. Product links return one product with full details. Store links return the store's address and opening hours.
Compare prices and stock across every Coles store
{"searchTerms": ["tim tam"],"allStores": true,"maxItems": 5}
This returns up to 5 products for every Coles store that sells online, one row per store per product: up to about 4,350 results. In testing, three milk products for every store (2,607 results) took about a minute.
Get every Coles store location and opening hours
{"storeDirectory": true,"maxItems": 0}
The input form fills in a maximum of 100, which also limits the store directory to 100 stores. Set maxItems to 0 or leave it empty for every store.
Scrape whole departments
{"departments": ["bakery", "dairy-eggs-fridge"],"postcodes": ["3000"],"maxItems": 500}
Pick departments from the list in the input form, no category link needed. maxItems counts per department and per store, so this returns up to 500 bakery and 500 dairy products for the Coles nearest postcode 3000. For one aisle or shelf instead of a whole department, paste its link into startUrls.
Scrape the full Coles catalogue with nutrition and barcodes
{"fullCatalog": true,"includeDetails": true,"maxItems": 0}
Without maxItems limits this returns every product Coles sells online for the chosen store. Details make each product slower to collect and add the details charge, so start with a small maxItems per category.
Input parameters
| Parameter | Type | Default | Meaning |
|---|---|---|---|
searchTerms | array | Products to search for, up to 100 per run | |
startUrls | array | Coles product, category, specials, brand, search or store links, up to 1,000. For a product ID use https://www.coles.com.au/product/ID | |
specials | string | none | allspecials, halfprice, multibuy or onlineonly |
departments | array | Department slugs, for example bakery, pantry, dairy-eggs-fridge. Narrows the catalogue to those departments | |
fullCatalog | boolean | false | Every department (Tobacco is excluded because Coles age-restricts it) |
storeDirectory | boolean | false | Add every Coles store with address and opening hours |
storeIds | array | Store IDs to scrape prices and stock for | |
postcodes | array | Australian postcodes, each uses the nearest Coles supermarket that sells online, up to 500 | |
allStores | boolean | false | Run searches, links, specials and catalog in every Coles store that sells online |
includeDetails | boolean | false | Add barcode, ingredients, allergens, nutrition and more. Charged per product |
maxItems | integer | no limit (form: 100) | Products per search term, link, specials type or department, per store. Stores for the directory. 0 = no limit |
sortBy | string | relevance | priceAscending, priceDescending, productNameAscending or productNameDescending |
What data can you extract from Coles?
| Group | Fields |
|---|---|
| Product | id, name, brand, size, description, url, imageUrl, imageUrls |
| Price | price, wasPrice, unitPrice, unitOfMeasure, comparablePrice, full pricing record |
| Specials | isOnSpecial, specialType, offerDescription, saveAmount, savePercent, isHalfPrice |
| Store stock | storeId, storeName, storeSuburb, storeState, storePostcode, isAvailable, stockQuantity, availabilityType, locations (in-store aisle, when Coles lists it) |
| Category | onlineHeirs (aisle, category and subcategory), merchandiseHeir, restrictions (purchase limits) |
| Product details | gtin, ingredients, allergens, dietary, storage, dimensions, nutrition, countryOfOrigin, longDescription, variations, images, unspscCode |
| Store directory | address, suburb, state, postcode, phone, latitude, longitude, tradingHours, tradingHoursToday, holidayTradingHours, collectionPointId |
| Run context | type, sourceType, sourceInput, detailStatus, isAssociatedResult, adId, scrapedAt |
Every field Coles returns is kept. Rows have type: "product" or type: "store". The Output tab has a Products view and a Stores view; export as JSON to keep nested fields such as nutrition intact.
Product with details
A real result for 3L milk at Coles Karratha, with includeDetails. To keep it short, variations.byVarieties and variations.bySizes show 1 of 8 and 1 of 10 entries, images shows 1 of 4, and each nutrition table shows 3 of its 10 nutrients.
{"type": "product","id": 8150288,"name": "Full Cream Milk","brand": "Coles","size": "3L","price": 4.95,"wasPrice": null,"unitPrice": 1.65,"unitOfMeasure": "1l","comparablePrice": "$1.65/ 1L","isOnSpecial": false,"specialType": null,"offerDescription": null,"saveAmount": null,"savePercent": null,"isHalfPrice": false,"isAvailable": true,"stockQuantity": 433,"url": "https://www.coles.com.au/product/coles-full-cream-milk-3l-8150288","imageUrl": "https://cdn.productimages.coles.com.au/productimages/8/8150288.jpg","imageUrls": ["https://cdn.productimages.coles.com.au/productimages/8/8150288.jpg"],"isAssociatedResult": false,"storeId": "313","storeName": "Coles Karratha","storeSuburb": "Karratha","storeState": "WA","storePostcode": "6714","sourceType": "url","sourceInput": "https://www.coles.com.au/product/coles-full-cream-milk-3l-8150288","detailStatus": "enriched","ingredients": "Homogenised and Pasteurised Full Cream Milk","allergens": "Contains Milk","dietary": "Source of Calcium","dimensions": "273.00 x 153.00 x 102.00 mm","storage": "Keep this way up,Keep refrigerated. Store at or below 5°C","description": "COLES FULL CREAM MILK 3L","imageUris": [{"altText": "","type": "default","uri": "/8/8150288.jpg"}],"availabilityStatus": null,"minGuarantee": "Life 7 days min","merchandiseHeir": {"tradeProfitCentre": "DAIRY","categoryGroup": "DAIRY","category": "DY MILK","subCategory": "WHOLE WHITE","className": "WHOLE 3-3.9L"},"onlineHeirs": [{"aisle": "Full Cream Milk","category": "Milk","subCategory": "Dairy, Eggs & Fridge","categoryId": "8881800","aisleId": "8881801","subCategoryId": "1300"}],"associatedProductId": null,"continuity": null,"lifestyle": null,"lastUpdated": "2026-09-16T11:12:33Z","locations": [{"aisleSide": null,"description": "Aisle information is not available for this product. Please ask a Team Member at $STORE to help you find this product.","facing": 0,"aisle": null,"order": 9999.0,"shelf": null}],"additionalInfo": [{"title": "Ingredients","description": "INGREDIENTSHomogenised and Pasteurised Full Cream Milk"},{"title": "Allergen","description": "Contains Milk"},{"title": "Dietary","description": "Source of Calcium"},{"title": "Dimensions","description": "273.00 x 153.00 x 102.00 mm"},{"title": "Storage instructions","description": "Keep this way up,Keep refrigerated. Store at or below 5°C"}],"excludeFromSubstitution": false,"brandDetails": {"id": 3955134709,"name": "Coles","seoToken": "coles"},"collectableCampaign": "","disclaimers": null,"internalDescription": "","longDescription": "Coles is committed to bringing you high quality fresh milk from dairy farms across Australia","nutrition": {"title": "Nutritional information","servingsPerPackage": "12.00","servingSize": "250mL","dailyIntakeDisclaimer": "*Percentage Daily (%DI) Intakes are based on an average adult diet of 8700 kJ. Your daily intakes may be higher or lower depending on your energy needs.","breakdown": [{"title": "Per Serving","subtitle": "Average quantity per serving","disclaimer": null,"nutrients": [{"nutrient": "Energy (kJ)","value": "650 kJ","dailyIntakeInfo": "(7% DI)","nutrientDisplayOrder": "2.000"},{"nutrient": "Energy (Cal)","value": "155 Cal","dailyIntakeInfo": null,"nutrientDisplayOrder": "3.000"},{"nutrient": "Protein","value": "8.75 g","dailyIntakeInfo": "(18% DI)","nutrientDisplayOrder": "4.000"}]},{"title": "Per 100g/ml","subtitle": "Average quantity per 100g (or 100ml)","disclaimer": null,"nutrients": [{"nutrient": "Energy (kJ)","value": "260 kJ","dailyIntakeInfo": null,"nutrientDisplayOrder": "2.000"},{"nutrient": "Energy (Cal)","value": "62.2 Cal","dailyIntakeInfo": null,"nutrientDisplayOrder": "3.000"},{"nutrient": "Protein","value": "3.5 g","dailyIntakeInfo": null,"nutrientDisplayOrder": "4.000"}]}]},"nutritionalClaims": null,"pricing": {"now": 4.95,"rawPriceNow": 4.95,"was": 0,"unit": {"quantity": 1.0,"ofMeasureQuantity": 1,"ofMeasureUnits": "l","price": 1.65,"ofMeasureType": "l","isWeighted": false,"isIncremental": false},"comparable": "$1.65/ 1L","onlineSpecial": false},"gtin": "9300601186945","variations": {"total": 18,"byVarieties": [{"id": 5593963,"name": "Reduced Fat Hi Lo Milk","brand": "Coles","description": "COLES REDUCED FAT HI LO MILK 2L","size": "2L","imageUris": [{"altText": "","type": "default","uri": "/5/5593963.jpg"}],"images": null,"restrictions": null,"availability": false,"availabilityType": "InStoreAndOnline","availabilityStatus": null,"merchandiseHeir": {"tradeProfitCentre": "DAIRY","categoryGroup": "DAIRY","category": "DY MILK","subCategory": "FAT REDUCED","className": "LOW FAT"},"onlineHeirs": [{"aisle": "Skim & Low Fat Milk","category": "Milk","subCategory": "Dairy, Eggs & Fridge","categoryId": "8881800","aisleId": "8881802","subCategoryId": "1300"}],"associatedProductId": null,"continuity": null,"pricing": null}],"bySizes": [{"id": 1993245,"name": "Milk Full Cream","brand": "Coles","description": "COLES MILK FULL CREAM 500ML QLD","size": "500mL","imageUris": [{"altText": "","type": "default","uri": "/1/1993245.jpg"}],"images": null,"restrictions": null,"availability": false,"availabilityType": "InStoreAndOnline","availabilityStatus": null,"merchandiseHeir": {"tradeProfitCentre": "DAIRY","categoryGroup": "DAIRY","category": "DY MILK","subCategory": "WHOLE WHITE","className": "WHOLE <1L"},"onlineHeirs": [{"aisle": "Full Cream Milk","category": "Milk","subCategory": "Dairy, Eggs & Fridge","categoryId": "8881800","aisleId": "8881801","subCategoryId": "1300"}],"associatedProductId": null,"continuity": null,"pricing": null}]},"images": [{"thumb": {"path": "/wcsstore/Coles-CAS/images/8/1/5/8150288-th.jpg","description": null},"zoom": {"path": "/wcsstore/Coles-CAS/images/8/1/5/8150288-zm.jpg","description": "Product Image of Coles Full Cream Milk"},"full": {"path": "/wcsstore/Coles-CAS/images/8/1/5/8150288.jpg","description": null}}],"restrictions": {"retailLimit": 20,"promotionalLimit": 12,"liquorAgeRestrictionFlag": false,"tobaccoAgeRestrictionFlag": false,"delivery": ["OVN","REMOTE SERVICE"],"restrictedByOrganisation": false},"countryOfOrigin": {"logoRequired": true,"barcodeRequired": true,"descriptionRequired": true,"country": "Australian","barcodePercentage": 100,"statement": "Australian Milk","description": "Australian Milk"},"availability": true,"availabilityType": "InStoreAndOnline","availableQuantity": 433,"unspscCode": "50131700","scrapedAt": "2026-09-16T11:12:33+00:00"}
detailStatus is enriched when details were added, not_requested without includeDetails, and unavailable when Coles could not return details for that product (the listing fields are still delivered). Products without details carry the same listing fields without the detail group.
Store
services and nextDoorStores are empty for most stores; holidayTradingHours lists upcoming public holiday hours when Coles publishes them.
{"type": "store","storeId": "350","storeName": "Coles Geraldton","brandName": "Coles Supermarkets","address": "Chapman Rd & View St","suburb": "Geraldton","state": "WA","postcode": "6530","phone": "(08) 9948 7300","latitude": -28.766786,"longitude": 114.616117,"sourceType": "storeDirectory","sourceInput": null,"brandId": 2,"services": [],"tradingHoursToday": {"storeTime": "Today from 8am to 9pm","holidayReason": null,"isOpenNow": true},"tradingHours": [{"daysOfWeek": "Mon-Fri","storeTime": "8am - 9pm"},{"daysOfWeek": "Sat","storeTime": "8am - 5pm"},{"daysOfWeek": "Sun","storeTime": "11am - 5pm"}],"holidayTradingHours": [{"storeTime": "8am - 6pm","holidayReason": "Kings Birthday","effectiveDate": "Monday 28 September","isOpen": true}],"nextDoorStores": [],"collectionPointId": "0350CC0350","scrapedAt": "2026-09-16T11:13:44+00:00"}
Result counts and categories
Runs with searches, listing links, specials or the catalogue also save LISTING_METADATA in the run's key-value store: total results Coles reports per search, link or specials type and store, the available filters and subcategories, and whether a search had no exact match. Full catalog runs also save CATEGORIES, the Coles category tree.
Do Coles prices and stock differ by store?
Yes. The same half-price Tim Tam Original 200g in one run had the same special price everywhere, but the regular price and stock changed between stores:
| Store | Price | Was | Stock |
|---|---|---|---|
| Coles Local Sydney CBD, NSW | $3.00 | $6.00 | 382 |
| Coles Collingwood, VIC | $3.00 | $6.00 | 682 |
| Coles Darwin, NT | $3.00 | $6.30 | 586 |
| Coles Karratha, WA | $3.00 | $6.42 | 880 |
| Coles Chinatown (Broome), WA | $3.00 | $6.54 | 962 |
In the same run Coles 3L Full Cream Milk was not available in Darwin or Alice Springs (isAvailable: false, no price). Without store IDs or postcodes you get Coles' default online store.
How much does it cost to scrape Coles?
Pay per result. Result charges per 1,000 results:
| Apify plan | Result (product or store) | Product details add-on |
|---|---|---|
| Free | $1.49 | +$0.49 |
| Bronze | $1.39 | +$0.49 |
| Silver | $1.29 | +$0.39 |
| Gold | $0.99 | +$0.29 |
| Platinum | $0.99 | +$0.29 |
| Diamond | $0.99 | +$0.29 |
The details add-on is charged for each product that comes back with details: with includeDetails, and for product links, which always include details.
| Example on the Free plan | Results | Result and details charges |
|---|---|---|
| Search 3 products in 3 stores, 10 each | 90 | $0.13 |
| Store directory | ~875 | $1.30 |
| 1,000 products with details | 1,000 | $1.98 |
One product in every store (allStores) | ~870 | $1.30 |
Set a maximum cost per run in the run options to stop a large run at your budget.
FAQ
Can I get prices for a specific Coles store or postcode?
Yes. Use storeIds, postcodes (nearest Coles supermarket that sells online) or allStores. Each store gets its own rows, so the same product appears once per store.
Which stores does allStores cover?
Every Coles store that sells online, around 870. A few small-format and regional stores have no online range and are left out. If you enter one of them as a store ID, it is skipped with a note in the log.
When do Coles specials change? Weekly, on Wednesday. Schedule the actor on Wednesdays to track each new specials week.
Can I get nutrition, ingredients, allergens and barcodes?
Yes, turn on includeDetails. Barcode (gtin), ingredients, allergens, dietary information, storage, dimensions, nutrition panel and country of origin are added when Coles lists them for the product.
Can I look up a product by barcode? No. Coles search does not match barcodes reliably. Use the product link instead, or https://www.coles.com.au/product/ followed by the product ID: both return the barcode with the details.
Can I get the full Coles product list or catalogue with prices?
Yes, with fullCatalog. It covers every category except Tobacco, which Coles age-restricts, and removes products that appear in several categories.
Why did my search return nothing?
When Coles has no product matching a search term it shows unrelated suggestions. Those are not saved as results; the log says no products matched, and LISTING_METADATA marks the search with noExactMatch.
Are sponsored products included?
Yes. Coles shows sponsored products among search and category results, and they are saved like any other product: they have an adId and adSource, and count toward maxItems and your results. Filter on adId to remove them.
What happens if the run reaches its time limit? The actor stops shortly before the limit and saves everything it collected. The run ends successfully and the status message says it stopped early.
Do I need a Coles account? No. The actor collects the public prices and products shown on coles.com.au.
Can I compare Coles with Woolworths? This actor covers Coles only. Its store data lets you compare Coles prices across regions and stores.
More scrapers from our friends at Zen Studio
Sister scrapers for product, price and seller data.
1688 阿里巴巴
Taobao 淘宝
JD.com 京东
More from Clearpath
Joybuy
SHEIN
Shopify
Support
- Bugs: Issues tab
- Features: Email or issues
- Email: max@mapa.slmail.me
Legal Compliance
Extracts publicly available product, price and store information. Users must comply with Coles' terms of use and applicable data protection laws. Not affiliated with or endorsed by Coles.
Scrape Coles Australia products, prices, specials, stock by store, nutrition, barcodes and store locations.
