# ALDI Australia Scraper — Products, Prices & Special Buys (`hipersoft/aldi-au-scraper`) Actor

Scrape ALDI Australia products and prices: full catalogue, any category or search term. Name, brand, price, unit price, size, category, Special Buys dates, price drops, images and descriptions. For grocery price monitoring and research.

- **URL**: https://apify.com/hipersoft/aldi-au-scraper.md
- **Developed by:** [hiper soft](https://apify.com/hipersoft) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.0004 / product

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## ALDI Australia Scraper: Products, Prices, Unit Prices & Special Buys

**ALDI Australia Scraper** collects **ALDI AU products and prices**. You can take the **whole catalogue**, any **category**, or any **search term**, and every product comes with its **name, brand, price, unit price, pack size, category path, Special Buy on-sale date, price-drop info, images and description**. Export the data to **CSV, Excel or JSON** for grocery price monitoring, retail analytics, comparison sites and market research. Runs are fast and reliable, and you only pay for the products you get.

### What does ALDI Australia Scraper do?

ALDI Australia lists thousands of groceries and household products on aldi.com.au, along with its weekly **Special Buys**. This scraper turns that range into a clean product dataset:

- 🛒 **The full ALDI AU catalogue**: every product currently listed, typically more than 3,000.
- 🔎 **Search**: all products matching words like `milk`, `coffee` or `nappies`.
- 🗂️ **Categories**: any category page, such as Bakery, Dairy, Eggs & Fridge, Pantry or Baby.
- 💲 **Prices**: shelf price, **unit price** (e.g. `$3.65 per 1 L`), was-price and savings for reduced items.
- 📅 **Special Buys**: the on-sale date of upcoming Special Buys (e.g. `On Sale Wed 14 Oct`).
- 🖼️ **Images and descriptions**: every product photo URL and, optionally, the product description.

### What data can you scrape from ALDI Australia?

| Field | Example |
|---|---|
| SKU | `398949` |
| Product name | A2 Full Cream Milk 2L |
| Brand | A2 THE A2 MILK COMPANY |
| Price | 7.29 |
| Price display | $7.29 |
| Unit price | $3.65 per 1 L |
| Was price / savings | for reduced products |
| Pack size | 2 l |
| Category and category path | Milk · Dairy, Eggs & Fridge › Milk |
| Special Buy on-sale date | On Sale Wed 14 Oct |
| Special Buy / on special flags | true / false |
| Alcohol and age restriction | for liquor |
| Product link | aldi.com.au product page |
| Image URLs | all product photos |
| Description | optional |

### Use cases for ALDI product data

- **Grocery price monitoring**: track ALDI shelf and unit prices over time and spot price rises or drops.
- **Price comparison**: compare ALDI against Woolworths, Coles and other Australian retailers.
- **Special Buys alerts**: get the list of upcoming Special Buys every week, before they hit the stores.
- **Retail and CPG analytics**: study ALDI's private-label range, pack sizes and pricing by category.
- **Inflation and cost-of-living research**: build a basket of everyday items and measure it over time.
- **Apps and newsletters**: power deal sites, budgeting apps and weekly catalogue newsletters.

### How to scrape ALDI Australia

1. Click **Try for free** to open ALDI Australia Scraper in Apify Console.
2. Add **search terms** or **category links**, or switch on **Scrape the whole catalogue**.
3. Optionally keep **Only Special Buys and price drops** or **Include product description**.
4. Set **Max products** and click **Start**.
5. Download the products as **CSV, Excel or JSON**, or schedule the run to track prices.

### Input

#### Example input

```json
{
  "searchTerms": ["milk", "coffee"],
  "categoryUrls": ["https://www.aldi.com.au/products/bakery/k/920000000"],
  "scrapeAllProducts": false,
  "onlySpecials": false,
  "includeDescription": true,
  "maxItems": 500
}
```

| Field | Description |
|---|---|
| **Search terms** | Words to search for. Each returns every matching product. |
| **Category links** | ALDI category pages, copied from the website menu. |
| **Scrape the whole catalogue** | Every product on aldi.com.au. Used automatically if you leave search and categories empty. |
| **Only Special Buys and price drops** | Keep only Special Buys (with an on-sale date) and reduced products. |
| **Include product description** | Adds the product description (slower). |
| **Max products** | Stop after this many products (0 = no limit). |
| **Proxy configuration** | Optional, not needed for normal use. |

#### Track ALDI prices every week

Turn on **Scrape the whole catalogue** and create an Apify [schedule](https://docs.apify.com/platform/schedules) to run weekly. Compare runs by `sku` to see every price change.

### Output

#### Product example

```json
{
  "sku": "398949",
  "name": "A2 Full Cream Milk 2L",
  "brand": "A2 THE A2 MILK COMPANY",
  "url": "https://www.aldi.com.au/product/a2-the-a2-milk-company-a2-full-cream-milk-2l-000000000000398949",
  "price": 7.29,
  "priceDisplay": "$7.29",
  "wasPrice": null,
  "savings": null,
  "isOnSpecial": false,
  "isSpecialBuy": false,
  "unitPrice": "$3.65 per 1 L",
  "currency": "AUD",
  "size": "2 l",
  "category": "Milk",
  "categoryPath": ["Dairy, Eggs & Fridge", "Milk"],
  "onSaleDate": null,
  "imageUrl": "https://dm.apac.cms.aldi.cx/is/image/aldiprodapac/product/jpg/scaleWidth/600/a652e235-3b47-4cad-b7d4-d153e48a87a4/A2%20Full%20Cream%20Milk%202L",
  "description": "…",
  "source": "search: milk"
}
```

#### Output schema

| Field | Type | Description |
|---|---|---|
| `sku` | string | ALDI product number. |
| `name` | string | Product name. |
| `brand` | string | Brand. |
| `url` | string (URL) | Product page. |
| `price` | number | Price in AUD. |
| `priceDisplay` | string | Price as shown, e.g. `$7.29`. |
| `wasPrice` | string | Previous price, for reduced products. |
| `savings` | string | Savings text, for reduced products. |
| `isOnSpecial` | boolean | Product is reduced. |
| `isSpecialBuy` | boolean | Product is a Special Buy with an on-sale date. |
| `unitPrice` | string | Unit price, e.g. `$0.86 per 100 g`. |
| `perUnit` | string | Per-unit price for multi-packs, if shown. |
| `currency` | string | `AUD`. |
| `size` | string | Pack size. |
| `unit` | string | Selling unit. |
| `category` | string | Most specific category. |
| `categoryPath` | array | Full category path. |
| `badges` | array | Product badges, if any. |
| `onSaleDate` | string | Special Buy on-sale date text. |
| `soldOnline` | boolean | Whether the product can be bought online. |
| `isAlcohol` | boolean | Liquor product. |
| `ageRestriction` | string | Age restriction, if any. |
| `discontinued` | boolean | Discontinued product. |
| `imageUrl` | string (URL) | Main image. |
| `imageUrls` | array | All product images. |
| `description` | string | Product description (optional). |
| `source` | string | The search term or category that found the product. |
| `scrapedAt` | string (ISO date) | When the row was collected. |

### How much does it cost to scrape ALDI Australia?

ALDI Australia Scraper uses **pay-per-product** pricing: a small fixed price per product row, with automatic discounts on higher Apify plans. See the **Pricing** tab for the exact price. Scraping the full catalogue costs only a few dollars.

### More e-commerce data

- [Amazon Product Scraper](https://apify.com/hipersoft/amazon-product-scraper): Amazon product details and prices.
- [eBay Scraper](https://apify.com/hipersoft/ebay-scraper): eBay listings and prices.

### FAQ

**How many products does ALDI Australia have?**
Usually more than 3,000 products are listed on aldi.com.au. Use **Scrape the whole catalogue** to get all of them.

**Are prices the same in every store?**
ALDI shows standard Australian prices online. Prices may vary slightly by store, so treat them as the national shelf price.

**Can I get the weekly Special Buys?**
Yes. Turn on **Only Special Buys and price drops**. Every Special Buy has an `onSaleDate` such as `On Sale Wed 14 Oct`.

**How do I scrape one category?**
Open the category on aldi.com.au, copy the link (it looks like `/products/bakery/k/920000000`) and paste it into **Category links**.

**Can I monitor price changes?**
Yes. Schedule the scraper and compare `price` by `sku` between runs.

**What formats can I export?**
CSV, Excel, JSON, XML, HTML and RSS, or read the results through the Apify API.

**Can I integrate ALDI Australia Scraper with other apps?**
ALDI Australia Scraper can be connected with almost any cloud service or web app thanks to [integrations on the Apify platform](https://apify.com/integrations). It works with [Make](https://apify.com/integrations/make), [Zapier](https://apify.com/integrations/zapier), [Slack](https://docs.apify.com/platform/integrations/slack), [Airbyte](https://docs.apify.com/platform/integrations/airbyte), [GitHub](https://docs.apify.com/platform/integrations/github), [Google Drive](https://docs.apify.com/platform/integrations/drive) and [many more](https://apify.com/integrations), plus the [Apify API](https://docs.apify.com/api/v2), JS/Python clients and MCP. Or use [webhooks](https://docs.apify.com/platform/integrations/webhooks) to trigger an action whenever a run finishes.

**Is it legal to scrape ALDI?**
The scraper only collects publicly listed product information. You are responsible for using the data in line with ALDI's terms.

### Related Actors

- [Amazon Autocomplete Scraper](https://apify.com/hipersoft/amazon-autocomplete-scraper)
- [Tech Stack Detector](https://apify.com/hipersoft/tech-stack-detector)

### Notes

Original clean-room implementation. Returns only public data; you are responsible for compliance with ALDI's terms. Not affiliated with ALDI.

# Actor input Schema

## `searchTerms` (type: `array`):

Products to search for, e.g. milk, coffee, nappies. Each term returns every matching ALDI product.

## `categoryUrls` (type: `array`):

ALDI category pages to scrape, e.g. https://www.aldi.com.au/products/bakery/k/920000000. Copy them from the ALDI website menu.

## `scrapeAllProducts` (type: `boolean`):

Get every product on the ALDI Australia website (several thousand). Used automatically when no search term or category is given.

## `onlySpecials` (type: `boolean`):

Keep only Special Buys (products with an on-sale date) and reduced products.

## `includeDescription` (type: `boolean`):

Open each product page to add its description. Slower.

## `maxItems` (type: `integer`):

Stop after this many products. 0 means no limit.

## `proxyConfiguration` (type: `object`):

Not required for normal use.

## Actor input object example

```json
{
  "searchTerms": [
    "milk"
  ],
  "scrapeAllProducts": false,
  "onlySpecials": false,
  "includeDescription": false,
  "maxItems": 100,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (type: `string`):

The results as dataset items.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchTerms": [
        "milk"
    ],
    "maxItems": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("hipersoft/aldi-au-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "searchTerms": ["milk"],
    "maxItems": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("hipersoft/aldi-au-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchTerms": [
    "milk"
  ],
  "maxItems": 100
}' |
apify call hipersoft/aldi-au-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,hipersoft/aldi-au-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/BMvgEZhtdhDhIcGUC/builds/VfQqCT3bAScHy4Vy5/openapi.json
