Live · refreshed nightly

Coles prices and stock for every store, with price history.

The full Coles range, refreshed every night: shelf and unit prices, multi-buy deals and price history, plus price, stock and aisle for any of ~878 stores, and a check on every special.

Independent tool, not affiliated with Coles. Public data only.

Price changes last night

in total
~27kproducts, the full range
~878stores, each with its own rows
Per storeprice, stock and aisle for every product
Sept 2026price history since
Live data

Any store, on demand.

Every product in every Coles store, read every night. Pick a postcode to compare one product across nearby stores. It's the same store-level data your run returns.

Last harvest

,
products tracked
stores covered
price changes last night
specials right now

Find stores near you

store directory

5 stores nearest to 2000

Tonight's price of this product

Real special or fake?

was
previous
30-day low
90-day avg

Same product, different price

fruit & veg · every store, tonight

cheapest and dearest store for each product, from tonight's read of every Coles store

What you get

One record per product, per store.

Store-level rows with stock and aisle, price history worked out for the online range, and the full product panel. Typed fields, stable ids.

sample recordJSON
{
  "productId": "4661649",
  "name": "Coles Water 12x600ml",
  "brand": "Coles",
  "size": "12 Pack",
  "price": 5.35,
  "pricePerLitre": 0.74,
  "isOnSpecial": true,
  "specialType": "Multi Buy",
  "offerDescription": "Buy 2 for $9.40",
  "categoryPath": ["Drinks", "Water", "Still Water"],
  "storeId": "7674",
  "inStock": true,
  "availableQuantity": 1074,
  "purchaseLimit": 20,
  "lowestPrice30d": 5.35,
  "scrapedAt": "2026-09-27T15:45:14.223Z",
  "source": "cache"
}

Product

  • productId
  • name
  • brand
  • barcode (EAN)
  • countryOfOrigin

Price today

  • price
  • pricePerKg / pricePerLitre / pricePerItem
  • specialType
  • offerDescription e.g. "Buy 2 for $9.40"

In this store

  • storeId
  • inStock
  • availableQuantity
  • aisle

History, worked out

  • previousPrice
  • priceChangedAt
  • lowestPrice30d
  • averagePrice90d
  • discountCheck

Food panel

  • ingredients
  • allergens
  • nutrition

Provenance

  • scrapedAt
  • source cache · live
Use cases

When the store matters.

retail & supplier analysts

Store-level retail analytics

See ranging, stock and aisle placement store by store, and how they shift from one run to the next.

pricing teams

Price monitoring

Shelf price, unit price and multi-buy deals for every product, with each change timestamped.

shoppers & journalists

Deal checks

Test any special against what the product really cost before it, with discountCheck.

ops teams

Price-change alerts

Run it nightly and send only what changed to Slack or Google Sheets through Apify integrations.

comparison sites

Basket and store comparison

Price a basket at every store near a postcode, and across retailers by barcode and unit price.

How to run

From zero to data in three steps.

  1. 01

    Open it on Apify

    Sign in with a free Apify account. No card needed to try.

  2. 02

    Choose products and stores

    Search or browse the range, and pick the stores you care about.

  3. 03

    Get your results

    One row per product and store. Download it, call the API, schedule it, or hand it to an AI agent.

Run it every night

Add a schedule on Apify, for example daily at 06:00, and send the results where you work.

  • Schedules
  • Webhooks
  • Google Sheets
  • Slack
  • REST API
  • MCP
curl -X POST \
  "https://api.apify.com/v2/acts/crawlplant~coles-au/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "queries": ["milk"], "storeIds": ["313", "584"], "maxItems": 50 }'
Reliability

Runs that don't break.

The same factory promises as every CrawlPlant Actor. How the factory works

Nightly snapshot

The full range is harvested every night, and store rows are fetched fresh for your run. All stamped with scrapedAt.

Answers in seconds

Runs read the cached harvest, so results come back while you wait.

Partial, never failed

If one store can't be reached, you still get every other row.

Checked every 3 hours

Canary runs catch changes on the site before they reach you.

History built in

Every price change since September 2026, kept per product.

Pricing

Pricing

$0.50per 1,000 products

$0.80 per 1,000 on Apify's Free plan. Exact tiers are on the Store page.

  • Stock and aisle included in every store row
  • Price history and the special check included
  • No subscription. The free plan is enough to try it
FAQ

About this Actor.

General questions are on the home page. Something else? piotr@crawlplant.com

Which stores do you cover?

All of them, about 878 Coles stores. Pick stores by id, by postcode or all at once: each store gets its own rows, with price, stock and aisle for every product, fetched fresh for your run.

What does stock and aisle mean here?

inStock, availableQuantity and aisle are what Coles shows for that product at that store when your run reads it, stamped with scrapedAt.

Do you capture multi-buy deals?

Yes. Multi-buy specials have specialType "Multi Buy", and offerDescription keeps the offer text as shown, such as "Buy 2 for $9.40", next to the regular price and unit price.

How do you judge whether a special is real?

We check the "was" price against the product's own price history. discountCheck.verdict is genuine when the "was" price was really charged for at least 28 of the 90 days before the special, and questionable when it wasn't.

How far back does the price history go?

To 27 September 2026, and it grows every night. Each product carries previousPrice and priceChangedAt for the latest move, plus lowestPrice30d and averagePrice90d.

Is this affiliated with Coles?

No. CrawlPlant is an independent tool that collects publicly available product, price and stock data. No personal data, nothing behind a login.