Coles Scraper - Prices, Specials, Half Price & Nutrition avatar

Coles Scraper - Prices, Specials, Half Price & Nutrition

Pricing

from $0.45 / 1,000 products

Go to Apify Store
Coles Scraper - Prices, Specials, Half Price & Nutrition

Coles Scraper - Prices, Specials, Half Price & Nutrition

Scrape Coles Australia by keyword, category, aisle, specials (half price, multi-buy, online only), link or product number: price, was price, unit price per kg/L, offer, stock, limits, category, images. Barcode, ingredients, nutrition add-on. Store directory. $0.45 per 1,000 products, no start fee.

Pricing

from $0.45 / 1,000 products

Rating

0.0

(0)

Developer

Top Api

Top Api

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Security

Limited permissions

Share

What does Coles Scraper do?

Coles Scraper reads products from coles.com.au, Coles Australia's online supermarket, and returns one row per product: price, was price, the special (half price, % off, multi-buy), unit price, availability and stock count, purchase limits, Coles' category path and images. Search by keyword, read a category or aisle, pull the On Special catalogue, or paste Coles links and product numbers.

Also known as: Coles API, Coles price scraper, Coles specials scraper, Coles half price scraper, Australian grocery price tracker.

  • 🛒 Any way in: search terms, categories and aisles, the whole On Special catalogue (all, half price, multi-buy, online only), Coles links, product numbers, or every department at once.
  • 💲 Full price picture: shelf price, was price, saving in $ and %, Coles' badge ("1/2 Price", "40% Off"), multi-buy terms split into numbers ("Pick any 2 for $10.50" → 2, $10.50, $5.25 each).
  • ⚖️ Comparable unit prices: Coles' own "$3.39/ 100g" plus a per-kg, per-litre or per-item price, so 100 g and 1 kg labels compare directly.
  • 🧾 Product details add-on: barcode (GTIN), ingredients, allergens, nutrition per serve and per 100 g, storage, dimensions, country of origin.
  • 🏪 Store directory: all 878 Coles supermarkets with address, phone, coordinates and trading hours.
  • 🔁 Monitoring: later runs deliver only new products and price, special or stock changes.
  • 💸 $0.45 per 1,000 products, no start fee. Filtered products and unchanged monitor products are never charged.
  • 🔓 No Coles account, no login, no cookies, no browser.

What data can you get from Coles?

🆔 Product number product_id🏷️ Name name + brand📦 Size size
💲 Price price↩️ Was price original_price💰 Saving discount_amount / discount_percent
🔖 Special special_type + price_description🛍️ Multi-buy offer_description🔢 Multi-buy terms multibuy_quantity / multibuy_price
⚖️ Unit price comparable📏 Per kg / L / each price_per_base_unit🧮 price_per_kg · price_per_litre · price_per_item
✅ Available availability📊 Stock count available_quantity🚫 Limits retail_limit / promotional_limit
🗂️ Category path category_path🏬 Coles' merchandise codes category / class_name🖼️ Images image_url / image_urls
🔍 Barcode gtin🥣 Ingredients ingredients⚠️ Allergens allergens
🍎 Nutrition nutrition + per-100 g columns🌏 Country of origin country_of_origin🏪 Stores: address, phone, hours, coordinates

How to scrape Coles with Coles Scraper

  1. Sign up for a free Apify account - it comes with free monthly credit.
  2. Open Coles Scraper and type a search term (e.g. milk), a category (dairy-eggs-fridge/milk), or paste a Coles link.
  3. Or pick a Specials list - half price, multi-buy or the whole catalogue.
  4. Set Max per search, and switch on Product details if you need barcodes, ingredients or nutrition.
  5. Click Start. The prefilled run (20 milk products) finished in 5-6 seconds in our tests.
  6. Download the rows as JSON, CSV, Excel or HTML, or read them through the API.

⬇️ Input

ParameterTypeDescription
searchTermsarraySearch terms, one per line (milk, tim tam). A product number finds that product.
startUrlsarrayColes links: product, category or aisle, search (its sort and filters are kept), specials, store page.
categoriesarrayDepartments, categories or aisles by name or slug path: Dairy, Eggs & Fridge, dairy-eggs-fridge/milk, milk.
allDepartmentsbooleanEvery department (18; tobacco only when named). Default false.
specialsselectnone (default), all, halfprice, multibuy, onlineonly. With categories: that category's specials.
productIdsarrayColes product numbers, e.g. 8150288.
storeDirectorybooleanAdd store rows (878 stores). storeStates narrows it to NSW, VIC, QLD, WA, SA, TAS, ACT, NT.
sortByselectrelevance (default), priceAscending, priceDescending, unitPriceAscending.
specialsOnly, halfPriceOnly, inStockOnlybooleanKeep only specials / half price / available products.
minPrice, maxPrice, minDiscountPercentnumberPrice range and minimum saving.
brands, excludeCategoriesarrayKeep these brands / drop these categories.
includeSponsoredbooleanKeep the sponsored tiles at the top of page 1 (default true; they count in Coles' own result total).
includeSuggestedbooleanAdd the cross-sell product Coles suggests beside results. Default false.
includeDetailsbooleanProduct details add-on. Default false.
dietary, excludeAllergens, maxSugarPer100g, minProteinPer100garray / numberLabel filters (turn details on).
monitorModebooleanOnly new or changed products on later runs. onlyChanged (default true), includeDisappeared, monitorStoreName.
maxResultsPerSearchintegerProducts per search, category, specials list or link. Default 100, 0 = all.
maxItemsintegerRows per run in total. Default 1,000, 0 = no limit.
maxPagesintegerOptional page cap per search (48 products a page).
proxyConfiguration, maxConcurrency, requestIntervalMsAdvanced: see "Limits" below.

Input JSON

{
"searchTerms": ["tim tam"],
"categories": ["dairy-eggs-fridge/milk"],
"specials": "halfprice",
"includeDetails": true,
"maxResultsPerSearch": 100
}

dairy-eggs-fridge/milk/full-cream-milk is department / category / aisle, exactly as in the link coles.com.au/browse/dairy-eggs-fridge/milk/full-cream-milk. A bare name like milk or Full Cream Milk is matched against Coles' own menu.

specials: "halfprice" alone reads the whole half-price catalogue (1,809 products on 2026-10-28). Add categories: ["pantry"] for the pantry half-price list, or a search term for the half-price products that match it.

Use the whole catalogue with a schedule

allDepartments: true with maxResultsPerSearch: 0 reads every department (about 31,000 listings before overlaps). Category and specials reads longer than one page come in price order: Coles' own order repeats products from page to page (94 of 803 rows in one test), the price order does not.

⬆️ Output

One row per product (a run that also asks for stores adds store rows, row_type: "store"). A real row from a test run of the specials catalogue, shortened:

{
"product_id": "1593542",
"name": "Mini Italian Herb Mozzarella Sticks",
"brand": "Pickers",
"size": "230g",
"price": 7.8,
"original_price": null,
"on_special": true,
"special_type": "MULTI_SAVE",
"offer_description": "Pick any 2 for $10.50",
"multibuy_quantity": 2,
"multibuy_price": 10.5,
"multibuy_unit_price": 5.25,
"comparable": "$3.39/ 100g",
"price_per_base_unit": 33.9,
"unit_price_basis": "kg",
"availability": true,
"available_quantity": 21,
"retail_limit": 20,
"promotional_limit": 12,
"category_path": "Frozen > Frozen Pastry & Party Food > Party Food",
"image_url": "https://cdn.productimages.coles.com.au/productimages/1/1593542.jpg",
"url": "https://www.coles.com.au/product/pickers-mini-italian-herb-mozzarella-sticks-230g-1593542"
}

With Product details on, the same row also carries (real values from a test run):

{
"gtin": "9300682058780",
"ingredients": "Sugar, Glucose Syrup, Milk Solids, Cocoa Butter, Cocoa Mass, ...",
"allergens": "Contains Egg, Gluten, Milk, Soy May Contain Peanut",
"country_of_origin": "MADE IN AUSTRALIA",
"serving_size": "16g",
"sugars_per_100": 57.5,
"protein_per_100": 3.3
}

Fields and how often they are filled

Measured on a 1,000-product run of the specials catalogue and a 24-product details run (2026-10-28).

FieldFilled
product_id, name, brand, size, price, availability, category_path, image_url, url100%
comparable, unit_price, price_per_base_unit100%
available_quantity99%
original_price (was price; only when Coles shows one)54% of specials
offer_description, multibuy_* (multi-buy deals)39% of specials
min_guarantee (freshness guarantee)45%
store_aisle (in-store aisle, when Coles lists one)11%
Details: gtin, country_of_origin, dimensions, last_updated100%
Details: ingredients, allergens, long_description96%
Details: nutrition and the per-100 g columns92%
Details: storage83%

Monitoring adds change_type (NEW, PRICE_DROP, PRICE_RISE, BACK_IN_STOCK, OUT_OF_STOCK, SPECIAL_STARTED, SPECIAL_ENDED, WAS_PRICE_CHANGED, DISAPPEARED), old_price, price_delta, price_delta_pct, old_available_quantity and first_seen_at. Every field is described in the dataset schema (Output tab).

Use cases

  • 🏷️ Grocery price tracking: follow shelf and unit prices of a category every week.
  • 🔥 Specials monitoring: list every half-price and multi-buy deal each Wednesday when the catalogue turns over.
  • 📊 Brand and category managers: see your range and your competitors' prices, specials and stock in one table.
  • 🧪 Nutrition and labelling data: barcode, ingredients, allergens and nutrition per 100 g for a whole aisle.
  • 🧾 Price comparison apps: product numbers and barcodes as keys, unit prices that compare across pack sizes.
  • 🏪 Store location data: every Coles supermarket with coordinates and trading hours.

How much does it cost to scrape Coles?

EventPrice
Product row$0.45 per 1,000 ($0.00045 each)
Product details (add-on, only on rows that got them)$0.36 per 1,000
Store row$0.72 per 1,000
RunCost
100 products$0.045
1,000 products$0.45
1,000 products with details$0.81
All 878 stores$0.63

There is nothing else to pay: Apify platform usage is included in these prices, and there is no start fee. Set a maximum charge on the run and it stops cleanly when the charge is reached; every delivered row is charged once, never more.

Integrations, API, scheduling & MCP

  • Schedule the run in Apify (e.g. every Wednesday for the new specials) and switch on Only new or changed so each run returns only what moved.
  • Webhooks send the dataset to your system when a run finishes; Make, Zapier, n8n, Google Sheets and Slack connect from the Integrations tab.
  • API: start runs and read rows with the Python or JavaScript client, or POST https://api.apify.com/v2/acts/TopApi~coles-scraper/run-sync-get-dataset-items for small runs.
  • MCP: AI agents can call Coles Scraper as a tool through the Apify MCP server.

More Australian grocery scrapers

🛒 ALDI Australia Scraper - ALDI products, Special Buys and stores🥬 Woolworths Scraper - Woolworths products and specials🛍️ E-commerce Product Scraper - products from any online store

All our actors: apify.com/TopApi.

Limits & empty runs

  • Prices are Coles' online prices before a store is chosen (what coles.com.au shows a new visitor). Per-store prices and stock are not available.
  • No ratings or reviews: Coles' own product data carries none.
  • Barcode search is not available (Coles' search does not match barcodes); barcodes come with Product details.
  • Coles' firewall turns away bursts from one address, so requests are spaced (1.5 s by default) and the run moves from a direct connection to Apify's datacenter proxy, then an Australian residential proxy, only when Coles turns it away. If all three are turned away the run stops, keeps what it read and says so in the status; nothing else is charged.
  • Speed: about 48 products per request. A 1,000-product specials run took 35 seconds; product details add about 1.5 seconds per product.
  • Empty searches: when Coles finds nothing, or only shows look-alikes, the run delivers nothing and names the search in the status.
  • Store rows carry address, phone, coordinates and trading hours; Coles' store pages listed no holiday hours, services or neighbouring stores for any of the 46 stores read on 2026-10-28, so those are not in the rows.

❓ FAQ

How much does Coles Scraper cost?

$0.45 per 1,000 products, plus $0.36 per 1,000 for the details add-on and $0.72 per 1,000 store rows. No start fee, and platform usage is included.

How many products can Coles Scraper return?

Every product Coles lists for a search, category or specials list (48 per page, all pages). The whole catalogue is about 31,000 listings across 18 departments.

Can Coles Scraper track price changes and specials over time?

Yes. Turn on Only new or changed and schedule the run: later runs deliver new products and price, was price, special and availability changes, with the old price and the change.

Does Coles Scraper get the half-price specials?

Yes: set Specials to Half price (or All, Multi-buy, Online only), on its own or with a category or search term.

Does Coles Scraper give barcodes and nutrition?

Yes, with Product details on: GTIN barcode, ingredients, allergens, dietary statement, nutrition per serve and per 100 g, storage and country of origin.

Can Coles Scraper give prices for my local store?

No. Rows carry the prices coles.com.au shows before a store is chosen. The store directory gives every store's address, phone and trading hours.

Do I need a Coles account or API key for Coles Scraper?

No. It reads the public website without a login.

Can I use Coles Scraper through the Apify API?

Yes. Every input above works as JSON through the API and the Python or JavaScript client.

Can AI agents use Coles Scraper through MCP?

Yes, through the Apify MCP server, as a tool that takes the same inputs.

Why did my Coles Scraper run return no products?

The search matched nothing on Coles, a filter removed everything (filtered products are not charged), or monitoring found nothing new since the last run. The status message and the RUN_SUMMARY record say which.

Your feedback

Found a bug or need a field? Open an issue in the Issues tab and we will look at it.