Coles Prices Scraper avatar

Coles Prices Scraper

Pricing

$1.49 / 1,000 results

Go to Apify Store
Coles Prices Scraper

Coles Prices Scraper

Give search terms, Coles category URLs or product ids; get one row per product: price, was-price, unit price, specials, stock and category. Price-drop watch. $1.49 per 1,000 products.

Pricing

$1.49 / 1,000 results

Rating

0.0

(0)

Developer

Jesse Hawkins

Jesse Hawkins

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 days ago

Last modified

Categories

Share

Grocery prices from Coles Australia. Give it search terms, Coles category URLs, or product URLs and ids. It returns one row per product with the current price, the was-price and saving, the unit price, whether the product is on special, whether it is in stock, and the category. Turn on the price watch to get only the products whose price or stock changed since your last run.

No browser, so runs are fast and cheap. Public, logged-out pages only.

What you get

One row per product:

FieldExample
storeColes
productId8150288
name, brand, sizeFull Cream Milk, Coles, 3L
price4.95 (AUD)
wasPrice, saveAmount6.90, 1.40 — null when not on special
isSpecial, promotionTypetrue, SPECIAL
unitPrice, unitMeasure1.65, 1l
comparablePrice$1.65/ 1L
inStock, availabilityTypetrue, InStoreAndOnline
category, subCategoryMilk, Dairy, Eggs & Fridge
aisleFull Cream Milk
imageUrl, urlproduct photo, Coles product page
sourceUrl, scrapedAtthe page it came from, UTC
changeType, previousPricePRICE_DROP, 5.50 — price watch only

Input

{
"searchTerms": ["milk", "sourdough bread"],
"categoryUrls": ["https://www.coles.com.au/on-special"],
"productUrls": ["8150288"],
"maxResults": 200,
"maxItems": 500,
"specialsOnly": false,
"inStockOnly": false
}
  • searchTerms — searched one at a time, paged until maxResults.
  • categoryUrls — any coles.com.au listing page: a /browse/... category, a /search/products?q=... search, or /on-special. Paging is added for you.
  • productUrls — products to read one by one: a product URL, its id (8150288) or its slug. One row each. An id that Coles does not have is skipped and not billed.
  • maxResults — per search term and per URL. Each product returned is one billed result, so this is your cost control.
  • maxItems — optional cap for the whole run, over all targets.
  • specialsOnly — only products on special. The Actor sends Coles' own specials filter, so each page holds only specials.
  • specialType — all, halfprice, multibuy or onlineonly. A value other than all turns specialsOnly on.
  • inStockOnly — skip products Coles reports as unavailable.

Price watch

Set monitorMode to changes. Each row then gets changeType and previousPrice, compared with the last run of the same watchlist:

changeTypeMeaning
NEWnot in the last run
PRICE_DROP, PRICE_RISEthe price changed
BACK_IN_STOCK, OUT_OF_STOCKthe stock changed
UNCHANGEDno change
  • watchlistName — keeps price histories apart, e.g. one for each scheduled task. Default default.
  • onlyChanged — return only changed products. UNCHANGED products are not returned and not billed. The first run returns every product as NEW.

The last prices are kept in a named key-value store in your Apify account, coles-prices-watch-<watchlist>. Delete it to start again.

Switching from another Coles Actor

Send the input that you send now. This Actor also reads these field names:

You sendThis Actor reads it as
scrapeMode: searchKeyword, providedUrls, skuListthe one source that the mode names
searchQuery, querya search term
startUrls, categoryUrl, urla listing URL, or a product if the path has /product/
categorySlughttps://www.coles.com.au/browse/<slug>
skuList, productId, itemId, itemSlugproducts
operation: search, category, specials, itemthe one source that the operation names
special (with operation specials)specialType; allspecials is all
limitmaxResults
maxItemsmaxItems, the run cap
monitorMode, stateName, onlyChangedthe price watch

Other fields, such as includeDescription, maxRequestsPerCrawl, details and includeRaw, are accepted and change nothing. A postcode, storeId or state is accepted, and the status message says that the prices are national online prices. An operation that does not return products, such as a store search or a barcode search, stops the run with a message that says why. Barcode search is not supported because coles.com.au returns no product for a barcode.

You get the same rows as from any other input: the fields in "What you get" above.

Output

{
"store": "Coles",
"productId": 1748773,
"name": "High Protein Kefir Strawberry",
"brand": "Babushka",
"size": "500g",
"price": 5.5,
"wasPrice": 6.9,
"saveAmount": 1.4,
"isSpecial": true,
"promotionType": "SPECIAL",
"unitPrice": 1.1,
"unitMeasure": "100g",
"comparablePrice": "$1.10/ 100g",
"inStock": true,
"availabilityType": "InStoreAndOnline",
"category": "Yoghurt",
"subCategory": "Dairy, Eggs & Fridge",
"url": "https://www.coles.com.au/product/high-protein-kefir-strawberry-1748773",
"scrapedAt": "2026-10-02T11:00:00+00:00"
}

Price

$1.49 per 1,000 products ($0.00149 each), charged per product returned. Nothing else is charged: no per-run fee, no charge for pages that return nothing, and a product with no price is skipped rather than billed. Duplicates across pages are returned once.

Limits, honestly

  • Coles only. Woolworths and Aldi are not covered.
  • Prices are the national online prices Coles shows a logged-out visitor. They are not store-specific, and they do not include a loyalty or member price, because that needs an account and this Actor never signs in.
  • Currency is AUD, always.
  • Up to 40 pages per target (about 1,900 products). For a whole category, split it into sub-categories.
  • Coles blocks some data-centre IPs. Apify Proxy is on by default. If a run reports pages blocked, switch the proxy to the RESIDENTIAL group, country AU.
  • No nutrition, ingredients or per-store stock. A product URL returns the same fields as a search row.

What it will not do

No login, no loyalty or member pricing, no CAPTCHA solving, no personal data, and no faster-than-polite request rate.

Support

Open an issue on this Actor's Issues tab. Reported issues are fixed within 14 days.