Foodland, Thrifty Foods, IGA & FreshCo Scraper — Canada
Pricing
from $0.75 / 1,000 results
Foodland, Thrifty Foods, IGA & FreshCo Scraper — Canada
Prices, promotions and full nutrition panels for 150,000 products across four Canadian grocery banners. Compare the same SKU between stores.
Pricing
from $0.75 / 1,000 results
Rating
0.0
(0)
Developer
Michael Hill
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Most grocery scrapers give you a name and a price. This one gives you the regular price, the sale price, and the date the promotion ends — plus a 16-field nutrition panel — across four Canadian grocery banners at once.
Foodland, Thrifty Foods, IGA and FreshCo, in one run. About 150,000 products combined. Export to CSV, Excel, JSON, or pull it straight from the API.
Why this one
| Typical grocery scraper | This Actor | |
|---|---|---|
| Current price | ✅ | ✅ |
| Regular price when an item is on sale | ❌ | ✅ regularPrice |
| When the promotion ends | ❌ | ✅ priceValidUntil |
| Full nutrition panel | ❌ | ✅ 16 fields |
| Same product across several stores | ❌ | ✅ shared sku |
If you are tracking promotions rather than just prices, that middle block is the difference between "this costs $4.99" and "this is $4.99 until Wednesday, normally $6.79."
The four banners
| Store | Region | Products |
|---|---|---|
| Foodland | Ontario | 43,000 |
| Thrifty Foods | British Columbia | 38,000 |
| IGA | Quebec | 39,000 |
| FreshCo | Discount, national | 33,000 |
All four are Empire Company banners and share one product ID. The same sku identifies the same item in every store, so a single run gives you the same product priced in Ontario, BC and Quebec side by side — which is exactly the comparison a plain price scraper cannot do.
Sobeys and Safeway are covered by separate Actors and use the same sku, so all six line up together.
What you get
| Field | Example |
|---|---|
banner | Foodland — which store the row came from |
name | Compliments Canola Oil 100% Pure 946 ml |
brand | Compliments (empty for unbranded items) |
price | 6.29 — the current price, promotional if one is running |
regularPrice | 8.49 — the regular price; same as price when nothing is on offer |
onSale | true / false |
priceValidUntil | 2026-09-16 — when a promotion ends |
currency | CAD |
availability | InStoreOnly or OutOfStock |
category | Oils, Vinegars & Salad Dressing |
categoryPath | Pantry > Oils, Vinegars & Salad Dressing |
sku | 135163 — the internal Empire ID, shared across banners; not a UPC |
imageUrl | Link to the product image, where one is published |
url | Link to the product page |
scrapedAt | ISO timestamp |
With Include nutrition panel on (the default), each row also carries servingSize, calories, fat, saturatedFat, transFat, omega3, omega6, cholesterol, sodium, carbohydrate, fibre, sugar, protein, calcium, iron and potassium.
What people use it for
- Promotion tracking — every discounted row carries the regular price and the end date, not just the sale price
- Regional price comparison — the same SKU in Ontario, BC and Quebec from one run
- Discount-banner benchmarking — FreshCo against the full-service banners, same product IDs
- Nutrition and diet apps — a large Canadian food database with real retail prices attached
- Research — food price inflation, assortment differences between regions
How to use it
- Pick your Stores. All four are selected by default.
- Put one or more words in Search terms —
milk,bread,coffee. Leave it empty to walk the whole catalogue. - Set Maximum products. This is the total across all selected stores and it is your spend ceiling — the budget is split evenly between them, so 100 products across four stores is about 25 each.
- Run it. Results appear in the dataset tab and export in any format.
Tips
- Search terms are matched against the product name in the URL, so
milkworks and2% milk 4Lwill not. - Matching is a plain substring test and any term can match, so short terms catch more than you expect —
comalso matchescompliments. - Leave the proxy on. These banners block unproxied requests outright.
- If you see failures, lower Parallel requests.
Pricing
$0.75 per 1,000 products, plus a $0.00005 start fee that is small enough to ignore. You are charged per product returned — nothing for products that fail, and nothing for the sitemap pages the run reads to find them. A 100-product run costs about $0.08, and 1,000 products about $0.75.
Notes
- Prices are the catalogue prices each banner publishes on its own product pages. They are not till prices at a particular branch — items are listed
InStoreOnlyorOutOfStock. - Every product carries a price. Measured on a 1,000-product random sample across the four banners, 1,000 of 1,000 returned one.
- About a third of the catalogue is
OutOfStockat any time, and it varies by banner — Foodland runs nearest a quarter, Thrifty Foods nearer two in five. Those rows still carry full price and nutrition data. - About one product in six is on offer at any time, ranging from 14% at FreshCo to 22% at Thrifty Foods.
- Roughly a quarter of products publish no image, and about one in ten no brand. IGA has the best brand coverage of the four. Missing values come back empty rather than missing, so your CSV columns stay stable.
- About four in five products publish usable nutrition data, and a filled panel averages roughly half of its sixteen fields.
- Nutrition values come through exactly as published, which means some are numbers (
220) and some are strings with units (21 g). A published0is a measured zero, not a gap. - This reads the structured product data each banner publishes on its own pages for search engines, and only follows URLs listed in their public sitemaps. It does not touch account, cart, or checkout areas, which their robots.txt files disallow.
Problems or requests
Open an issue on the Actor's Issues tab. Bug reports get fixed and reasonable field requests usually get added.