Canada Grocery Deals - Flyer Prices by Postal Code
Pricing
from $1.00 / 1,000 deal results
Canada Grocery Deals - Flyer Prices by Postal Code
Current flyer deals from Canadian grocery chains (Loblaws, Metro, Sobeys, IGA, Walmart, Super C, Maxi and more) for any postal code. Search by product, compare prices across chains, track deals on a schedule. EN + FR.
Pricing
from $1.00 / 1,000 deal results
Rating
0.0
(0)
Developer
Jimmy A
Maintained by CommunityActor stats
0
Bookmarked
0
Total users
0
Monthly active users
4 days ago
Last modified
Categories
Share
Canada Grocery Deals - Flyer Prices from Every Major Chain by Postal Code
Current weekly flyer deals from Canadian grocery chains for any postal code, normalized into one clean schema. Search by product, filter by chain, and compare prices across Loblaws, Metro, Sobeys, IGA, Walmart, Maxi, Super C, No Frills, FreshCo, Adonis and more - all in a single run.
This actor reads the same public flyer data that shoppers see on the flyer aggregators. It is HTTP-first: no browser, no proxies, no login. Deals are regional, so you pass a postal code and get the flyers that actually run in that area.
What you get
One record per deal:
{"dealId": 1017046716,"query": "chicken","postalCode": "H2X 1Y6","name": "FRESH BONELESS CHICKEN BREASTS","merchant": "IGA","merchantId": 4592,"currentPrice": 12.24,"originalPrice": null,"currency": "CAD","priceText": "/lb $26.99/kg","saleStory": "350 Scene+ PTS","category": "Food, Beverages & Tobacco > Food Items","brandIds": ["8548"],"flyerId": 7964171,"validFrom": "2026-06-11T04:00:00+00:00","validTo": "2026-06-18T03:59:59+00:00","imageUrl": "https://f.wishabi.net/page_items/421878246/1780325324/extra_large.jpg","source": "Flipp public search (flyer data published by merchants)","fetchedAt": "2026-06-10T21:29:45.221Z"}
currentPrice and originalPrice are numeric where the flyer gives a clean price. priceText keeps the raw per-unit text (e.g. /lb $26.99/kg) and saleStory keeps the promo line (e.g. 40% DE RABAIS, 2 for $5, loyalty-points offers) so nothing is lost. validFrom/validTo are the flyer's run dates.
Filters
- postalCode (required): Canadian postal code, e.g.
H2X 1Y6. Flyers differ by region. - queries (required): one or more product terms (
milk,chicken,diapers). One search per term. - merchants: only keep these chains (case-insensitive substring, e.g.
Metro,IGA,Maxi). Empty = all chains. - locale:
en-caorfr-cafor English or French product names. - maxItemsPerQuery: cap deals per search term.
- onlyWithPrice: skip image-only promos that carry no parseable price (default true).
Use cases
- Price comparison apps: cheapest chicken across every chain near a shopper this week
- Deal alerts: run on a schedule, diff against last week, notify on a target price
- Meal-planning and budgeting tools: pull this week's deals for a shopping list by postal code
- Market and CPG research: track promo depth and frequency by brand, chain, and region over time
- AI agents: ask "what milk deals are near H2X 1Y6 this week" through the standby API endpoint
API / Standby mode for AI agents
Call the actor as a synchronous HTTP endpoint:
GET /?postalCode=H2X1Y6&q=milk&merchant=Metro&locale=en-ca
Returns { count, deals: [...] } immediately. Works as a tool for agent frameworks that support Apify actors.
Pricing
Pay per event:
| Event | Price |
|---|---|
| Actor start | $0.0005 |
| Per deal record | $0.001 |
| API call (standby) | $0.02 |
A daily check of three products in one city returns roughly 50-150 deals, about $1.50-4.50/month. Tracking many products or many postal codes scales linearly - tell us your use case if you need a snapshot tier.
FAQ
Where does the data come from? The public flyer search backend used by Canadian flyer aggregators - the same flyers the chains publish for shoppers each week. The actor reads logged-out, public, non-personal data only.
Are these in-store shelf prices? No. These are advertised flyer/promo prices for the stated validity window. In-store regular prices are not part of flyer data.
Why do I need a postal code? Flyers are regional. A deal in Montreal may not run in Calgary, and the same chain ships different flyers by area.
English or French?
Both. Pass fr-ca for French product names (useful for Quebec chains), en-ca otherwise.
Why are some prices null but priceText is filled?
Flyer items sometimes advertise "2 for $5" or "40% off" instead of a single number. The numeric fields stay null and the offer is preserved in priceText and saleStory.
CSV export? Every Apify dataset exports as CSV, JSON, Excel, or via API.