# IGA Australia supermarket: per-store prices, specials, nutrition and store finder

> Keyword search at one store, with brand and category filters.
> ReefAPI engine `iga` · 6 endpoints · clean JSON, no scraping or browsers to manage.

## How to call
- **Endpoint:** `POST https://api.reefapi.com/iga/v1/<action>` with a JSON body.
- **Auth:** header `x-api-key: <YOUR_REEFAPI_KEY>` — create one free (1,000 credits, no card): https://reefapi.com/signup
- **Response (every call):** `{ ok: boolean, data: ..., meta: { record_count, credits, ... }, error: { code, message } }` — branch on `ok`. Failed calls are free except verified SHEIN NOT_FOUND on product/detail and price (4 credits).
- **One key + one shared credit pool** across every ReefAPI API. Per-call credits are listed on each endpoint below.
- **Use it from an AI agent (MCP):** connect `https://api.reefapi.com/mcp` (remote streamable-http). Send the key as `Authorization: Bearer <key>`, or put it in the URL (`?key=<key>`) when the client has no header field, as ChatGPT does.

## Endpoints

### POST https://api.reefapi.com/iga/v1/search — 2 credits
Keyword search at one store, with brand and category filters.

**Parameters:**
- `query` (string, required) — Keyword (the source rejects an empty search; browse with category/products).
- `brand` (string, optional) — Exact brand facet value.
- `category_name` (string, optional) — Exact category facet value (as returned in facets).
- `sort` (enum, optional, default "relevance") — The site's own sort list. [one of: relevance, price_asc, price_desc, brand_asc, brand_desc]
- `page` (integer, optional, default 1) — One-based page.
- `limit` (integer, optional, default 24) — Products per page.
- `store_id` (string, optional) — IGA store number from stores. Prices differ by store.
- `postcode` (string, optional) — 4-digit postcode; picks the IGA online store in that postcode.
- `latitude` (number, optional) — With longitude: the nearest IGA online store.
- `longitude` (number, optional) — With latitude.

**Returns:** Products with that store's AUD price, was price, special (label, price, dates), unit price, pack size, availability; pagination, facets and the chosen store.

**Example request body:**
```json
{
  "query": "milk",
  "limit": 12
}
```

### POST https://api.reefapi.com/iga/v1/category/products — 2 credits
Every product in one category at one store (the way to sweep a whole store).

**Parameters:**
- `category` (string, required) — Category id from categories (e.g. Dairy_Eggs_and_Fridge, Milk_and_Cream).
- `brand` (string, optional) — Exact brand facet value.
- `category_name` (string, optional) — Exact category facet value (as returned in facets).
- `sort` (enum, optional, default "relevance") — The site's own sort list. [one of: relevance, price_asc, price_desc, brand_asc, brand_desc]
- `page` (integer, optional, default 1) — One-based page.
- `limit` (integer, optional, default 24) — Products per page.
- `store_id` (string, optional) — IGA store number from stores. Prices differ by store.
- `postcode` (string, optional) — 4-digit postcode; picks the IGA online store in that postcode.
- `latitude` (number, optional) — With longitude: the nearest IGA online store.
- `longitude` (number, optional) — With latitude.

**Returns:** Products with prices and specials, pagination, facets and the chosen store.

**Example request body:**
```json
{
  "category": "Milk_and_Cream"
}
```

### POST https://api.reefapi.com/iga/v1/specials — 2 credits
All products on special at one store, with was price, markdown, label and validity dates.

**Parameters:**
- `brand` (string, optional) — Exact brand facet value.
- `category_name` (string, optional) — Exact category facet value (as returned in facets).
- `sort` (enum, optional, default "relevance") — The site's own sort list. [one of: relevance, price_asc, price_desc, brand_asc, brand_desc]
- `page` (integer, optional, default 1) — One-based page.
- `limit` (integer, optional, default 24) — Products per page.
- `store_id` (string, optional) — IGA store number from stores. Prices differ by store.
- `postcode` (string, optional) — 4-digit postcode; picks the IGA online store in that postcode.
- `latitude` (number, optional) — With longitude: the nearest IGA online store.
- `longitude` (number, optional) — With latitude.

**Returns:** Specials with price, was price, discount %, special label and effective dates; pagination, facets and the chosen store.

**Example request body:**
```json
{
  "limit": 24
}
```

### POST https://api.reefapi.com/iga/v1/product/detail — 1 credit
One product at one store: label, nutrition, specials and IGA Cash promotions.

**Parameters:**
- `id` (string, required) — IGA product sku (from search) or a igashop.com.au/product/<sku> URL.
- `store_id` (string, optional) — IGA store number from stores. Prices differ by store.
- `postcode` (string, optional) — 4-digit postcode; picks the IGA online store in that postcode.
- `latitude` (number, optional) — With longitude: the nearest IGA online store.
- `longitude` (number, optional) — With latitude.

**Returns:** Identity, store price, was price, special, unit price, description, ingredients, nutrition profiles, servings, images, IGA Cash points promotions, aisle location, restrictions.

**Example request body:**
```json
{
  "id": "726347"
}
```

### POST https://api.reefapi.com/iga/v1/categories — 1 credit
The store's category tree.

**Parameters:**
- `store_id` (string, optional) — IGA store number from stores. Prices differ by store.
- `postcode` (string, optional) — 4-digit postcode; picks the IGA online store in that postcode.
- `latitude` (number, optional) — With longitude: the nearest IGA online store.
- `longitude` (number, optional) — With latitude.

**Returns:** Category ids and names, nested; use the id with category/products.

**Example request body:**
```json
{
  "store_id": "32600"
}
```

### POST https://api.reefapi.com/iga/v1/stores — 1 credit
IGA stores that trade online, with address, coordinates and online modes; optional state/postcode filter.

**Parameters:**
- `state` (enum, optional) — Filter by state. [one of: NSW, VIC, QLD, WA, SA, TAS, ACT, NT]
- `postcode` (string, optional) — Filter by exact postcode.
- `latitude` (number, optional) — With longitude: sort by distance and add distance_km.
- `longitude` (number, optional) — With latitude.
- `limit` (integer, optional, default 50) — Stores to return.

**Returns:** Stores with store_id, name, address, suburb, state, postcode, coordinates, online modes and opening hours.

**Example request body:**
```json
{
  "postcode": "2000"
}
```

## At scale
- **Volume:** 5M+ requests a day, measured at 60 requests a second across the fleet with no
  central bottleneck. Per-key limits are raised for high-volume accounts; volume pricing on request.
- **Missing a source:** tell us a site we do not cover and it becomes an engine. A customer asked
  for bestprice.gr on 21 Sep 2026 and it was in the catalog on 22 Sep.
- **Support:** 2 minute median time from a question in the live chat to the first answer. Setup
  help included, no support tier to buy.
- **One key, one credit pool** across every API. No per-site plans, no separate subscriptions.

## More
- Try it live, no code: https://reefapi.com/playground?engine=iga
- Human docs page: https://reefapi.com/docs/iga
- Overview page: https://reefapi.com/iga-api
- Every ReefAPI API in one file (for your AI): https://reefapi.com/llms-full.txt
