# Aldi Australia grocery shelf prices, Special Buys and product labels

> Search products, browse a category, read a Special Buys date, or page the whole online assortment.
> ReefAPI engine `aldi-au` · 6 endpoints · clean JSON, no scraping or browsers to manage.

## How to call
- **Endpoint:** `POST https://api.reefapi.com/aldi-au/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/aldi-au/v1/search — 3 credits
Search products, browse a category, read a Special Buys date, or page the whole online assortment.

**Parameters:**
- `query` (string, optional) — Keyword. Leave query, categoryKey and promotionKey all empty to page the whole online assortment.
- `categoryKey` (string, optional) — Category ID from categories. May be combined with query.
- `promotionKey` (string, optional) — Special Buys date from promotions (YYYY-MM-DD). May include future on-sale products.
- `url` (string, optional) — An aldi.com.au listing URL (category, Special Buys date, search results or /products); its filters are applied. Explicit parameters win.
- `brandName` (array, optional) — Exact brand values from facets; multiple values use source OR semantics.
- `categoryTree` (array, optional) — Category facet IDs from the current search response.
- `theme` (array, optional) — Exact theme keys from promotions or facets, sent unmodified (some carry a trailing space).
- `sort` (enum, optional, default "relevance") — Source ordering. Use price_asc for complete sweeps: relevance order is not stable between calls. [one of: relevance, name_asc, name_desc, price_asc, price_desc]
- `page` (integer, optional, default 1) — One-based page. Beyond the source total returns INVALID_PARAM.
- `limit` (enum, optional, default 30) — Source supported page size. [one of: 12, 16, 24, 30, 32, 48, 60]

**Returns:** Products with national AUD shelf and unit prices, pack size, deal ranges, Special Buys dates, pagination and live facets.

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

### POST https://api.reefapi.com/aldi-au/v1/deals — 3 credits
List a current Aldi deal range: Lower Prices, Super Savers or Limited Time Only.

**Parameters:**
- `type` (enum, optional, default "lower_prices") — Aldi deal range, resolved by name from the live category tree. [one of: lower_prices, super_savers, limited_time]
- `brandName` (array, optional) — Exact brand values from facets; multiple values use source OR semantics.
- `categoryTree` (array, optional) — Category facet IDs from the current search response.
- `theme` (array, optional) — Exact theme keys from promotions or facets, sent unmodified (some carry a trailing space).
- `sort` (enum, optional, default "relevance") — Source ordering. Use price_asc for complete sweeps: relevance order is not stable between calls. [one of: relevance, name_asc, name_desc, price_asc, price_desc]
- `page` (integer, optional, default 1) — One-based page. Beyond the source total returns INVALID_PARAM.
- `limit` (enum, optional, default 30) — Source supported page size. [one of: 12, 16, 24, 30, 32, 48, 60]

**Returns:** The deal range products with prices and pagination, plus the resolved source category.

**Example request body:**
```json
{
  "brandName": [
    "FARMDALE"
  ]
}
```

### POST https://api.reefapi.com/aldi-au/v1/promotions — 1 credit
List current and upcoming Special Buys dates and their themes.

**Parameters:** none

**Returns:** Campaign dates (use as promotionKey in search), titles, themes and Aldi URLs.

### POST https://api.reefapi.com/aldi-au/v1/product/detail — 3 credits
Read the full public product record and label.

**Parameters:**
- `id` (string, required) — Retailer SKU from search, with leading zeros, or Aldi Australia product URL. Not a GTIN.

**Returns:** Identity, prices, description, ingredients, allergens, nutrition, storage, origin, images, variants and availability flags.

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

### POST https://api.reefapi.com/aldi-au/v1/categories — 1 credit
Get the live category tree, deal ranges marked.

**Parameters:** none

**Returns:** Category IDs, names, URLs, deal_type and nested children.

### POST https://api.reefapi.com/aldi-au/v1/availability — 1 credit
Indicative store stock for one product. id plus location, store_id, or latitude AND longitude.

**Parameters:**
- `id` (string, required) — Retailer SKU from search, with leading zeros, or Aldi Australia product URL. Not a GTIN.
- `location` (string, optional) — Suburb or town name for the public stock checker (a bare postcode returns no stores). Use one location mode.
- `store_id` (string, optional) — Store reference returned by availability. Use one location mode.
- `latitude` (number, optional) — Latitude; requires longitude and excludes location/store_id.
- `longitude` (number, optional) — Longitude; requires latitude.
- `radius` (integer, optional, default 50) — Source distance radius, with coordinates only.
- `only_in_stock` (boolean, optional, default false) — Source checkbox; returned indicators still govern interpretation.
- `page` (integer, optional, default 1) — One-based stock-checker result page.
- `limit` (integer, optional, default 10) — Stores per page; the source caps this at 10.

**Returns:** Paginated stores with source traffic-light stock indicators; MARKET_UNAVAILABLE when the source publishes no stock data for the product.

**Example request body:**
```json
{
  "id": "000000000000711788",
  "location": "Parramatta"
}
```

## 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=aldi-au
- Human docs page: https://reefapi.com/docs/aldi-au
- Overview page: https://reefapi.com/aldi-au-api
- Every ReefAPI API in one file (for your AI): https://reefapi.com/llms-full.txt
