Coles AU Scraper icon

Coles AU Scraper

Scrape Coles.com.au grocery products and customer reviews. Search by keyword, browse categories, or use product/search URLs. Returns name, brand,…

Start using this actor on Apify ↗Need a custom scraper?Contact us ↗

Coles AU Scraper at a glance

Coles AU Scraper is a ready-to-run Apify actor from abotapi for collecting ecommerce data. Its documented output includes name, change type (incremental mode), full title, brand and price, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $1.80 per 1,000 results on the Apify Free plan and from $1.20 on paid plans, with smaller per-run or optional feature charges listed on Apify.

Runs on
Apify cloud: console, API, schedules and integrations
Data type
Ecommerce, Automation, Developer Tools
Region
Oceania
Pricing
$1.80 per 1,000 results (Free plan), from $1.20 on paid plans
Output
Documented below · JSON, CSV, Excel
Inputs
27 options

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.

What Coles AU Scraper can do

  • Two input types, one filter surface. Search keywords, browse category slugs, or combine both, then apply the same price, rating and specials filters either way. Paste product, search, category or On Special links when you already have them.
  • Specials done properly. Pull the storefront's On Special catalogue by type (half price, multi buy, online only), or run a complete sweep that also catches genuinely reduced products the curated On Special listing itself misses.
  • Was price and savings, worked out correctly. Strike through price, saving amount and percent, promo label and, for multi buy offers, the structured deal detail, all read straight off each product's own pricing data.
  • Unit price that is actually usable. Comparable price recovered even when Coles' own structured unit price field is empty, always paired with the basis it is quoted against so a per gram value is never mistaken for a per kilogram one.
  • Full grocery labelling. Long description, ingredients, allergens, dietary statement, storage instructions, dimensions, country of origin, GTIN, nutrition panel and images when detail collection is switched on.
  • Ratings and reviews on demand. The aggregate rating and star distribution come with basic detail collection; the full review list, with star rating, text, author, date and helpful count, is a separate switch.

Choose what to collect

These inputs let you configure Coles AU Scraper - Groceries, Prices & Reviews. Open the actor on Apify to enter your values and review the current options.

Supported input fields
InputWhat it controls
modestringDeprecated compatibility field for saved tasks and API integrations. New runs should use inputMode.
inputModestringChoose Search / browse to use keywords, categories and filters together. Choose Pasted URLs to scrape product, search, category or On Special links, or bare product IDs.

Choices: search, url

queriesarrayWords to search for, such as 'milk' or 'tim tam'. Leave empty if you want every product from the selected categories.
categoriesarrayLimit keyword searches to specific Coles categories, or browse whole categories when Keywords is empty. Copy the part after /browse/ from a Coles category URL, for example 'dairy-eggs-fridge' or 'dairy-eggs-fridge/milk'.
specialsCategorystringOptionally add products from Coles' On Special catalogue. Choose all specials or one offer type. This is an additional source alongside your keyword/category search; use Only products on special below when you want to filter the search results themselves. • "All Specials (complete)" sweeps every department and keeps only products whose price is actually reduced. Coles' own On Special listing is a curated view rather than an index of every markdown, measured across 10 departments, about 7% of genuinely-reduced products never appear in it. This option catches those, at the cost of a much larger walk, so set "Max products" to bound the run. Department exclusions and excluded specials categories still apply.

Choices: , allspecials, allspecials-complete, halfprice, multibuy, onlineonly

urlsarrayPaste one or more Coles product, search, category or On Special URLs, or bare numeric product IDs. A page= number starts the walk on that page and sort= (the site's own priceAscending / priceDescending, the short forms priceAsc / priceDesc, or name) orders that URL's results. Left untouched in URL mode, the field scrapes seven example links, one per distinct target.
sortBystringOrder the products collected by this run. Coles supplies relevance order; price and name ordering are applied after collection.

Choices: relevance, price_asc, price_desc, name

Show 20 more inputs
More input fields
InputWhat it controls
minRatingstringOptional. Only keep products whose average customer rating is at least this many stars. Requires enrichment (ratings are collected during 'Fetch product details' / 'Fetch customer reviews'). Products with no reviews are excluded when this is set.

Choices: 0, 3, 4, 5

specialsOnlybooleanKeep only products currently showing a special price or offer. Applies to keyword searches, category browsing and pasted listing URLs.
excludeSpecialsCategoriesarrayDrop products belonging to these specials categories instead of collecting and paying to enrich them. Applies to keyword searches, category browsing, the Specials category above and pasted listing URLs. Excluding 'All specials' drops every product currently on special. Leave empty to exclude nothing (existing behaviour).
excludeCategoriesarrayOptional. Departments to skip entirely, so they are never collected and never charged. Use the name from an On Special or category link, for example 'liquorland', 'deliver-more-range' or 'big-pack-value'. A product is skipped when it belongs to any listed department, even if it also appears under one you keep - the same product is often shelved under several at once. To skip promo types (half price, online only) instead, use Exclude specials categories above.
minPriceintegerOptional. Only keep products priced at or above this amount.
maxPriceintegerOptional. Only keep products priced at or below this amount.
fetchDetailsbooleanCollect each product's full detail (long description, ingredients, allergens, dietary statement, storage, dimensions, country of origin, GTIN, nutrition panel and images) plus its aggregate rating and star distribution.
fetchReviewsbooleanAlso collect customer reviews for each product (star rating, title, review text, author display name, date, verified-purchase flag and helpful-vote count), walked across review pages. Note: most Coles grocery products carry no reviews; those records leave the rating/reviews fields absent.
maxReviewsPerProductintegerCap on reviews collected per product when 'Fetch customer reviews' is on. At most 200 per product are collected; 0 or a larger value is treated as 200.
maxItemsintegerMaximum number of products to return across the whole run. Use 0 for unlimited.
maxPagesintegerMaximum result pages per keyword, category, or URL. Leave empty for all available pages. This does not cap the number of products; Max products does that.
resumeFromRunIdstringOptional. ID of a previous run of this actor (or a dataset ID). Products already in that dataset are skipped, so this run returns only NEW products (a delta). Combine both runs' datasets for the full set. Max products then counts only the new products. For recurring daily monitoring of the same search, use Incremental mode below instead.
incrementalModebooleanTurn this on for daily or recurring monitoring. The first run returns all matching products as NEW. Later runs normally return only NEW, UPDATED, and REAPPEARED products. Turn on "Emit unchanged" or "Emit expired" only when you also want those products returned (and billed). State is kept separately for each distinct search/filter setup (or by State key below).
stateKeystringOptional. Name this monitoring campaign to keep its state stable, or to deliberately share state across differently-configured runs. Leave empty to let the actor derive a key automatically from your search/filter/detail settings, different searches then never mix state with each other.
emitUnchangedbooleanOff by default. Turn on to also return products that have not changed since the last run, marked UNCHANGED. This returns, and bills, extra rows you already have, so leave it off unless you specifically want the full snapshot every run.
emitExpiredbooleanOff by default. Turn on to also return products that were present in a previous run but are no longer found, marked EXPIRED. Only produced once a run has fully scanned the tracked search, not when Max products or Max pages capped it, or when Resume was used. This returns, and bills, extra synthetic rows.
ignoreFieldsForChangesarrayOptional. Field names that must NOT count as a change in incremental mode, for example unitPrice or imageUrl. Use a dotted path for a nested field (a.b). Ratings and review counts are already ignored. Ignored fields are still returned in every row; they only stop a product from being marked UPDATED. Unknown names are harmless.
mcpConnectorsarrayOptionally send results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize one under Apify, Settings, API & Integrations, then select it here. Notion gets a rich page-per-item export; other connectors get a best-effort write/digest. Leave empty to skip; never changes the dataset output. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com).
notionParentPageUrlstringURL or id of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors.
maxNotifyListingsintegerCap on items written to each connector per run. Does not affect the dataset.

Fields in the output

The documented dataset includes the fields below. Availability can depend on the source page and selected mode.

nameName
changeTypeChange type (incremental mode) (text)
titleFull title
brandBrand
pricePrice
wasPriceWas
savingsAmountSave $
savingsPercentSave %
promoLabelPromo
comparablePriceUnit price
sizeSize
isOnSpecialOn special (boolean)
Show 25 more fields
isOnlineOnlyOnline only (boolean)
departmentsDepartments (array)
ratingRating
reviewCountReviews
ratingDistributionStar distribution (object)
isAvailableAvailable (boolean)
productIdProduct ID
categoryCategory
imageImage (image)
reviewsCollectedReviews collected
urlURL (link)
changedFieldsChanged fields (incremental mode) (array)
firstSeenAtFirst seen (incremental mode) (date)
lastSeenAtLast seen (incremental mode) (date)
gtinGTIN
barcodebarcode
categoryPathCategory path (array)
ingredientsingredients
allergensallergens
dietarydietary (array)
nutritionnutrition (object)
storageInstructionsStorage
countryOfOriginCountry of origin
longDescriptionDescription
reviewsreviews

Example output

An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.

{
  "productId": "8150288",
  "name": "Coles Full Cream Milk 3L",
  "title": "Coles Full Cream Milk 3L",
  "brand": "Coles",
  "description": "COLES FULL CREAM MILK 3L",
  "size": "3L",
  "url": "https://www.coles.com.au/product/coles-full-cream-milk-3l-8150288",
  "price": 4.5,
  "isOnSpecial": false,
  "comparablePrice": "$1.50/ 1L",
  "unitPrice": 1.5,
  "unitOfMeasure": "l",
  "unitMeasure": "1l",
  "currency": "AUD",
  "isAvailable": true,
  "availabilityType": "InStoreAndOnline",
  "aisle": "Full Cream Milk",
  "category": "Milk",
  "subCategory": "Dairy, Eggs & Fridge",
  "department": "DAIRY",
  "departments": [
    "dairy-eggs-fridge"
  ],
  "isOnlineOnly": false,
  "image": "https://cdn.productimages.coles.com.au/productimages/1/8150288.jpg",
  "longDescription": "A fresh Australian full cream milk, rich and creamy.",
  "gtin": "9300601123456",
  "brandSlug": "coles",
  "countryOfOrigin": "Australia",
  "countryOfOriginStatement": "Made in Australia from at least 99% Australian ingredients",
  "categoryPath": [
    "Milk",
    "Dairy, Eggs & Fridge",
    "Full Cream Milk"
  ],
  "ingredients": "Full cream milk.",
  "allergens": "Contains Milk",
  "dietary": "Source of Calcium",
  "storageInstructions": "Keep refrigerated. Store at or below 5 degrees C.",
  "nutrition": {
    "servingSize": "250mL",
    "servingsPerPackage": "12.00",
    "breakdown": [
      {
        "name": "Energy",
        "perServe": "450kJ",
        "per100": "180kJ"
      }
    ]
  },
  "rating": 4.6,
  "ratingCount": 128,
  "reviewCount": 128,
  "ratingDistribution": {
    "1": 2,
    "2": 3,
    "3": 7,
    "4": 20,
    "5": 96
  },
  "recommendedCount": 118,
  "reviews": [
    {
      "reviewId": "1000000001",
      "rating": 5,
      "title": "Family favourite",
      "body": "Fresh and creamy, our family buys it every week.",
      "author": "sampleShopper",
      "date": "2025-02-14T06:01:00.000+00:00",
      "verifiedPurchase": true,
      "isRecommended": true,
      "helpfulCount": 4
    }
  ],
  "reviewsCollected": 1,
  "searchMode": "search"
}

Ways to use this data

  • Price tracking and comparison sites: collect current price, was price, unit price and specials across categories to power a grocery comparison tool.
  • Deal and specials alerting: monitor the On Special catalogue and specific departments, and get notified only when something changes.
  • Nutrition and ingredient research: build datasets of allergens, dietary claims and nutrition panels across a category for dietary or health apps.
  • Market and assortment research: track category depth, brand presence and product variants across Coles' catalogue over time.
  • Customer sentiment analysis: pull ratings and review text for the products that carry them to understand what shoppers say.

Before you run

Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.

Questions about this actor

What data does Coles AU Scraper return?

The documented output for Coles AU Scraper includes name, change type (incremental mode), full title, brand, price, was, save $ and save %. Availability of each field depends on the source page and the selected mode.

How much does Coles AU Scraper cost?

It costs $1.80 per 1,000 results on the Apify Free plan and from $1.20 on paid plans, with smaller per-run or optional feature charges listed on Apify. The Apify listing shows the current rate for every plan.

Can I get only new or changed products on a schedule?

Yes. Schedule the actor from the Schedules tab and turn on Incremental mode. Each run then returns only new, updated and reappeared products, classified against the previous run of the same search, and unchanged ones are not billed unless you turn that on too.

Why does a GTIN show as scientific notation in Excel or Google Sheets?

This is an import display issue, not a data problem: the dataset itself always stores gtin as text. Excel and Google Sheets both auto-detect long all-digit columns as numbers on a plain CSV import and re-render them in scientific notation, losing trailing digits. Import through Data → From Text/CSV (Excel) or choose "Do not convert" (Google Sheets), and set the gtin column to Text; the JSON and Excel dataset downloads are not affected.

Why did my run fail instead of returning an empty dataset?

The run is marked failed only when it could never establish a working connection to the store at all, when the Resume id you supplied is not a readable run or dataset from your account, or when the resume and incremental mode inputs conflict (for example, incremental mode already has saved state for this search and you also supplied Resume). A run that connects successfully but finds no matching products, or where your filters and exclusions removed everything collected, completes normally with an empty dataset and a status message explaining why.

Can I use it with AI agents or MCP?

Yes. Call it from any Apify integration or MCP client, and use the connector field to push results into Notion, Linear or Airtable.

Ready to collect with Coles AU Scraper?

Run it on Apify with your own input and export the results as JSON, CSV or Excel.