What your IGA in Québec charges, with sale dates and Scene+
The IGA Québec API returns grocery prices for IGA and IGA extra stores in Québec as clean JSON, one store at a time.
- median response
- 0.9s
- endpoints
- 5
- credits per call
- 1–3
2 credits per call≈ $2/1,000 calls1,000 free credits, no card
- Grand Pré Chokéo Partly Skymmed Milk Chocolate 2% 1 L4.29 CAD
- article_number
- 1449028
- brand
- Grand Pré
- Nutrinor Organic 2% Nordic Milk 2 L8.99 CAD
- article_number
- 473681
- brand
- Nutrinor
- Milk 2 Go Sport Milk Vanilla 325 ml2.99 CAD
- article_number
- 356938
- brand
- Milk 2 Go
5 active endpoints, on 1, 2 and 3 credit tiers.
- POST/iga-qc/v1/stores1 credit
- POST/iga-qc/v1/search2 credits
- POST/iga-qc/v1/product1 credit
- POST/iga-qc/v1/deals3 credits
- POST/iga-qc/v1/categories1 credit
Run the call yourself, on the real endpoint
Change a parameter and press Try it. The response on the right is what your code will receive.
IGA Québec API
3 of 5 endpoints, ready to run
Products at one IGA store by words or UPC: price now, regular and sale price, sale dates, Scene+ points, stock flag, in English or French.
// Press "Try it" and this pane shows exactly what the // live site returned this second — including an empty // result, if that is the truth. No key, no account.
What IGA Québec endpoints does ReefAPI ship?
5 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.
Every parameter, every allowed value →
Missing a IGA Québec endpoint, or need a source we don't have yet?Contact us real people · same-day reply.How the IGA Québec API works
IGA Québec is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.
No OAuth app, no request signing, no per-site account. One key covers all 632 engines.
Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.
Credits, not seats. Failed and blocked calls are never charged, and nothing is cached: every call reads the source live.
One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.
See this week's deals at your IGA, then check one product
Find the store, read its promotions, and open one item.
{"query": "Levis"}IGA stores matching a name or city, with the 4-digit store number the other calls take.
{"store_id": "0444", "page_size": 24}What this store has on promotion now, with sale dates and Scene+ points.
{"store_id": "0444", "upc": "061328801366"}One product by UPC, with the regular and sale price, the sale window and any member price.
This week's promotions for one store, and the detail behind any item in them.
curl -X POST https://api.reefapi.com/iga-qc/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"milk","store_id":"0444"}'{
"ok": true,
"data": { … },
"meta": {
"api": "iga-qc",
"endpoint": "search",
"mode": "live",
"latency_ms": …,
"record_count": …
},
"error": null
}One box of tissues at two Lévis stores, the same week
Scotties facial tissue, UPC 061328801366, read through product on 2026-11-08 at IGA extra stores 0444 and 0168 in Lévis. Each row is that store's own record.
| Field | Store 0444 | Store 0168 |
|---|---|---|
| price (CAD) | 7.77 | 7.77 |
| regular_price | 10.99 | 10.99 |
| member_price (Scene+) | 5.77 | 5.77 |
| on_sale, sale_valid_from to sale_valid_to | true, 2026-11-05 to 2026-11-11 | true, 2026-11-05 to 2026-11-11 |
| in_stock | true | true |
These two stores carried the same flyer price that week, which is common inside one flyer. The value of a store-level record is on the days and items where stores differ, so always read the store you care about. Scene+ points appear in scene_plus_points where offered: a Compliments shrimp ring carried 200 points at store 0444.
A store number, a promotion window, and what IGA leaves blank
Each IGA product record belongs to one store, so a product_id ends with the store number. Measured 2026-11-08 on live responses. Some of these lines go against us.
stores listed 305 IGA and IGA extra stores in Québec, and every product is a record for one of them. Two Lévis stores carried the same flyer price the week we read them.
sale_valid_from and sale_valid_to bound a promotion, and active_promotions and upcoming_promotions show what runs now and what is scheduled.
member_price and scene_plus_points are filled where the store publishes them: one facial tissue offer read 5.77 for members against 7.77 on sale, and a shrimp ring carried 200 points.
in_stock and stock_status say yes or no. There is no quantity, and estimated_item_price is always null on IGA.
The printed flyer itself: promotions come from each product's own record. An unknown store number returns NOT_FOUND, never another store's price.
What people build with IGA Québec
The jobs this data is most often used for.
endpoints
credits per call
Read this week's promotions and Scene+ offers for a set of Québec stores
Follow regular and sale prices for a basket at one store
Match your own products by UPC or PLU to the price at a specific store
Compare one product across IGA stores in a region
What IGA Québec data costs
The cheapest call here is 1 credit, so $15/mo (Pro) buys 10,000 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.
- 1,000 free credits on signup, no card
- One key, all 632 APIs, one credit pool
- Failed and blocked calls are never charged
- Credits roll over and never expire
Call it in two lines
Sign up, get 1,000 credits and one key that works on every engine. Then this is the whole protocol.
curl -X POST https://api.reefapi.com/iga-qc/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"milk","store_id":"0444"}'import os
import requests
REEF_KEY = os.environ["REEF_KEY"]
r = requests.post(
"https://api.reefapi.com/iga-qc/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "milk",
"store_id": "0444"
},
timeout=90,
)
print(r.json()["data"])Have a question? We got answers.
The questions people actually ask before wiring up IGA Québec.
Is this the IGA in Australia?▾
No. This engine covers IGA and IGA extra stores in Québec, in CAD. The separate iga engine covers Australia.
How do I find a store number?▾
stores takes a name or city, or lat and lon for the nearest first, and returns the 4-digit store_id with address, phone and opening hours. stores counted 305 stores on 2026-11-08.
Do prices differ between stores?▾
Records are per store, and a product_id ends with the store number, such as 262248_EA_0444. Prices can match inside one flyer: the two Lévis stores we read were identical that week.
How are sales, Scene+ and member prices shown?▾
on_sale, sale_price, sale_valid_from and sale_valid_to describe the current sale. active_promotions and upcoming_promotions list each promotion with its dates. member_price is the Scene+ flyer price when the store publishes one, and scene_plus_points is the points offer.
Can I look up produce by PLU or a barcode?▾
Yes. product takes upc for a printed barcode, exact match only, or plu for a 4 or 5 digit produce number such as 4023 for red seedless grapes.
Is there a stock quantity?▾
No, only a flag: in_stock and stock_status. estimated_item_price is always null on IGA because the source does not publish one.
What is the IGA Québec API?▾
IGA Québec API is a ReefAPI endpoint group for store-level grocery prices from iga in québec: regular and sale prices with dates, per-kg prices, stock and scene+ offers for the store you pick. It returns live JSON through POST requests under /iga-qc/v1.
Is the IGA Québec API free to try?▾
Yes. ReefAPI starts with 1,000 free credits, no card required. IGA Québec calls use the same shared credit balance as every other ReefAPI engine.
Do I need an IGA Québec login or account?▾
No login to IGA Québec is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the IGA Québec data?▾
The page example is captured from a live stores call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the IGA Québec API use?▾
IGA Québec actions currently cost 1-3 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.
Can I call IGA Québec from an AI assistant or MCP client?▾
Yes. Connect ReefAPI once through MCP and your assistant can call iga-qc actions with the same key, credit pool and JSON envelope used by normal REST requests.
Is the IGA Québec API an IGA Québec scraper?▾
It is the managed alternative to a DIY IGA Québec scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same store-level grocery prices from iga in québec: regular and sale prices with dates, per-kg prices, stock and scene+ offers for the store you pick back as clean JSON.
Why does my IGA Québec scraper keep getting blocked?▾
Most IGA Québec scrapers break on anti-bot defenses, rate limits and IP bans that need rotating residential proxies and browser fingerprinting to clear. ReefAPI handles all of that for you — no proxies, no captchas, no maintenance — and returns live JSON. Blocked calls are free.
350 E-commerce & Marketplaces APIs on the same key
One key, one credit pool, one response envelope. If you are pulling IGA Québec, you are one call away from the rest of the category — no second contract, no second integration.
Need something this API does not do?
Name the endpoint, the field, or a source we do not carry yet. We ship new APIs every week and you would be first to get the key. Real people read every message and reply the same day.
Try it on your own data before you pay anything
The call above is the real endpoint, not a recording. A free key gives you 1,000 credits, the other 631 APIs, and the same envelope everywhere.
Endpoints, parameters and credit costs on this page are read from the live catalog and cannot drift from what the API accepts. Field notes were captured on 2026-11-08.