Voilà Grocery Scraper — Sobeys, IGA & Safeway Prices
Pricing
from $1.50 / 1,000 product results
Voilà Grocery Scraper — Sobeys, IGA & Safeway Prices
Sobeys, IGA & Safeway grocery prices from Voilà (voila.ca) by postal code or province: regular & sale price, unit price, Scene+ and multi-buy deals, stock, dietary labels, nutrition and ingredients. Search, categories or the whole catalogue, in English or French.
Pricing
from $1.50 / 1,000 product results
Rating
0.0
(0)
Developer
Yugenox Corp
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
2 days ago
Last modified
Categories
Share
Grocery prices from Voilà (voila.ca), the online grocery store of Sobeys, IGA and Safeway, by postal code or by province. It covers the regular price, sale price, unit price, Scene+ offers, multi-buy deals, stock, dietary labels and, optionally, nutrition facts and ingredients.
Search by keyword, browse categories, or take a region's entire catalogue. You can run it in English or French.
- Coverage: 10 regional catalogues: Ontario, Quebec, British Columbia, Manitoba, Saskatchewan, Nova Scotia, New Brunswick, PEI, Newfoundland and Labrador, and Alberta. Each has its own product range and prices.
- Setup: none. You don't need an account, an API key or a browser.
- Speed: about 300 products per request. The entire Ontario catalogue (about 19,000 products) takes about 3 minutes.
What you get
The price you pay and the price it was. price is what the item costs right now. regular_price, sale_price and was_price separate the shelf price from the deal, and is_on_sale flags it.
Deals, split out. Each promotion lands in its own field:
deal_text: the sale or percentage-off deal.multi_buy_deal: "Buy 2 for $7".member_offer: Scene+ member-only savings.scene_plus_offerandscene_plus_points: Scene+ points offers, with the number of points.
A points-only offer is not counted as a sale.
Unit prices you can compare. unit_price is shown as printed, for example $0.22/100ml. comparable_unit_price normalizes it to $/100 g, $/100 ml or $/each. Items sold by weight are flagged with selling_type: by_weight.
Region-vs-region pricing. One run can price the same products in several provinces. For example, Natrel 2% 2 L cost $5.99 in Ontario, $5.69 in Quebec, $5.89 in BC and $4.49 in PEI on the same day. product_id is shared across regions, so the rows join cleanly.
What's on the label. dietary_attributes carries labels such as Organic, Vegan, Gluten Free, Kosher and Lactose Free, and freshness_guarantee gives the guaranteed shelf life. Turn on include_details to add:
description,ingredientsandstorage.nutrition(every nutrient with its % daily value) andnutrition_serving.average_weight_kgfor meat and produce sold by weight.
Paid placements removed. Search and category pages include a shelf of sponsored products. These are dropped by default. If you choose to keep them, they are flagged with is_sponsored.
Whole-catalogue crawls. all_products walks every department of a region. Products that appear in several categories are deduplicated.
Run it
Paste this into the Input tab (JSON view) and hit Start:
{"search_terms": ["eggs", "milk", "chicken breast"],"postal_code": "M5V 2T6"}
Rows stream into Output as they arrive. You can download them from Storage → Dataset as JSON, CSV or Excel.
From there, you can change the run in a few ways:
- Compare provinces: add
"regions": ["ON", "QC", "BC", "NS"]. Every row names its region. - Browse a category: use
"categories": ["Dairy & Eggs > Milk", "Frozen Pizza"], or paste a voila.ca category URL. - Take the whole catalogue: set
"all_products": true. - Only deals: set
"on_sale_only": true. - French: set
"language": "fr"to get names such as "Natrel Lait 2 % finement filtré 2 L". Category names work in English or French.
Input
| Field | What it does |
|---|---|
search_terms | Keywords to search in every location (up to 100 characters each). |
postal_code / postal_codes | Price the catalogue that serves these postal codes. deliverable tells you whether Voilà delivers there. |
regions | Province catalogues: ON, QC, BC, MB, SK, NS, NB, PE, NL, AB. |
categories | A category name, a path (Dairy & Eggs > Milk) or a voila.ca category URL. |
all_products | Every product in each location's catalogue. |
include_details | Adds description, ingredients, storage, nutrition and average weight. This costs one extra request per product. |
on_sale_only | Keeps only products on sale or with a public deal. |
max_items_per_search | Cap for each search term or category, per location. The default is 500; 0 means no limit. |
max_items | Cap for the whole run. 0 means no limit. |
language | en or fr. |
include_sponsored | Keep paid placements, flagged with is_sponsored. |
max_concurrency | How many locations are scraped in parallel. |
If you give no postal code and no region, the run uses Toronto (M5V 2T6).
What a row looks like
{"store": "Voilà","product_id": "267314EA","name": "Earth's Own Unsweetened Almond Milk Alternative Original 1.89 L","brand": "Earth's Own","package_size": "1.89L","normalized_package_size": { "size": 1890, "unit": "ml" },"price": 4.19,"regular_price": 4.69,"sale_price": 4.19,"was_price": 4.69,"is_on_sale": true,"unit_price": "$0.22/100ml","comparable_unit_price": 0.22,"comparable_unit": "100ml","deal_text": "SALE","scene_plus_offer": null,"stock_status": "in_stock","dietary_attributes": ["Gluten Free"],"category_path": "Dairy & Eggs > Milk > Non-Dairy Milk","image_url": "https://voila.ca/images-v3/2d92d19c-0354-49c0-8a91-5260ed0bf531/f79de8a5-1620-4c69-9386-c9cfbff666f8/800x800.jpg","product_url": "https://voila.ca/products/earth-s-own-unsweetened-almond-milk-alternative-original-1-89-l/267314EA","location": "M5V 2T6","location_name": "Ontario","region_id": "4b2788bd-7207-4a8e-b5ef-0ad94345846b","deliverable": true,"ingredients": "Almond base (filtered water, almonds), Sea salt, Gellan gum, Sunflower lecithin, …","nutrition": { "Calories": "35", "Fat": "3 g (4%)", "Sodium": "150 mg (7%)", "Calcium": "300 mg (23%)" },"nutrition_serving": "per 1 cup (250 mL)"}
Every row has 50+ fields. The dataset schema in the Output tab documents each one.
Use cases
- Price monitoring: track Sobeys, IGA and Safeway shelf and sale prices daily for a set of products or a whole category.
- Competitive pricing: pair it with a Loblaws-family scraper to cover Canada's two largest grocers with the same column names.
- Regional price gaps: see what the same product costs in Toronto, Montréal, Vancouver and Halifax.
- Deal feeds and flyer apps: use
on_sale_onlywithcategories: ["FLYER & DEALS"]to get the current promotions, with multi-buy and Scene+ detail. - Nutrition and assortment research:
all_productsplusinclude_detailsgives a full catalogue with ingredients and nutrition facts.
FAQ
Why do some provinces show deliverable: false? Voilà delivers to homes in parts of Ontario and Quebec. Other provinces still have a full regional catalogue with their own prices, which this actor reads. The Alberta catalogue is currently empty on the site, so an Alberta run returns no products.
Is there a barcode (UPC)? Voilà doesn't publish barcodes. To match products across stores, use brand, name and normalized_package_size. Within Voilà, product_id is the same in every region.
Why is a product missing from one region? Each region stocks a different range. For example, Farm Boy and Longo's products are Ontario-only.
Can I use my own proxy? Yes. A Canadian residential proxy is the default and works best. If the store refuses another proxy, the run switches to Canadian residential automatically.
How are long runs handled? Products are saved as they are found. If a run approaches its timeout, it stops a minute early and ends successfully with everything collected so far.
Is it legal to scrape Voilà? This Actor only collects publicly available data: product listings, prices, deals, stock and product details such as ingredients and nutrition facts that anyone can see on voila.ca without an account. Collecting publicly available data is generally legal, but you're responsible for how you use it. You must follow privacy laws such as GDPR, PIPEDA and CCPA, as well as Voilà's terms. If you're unsure, check with a lawyer. More on this: Is web scraping legal?
Does it access any private data? No. Everything comes from pages Voilà shows to any visitor without logging in. It never uses a login, never touches private or restricted accounts, and never reaches password-protected areas.