IGA Québec API

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
Measured on live customer calls,

2 credits per call≈ $2/1,000 calls1,000 free credits, no card

POST/iga-qc/v1/search200
  1. Grand Pré Chokéo Partly Skymmed Milk Chocolate 2% 1 L4.29 CAD
    article_number
    1449028
    brand
    Grand Pré
  2. Nutrinor Organic 2% Nordic Milk 2 L8.99 CAD
    article_number
    473681
    brand
    Nutrinor
  3. Milk 2 Go Sport Milk Vanilla 325 ml2.99 CAD
    article_number
    356938
    brand
    Milk 2 Go
Real result, captured Nov 6, 20263 of 24
Try it live

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

View docs ↗

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.

2 credits2 required · 3 optional
POST/iga-qc/v1/search
idle
// 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.

Try every endpoint in the playground

Endpoints

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.

5 endpoints

stores

1 cr

IGA stores in Quebec with their store number (for every other action).

required
—
optional
store_id, query, lat, lon, limit

search

2 cr

Search one IGA store's shelf.

required
query, store_id
optional
page, page_size, sort, category, on_sale, language

product

1 cr

One product at one IGA store, by product_id (as a row returns it), article number, UPC / GTIN…

required
store_id
optional
product_id, upc, plu, language

deals

3 cr

Everything with a promotion running now at one IGA store (this week's flyer prices, Scene+ po…

required
store_id
optional
query, category, page, page_size, sort, language

categories

1 cr

The category tree of one IGA store with product counts (department and aisle level), to use a…

required
store_id
optional
language

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 it works

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.

01
Authenticate
x-api-key header

No OAuth app, no request signing, no per-site account. One key covers all 632 engines.

02
Call
POST /iga-qc/v1/…

Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.

03
Pay
1 or 2 or 3 credits per call

Credits, not seats. Failed and blocked calls are never charged, and nothing is cached: every call reads the source live.

04
Read
{ ok, data, meta, error }

One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.

Recipe

See this week's deals at your IGA, then check one product

Find the store, read its promotions, and open one item.

01stores
POST/iga-qc/v1/stores
{"query": "Levis"}

IGA stores matching a name or city, with the 4-digit store number the other calls take.

02deals
POST/iga-qc/v1/deals
{"store_id": "0444", "page_size": 24}

What this store has on promotion now, with sale dates and Scene+ points.

03product
POST/iga-qc/v1/product
{"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.

request
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"}'
response envelope
{
  "ok": true,
  "data": { … },
  "meta": {
    "api": "iga-qc",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": …,
    "record_count": …
  },
  "error": null
}
Fields

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.

FieldStore 0444Store 0168
price (CAD)7.777.77
regular_price10.9910.99
member_price (Scene+)5.775.77
on_sale, sale_valid_from to sale_valid_totrue, 2026-11-05 to 2026-11-11true, 2026-11-05 to 2026-11-11
in_stocktruetrue

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.

Coverage

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.

Prices come per store

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 windows are dated

sale_valid_from and sale_valid_to bound a promotion, and active_promotions and upcoming_promotions show what runs now and what is scheduled.

Scene+ and member prices

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.

Against us: a stock flag, not a level

in_stock and stock_status say yes or no. There is no quantity, and estimated_item_price is always null on IGA.

Not published

The printed flyer itself: promotions come from each product's own record. An unknown store number returns NOT_FOUND, never another store's price.

Use cases

What people build with IGA Québec

The jobs this data is most often used for.

5

endpoints

1/2/3

credits per call

01

Read this week's promotions and Scene+ offers for a set of Québec stores

02

Follow regular and sale prices for a basket at one store

03

Match your own products by UPC or PLU to the price at a specific store

04

Compare one product across IGA stores in a region

Pricing

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.

Full pricing →
$0.67–$1.50 / 1,000 credits
  • 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
no credit card1,000 free credits · instant API key · pay by card or crypto
Quickstart

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
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"}'
python
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"])
FAQ

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.

Contact

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.

0/4000

No account needed · we reply from [email protected]

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.