Price changes last night
- →
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.
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.
5 stores nearest to 2000
Tonight's price of this product
cheapest and dearest store for each product, from tonight's read of every Coles 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.
{
"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"
}
productIdnamebrandbarcode (EAN)countryOfOriginpricepricePerKg / pricePerLitre / pricePerItemspecialTypeofferDescription e.g. "Buy 2 for $9.40"storeIdinStockavailableQuantityaislepreviousPricepriceChangedAtlowestPrice30daveragePrice90ddiscountCheckingredientsallergensnutritionscrapedAtsource cache · liveSee ranging, stock and aisle placement store by store, and how they shift from one run to the next.
Shelf price, unit price and multi-buy deals for every product, with each change timestamped.
Test any special against what the product really cost before it, with discountCheck.
Run it nightly and send only what changed to Slack or Google Sheets through Apify integrations.
Price a basket at every store near a postcode, and across retailers by barcode and unit price.
Sign in with a free Apify account. No card needed to try.
Search or browse the range, and pick the stores you care about.
One row per product and store. Download it, call the API, schedule it, or hand it to an AI agent.
Add a schedule on Apify, for example daily at 06:00, and send the results where you work.
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 }'
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('crawlplant/coles-au').call({
queries: ['milk'],
storeIds: ['313', '584'],
maxItems: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
const outOfStock = items.filter((row) => row.inStock === false);
console.log(outOfStock.map((r) => `${r.name} @ ${r.storeName}`));
# 1. Add this MCP server to your agent
https://mcp.apify.com?tools=crawlplant/coles-au
# 2. Ask in plain language
Which Coles stores near 2010 have 2 L full cream milk in stock right now,
and in which aisle? Flag any store where the price differs.
The same factory promises as every CrawlPlant Actor. How the factory works
The full range is harvested every night, and store rows are fetched fresh for your run. All stamped with scrapedAt.
Runs read the cached harvest, so results come back while you wait.
If one store can't be reached, you still get every other row.
Canary runs catch changes on the site before they reach you.
Every price change since September 2026, kept per product.
$0.80 per 1,000 on Apify's Free plan. Exact tiers are on the Store page.
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.
inStock, availableQuantity and aisle are what Coles shows for that product at that store when your run reads it, stamped with scrapedAt.
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.
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.
To 27 September 2026, and it grows every night. Each product carries previousPrice and priceChangedAt for the latest move, plus lowestPrice30d and averagePrice90d.
No. CrawlPlant is an independent tool that collects publicly available product, price and stock data. No personal data, nothing behind a login.