Skip to content

Loblaws Grocery Scraper

Try for free

Scrape grocery products and store-level prices from Loblaws, Real Canadian Superstore, No Frills, Maxi, Provigo and seven more Loblaw banners in Canada: price, sale price, deals, PC Optimum offers, unit price, package size, stock and store details.

🛒 Loblaws Grocery Scraper

Get live grocery prices from Loblaws, Real Canadian Superstore, No Frills, Maxi, Provigo and seven more Loblaw banners, priced at the store nearest your postal code. Search by keyword, walk whole departments, or track specific products. Each row has the price, sale price, deal, PC Optimum offer, unit price, package size, stock and store details. You don't need a login, and 1,000 products cost about $0.70.

✨ Why use Loblaws Grocery Scraper?

  • 🏪 12 banners, one input: Loblaws, Real Canadian Superstore, No Frills, Zehrs, Fortinos, Valu-mart, Your Independent Grocer, Independent City Market, Provigo, Maxi, Wholesale Club and Atlantic Superstore.
  • 📍 Store-level prices: give a postal code or a store id and every price comes from that store. Each row names the store, its address and its coordinates.
  • 🏷️ Deals included: sale price and regular price, deal text ("SAVE $0.49", "2 for $5.00", purchase limits), deal end date and PC Optimum points offers.
  • ⚖️ Comparable unit prices: every unit price is converted to $/100 g, $/100 ml or $/item, so you can compare package sizes and brands directly.
  • 🥫 Product details when you need them: product URLs (or the details option) add ingredients, nutrition facts, breadcrumbs and the GTIN barcode.
  • ⚡ Fast and light: reads the store's own product data, with no browser. A 1,000-product department run took 26 seconds in our tests.

🎯 Use cases

  • 📈 Price monitoring: rerun a fixed basket every day or week and track price per product_id and store.
  • 🧮 Food inflation and basket research: compare comparable unit prices across banners, provinces and stores.
  • 🏷️ Deal and flyer sites: collect everything on sale with onSaleOnly, including deal end dates and PC Optimum offers.
  • 🏭 CPG and brand tracking: follow your own or a competitor's brand across all 12 banners with the brands filter.
  • 🛍️ Shopping apps and AI agents: get grounded, store-specific Canadian grocery prices instead of guesses.
  • 🗂️ Product catalogues: build a product database with UPCs, GTINs, images, ingredients and nutrition facts.

🚀 How to use

  1. Enter search terms (e.g. eggs, milk), pick categories from the list, or paste category or product URLs from any Loblaw banner site.
  2. Choose the store banner, and add a postal code or store ID for store-level prices.
  3. Set Max results (0 = no limit) and any filters (on sale only, in stock only, price range, brands).
  4. Click Start and watch the products arrive in the Output tab.
  5. Export the dataset as JSON, CSV, Excel or HTML, or read it through the API.

📥 Input

FieldWhat it does
searchTermsProducts to search for, one per line, like the store's search bar
categoriesDepartments or subcategories; a department scrapes all its subcategories, all walks every grocery department
categoryUrlsCategory pages from any banner site, including non-food aisles (the banner is taken from the URL)
productUrlsProduct pages or product codes such as 20812144001_EA; these rows include ingredients and nutrition facts
bannerWhich chain: superstore, nofrills, loblaw, zehrs, fortinos, valumart, independent, independentcitymarket, provigo, maxi, wholesaleclub, rass (Atlantic Superstore)
postalCode / storeIdThe store whose prices you get; without them each banner uses its default store
maxItemsMaximum products to save across all inputs (0 = no limit)
onSaleOnly, inStockOnly, minPrice, maxPrice, brandsFilters; products left out are not charged
includeDetailsAlso open each product page for ingredients, nutrition facts, breadcrumbs and GTIN
languageen or fr product names and URLs
{
  "banner": "superstore",
  "searchTerms": ["eggs", "milk"],
  "categories": ["bakery/bread"],
  "postalCode": "V5X 0C4",
  "onSaleOnly": false,
  "maxItems": 200
}

📤 Output

One row per product and store.

FieldDescription
name, brand, descriptionProduct name, brand and description
price, was_price, is_on_saleCurrent price in CAD, the regular price when on sale, and a sale flag
multi_buy_deal, deal_type, deal_expires_atDeal text (SAVE $0.49, 2 for $5.00, Limit 4...), its type and end date
pc_optimum_offerPC Optimum points offer
unit_price, comparable_unit_price, comparable_unitUnit price as shown, and normalized to $/100 g, $/100 ml or $/item
package_size, parsed_package_size, normalized_package_sizeSize as shown, parsed, and in g / ml / ea
selling_typeby_unit or by_weight (weighed at the till)
in_stock, stock_statusStock at the store
rating, review_countCustomer rating and number of reviews, when the product has any
upc, product_id, article_numberIdentifiers; product_id is shared by every banner
image_url, product_urlProduct image and page
category, category_name, search_termWhere the product was found
store, location, location_name, location_address, location_postal_code, location_coordinatesThe banner and the store the price is for
ingredients, nutrition_facts, breadcrumbs, gtinProduct URLs, or with includeDetails on

A real row from a test run:

{
  "store": "Real Canadian Superstore",
  "banner": "superstore",
  "category": "search:eggs",
  "search_term": "eggs",
  "name": "Extra Broad Cholesterol-Free Egg White Noodles",
  "brand": "No Yolks",
  "price": 3,
  "was_price": 3.49,
  "is_on_sale": true,
  "multi_buy_deal": "SAVE $0.49",
  "deal_type": "SALE",
  "deal_expires_at": "2026-11-04T00:00:00Z",
  "selling_type": "by_unit",
  "in_stock": true,
  "stock_status": "In stock",
  "upc": "06420013043",
  "image_url": "https://digital.loblaws.ca/PCX/21439286_EA/en/1/21439286_en_front_1200.png",
  "product_id": "21439286_EA",
  "article_number": "21439286",
  "is_sponsored": false,
  "unit_price": "340 g, $0.88/100g",
  "parsed_unit_price": { "value": 0.88, "quantity": 100, "unit": "g", "unit_type": "weight" },
  "comparable_unit_price": 0.88,
  "comparable_unit": "100g",
  "package_size": "340g",
  "normalized_package_size": { "size": 340, "unit": "g" },
  "product_url": "https://www.realcanadiansuperstore.ca/en/extra-broad-cholesterol-free-egg-white-noodles/p/21439286_EA",
  "currency": "CAD",
  "location": "1517",
  "location_name": "Real Canadian Superstore Marine Drive",
  "location_address": "350 SE Marine Dr, Vancouver, BC, V5X 2S5",
  "location_postal_code": "V5X 2S5",
  "location_coordinates": { "lat": 49.20906, "lng": -123.100052 },
  "language": "en",
  "scraped_at": "2026-10-21T20:25:20.111Z"
}

💰 Pricing

You pay $0.70 per 1,000 products ($0.0007 per product saved), plus the small platform usage of the run (compute and proxy traffic).

Example: a 1,000-product department run used about $0.002 of platform usage in our tests, so 1,000 products ≈ $0.70 in total. Products left out by your filters, duplicates and failed pages are never charged. Set a maximum charge per run and the scraper stops cleanly when it is reached.

❓ FAQ

Is it legal to scrape Loblaws? The scraper only reads public product and price pages that any shopper can see, without logging in. Check that your use complies with the retailer's terms and the law where you are.

Do I need an account, cookies or a proxy? No. The default datacenter proxy works. If it is ever refused, the run switches to Canadian residential proxies on its own.

How do I get prices for my store? Enter your postal code; the scraper picks that banner's nearest store and names it on every row (location_name, location_address). To pin one store, enter its store ID. If the banner has no store in your province, the run stops at once with a message listing the provinces it serves, and nothing is charged.

How many products can I get? As many as the inputs hold. A department has hundreds to thousands of products, and all walks every grocery department. Products found again under another category or search are saved once.

Why is a field empty? The store does not publish it for that product: produce often has no brand, only deals have deal fields, and only rated products have ratings. Ingredients and nutrition facts need product URLs or includeDetails.

Can I schedule it or use the API? Yes. Schedule daily or weekly runs to track prices, and start runs or read datasets over the API in JSON, CSV or Excel. Moving from a similar actor on another platform? The input also accepts search_terms, postal_code, locationId and on_sale_only, and most output fields have the same names.

⚠️ Limits

  • Store search returns at most a few hundred products per term (that's the site's limit). Use categories for full coverage.
  • The store's search engine always returns its closest matches, so a misspelled or unknown term still gives related products.
  • Prices are for in-store pickup at the chosen store, which can differ from in-store shelf prices.
  • Products sold only by third-party marketplace sellers and products that need a login (member-only pricing for your own account) are not covered.
  • Package-size variants are separate rows, one per size.

Related actors

G2
4.7/5
Excellent
Trustpilot

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.

No credit card. No setup calls.