# ALDI Australia Scraper - AU Products, Unit Prices & Catalogue (`tenfoldfleet/aldi-australia-scraper`) Actor

Get ALDI Australia grocery prices, unit prices and Special Buys dates: search aldi.com.au by keyword or category, or export the whole AU catalogue (about 3,250 products) in one run. Brand, pack size, category, image, URL. $2.50 per 1,000 products, no start fee; empty searches free.

- **URL**: https://apify.com/tenfoldfleet/aldi-australia-scraper.md
- **Developed by:** [Tenfold Fleet](https://apify.com/tenfoldfleet) (community)
- **Categories:** E-commerce, Agents, MCP servers
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.50 / 1,000 products

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

### What does ALDI Australia Scraper do?

**ALDI Australia Scraper** collects **product and price data from ALDI Australia (aldi.com.au)**: names, brands, **shelf prices, unit prices** (per 100 g, per litre, per kg), pack sizes, categories, **Special Buys on-sale dates**, the **Lower Prices** and **Super Savers** flags, images and product links. Search by keyword, list whole categories, or pull the **entire ALDI AU catalogue (about 3,250 products) in a single run**, each product saved once.

It works like an **ALDI Australia prices API**: it reads the same public JSON product search that aldi.com.au uses for its own product pages. Plain HTTP, no browser, no login and no proxy needed: the full catalogue is about 70 API requests and costs about **$8.14**.

Not affiliated with, endorsed or sponsored by ALDI.

### Why use it?

- **Grocery price monitoring**: schedule a daily whole-catalogue run and track every ALDI price change by `sku`.
- **Special Buys alerts**: get every current and upcoming Special Buy with its on-sale date, before it hits the shelves.
- **Unit price comparison**: compare cost per 100 g, per litre or per kg across brands, pack sizes and supermarkets.
- **Retail and private-label research**: see how ALDI's range, brands and pricing are spread across categories.
- **Apps and AI agents**: feed live ALDI prices into budgeting, meal-planning or shopping-list tools.

Runs on the Apify platform, so you also get an **API**, scheduling, webhooks and integrations with Make, Zapier, n8n and Google Sheets.

### What data can it extract?

| Field | Example |
|---|---|
| `sku`, `name`, `brand` | `000000000000107053`, `1/2m Chocolate Tube 300g`, `KINDER` |
| `price`, `priceDisplay`, `currency` | `13.99`, `$13.99`, `AUD` |
| `unitPrice`, `unitPriceValue`, `unitPriceUnit` | `$4.66 per 100 g`, `4.66`, `100 g` |
| `sellingSize`, `soldByWeight` | `300 g`, `false` (true for per-kg lines) |
| `category`, `categoryPath`, `categories[]` | `Pantry`, `Pantry > Confectionery`, ids, names and slugs |
| `isSpecialBuy`, `onSaleDate`, `onSaleDateDisplay`, `specialBuyUpcoming` | `true`, `2026-11-04`, `On Sale Wed 04 Nov`, `true` |
| `isLowerPrice`, `isSuperSaver` | membership of ALDI's Lower Prices and Super Savers ranges |
| `inStoreOnly`, `ageRestriction`, `alcohol` | `true`, `18`, `14.5 %` |
| `imageUrl`, `imageUrls[]`, `productUrl` | product photos (500 px) and the aldi.com.au product page |
| `searchTerm`, `searchCategory`, `position`, `scrapedAt` | which input found the product, its rank in the results and the time |

ALDI publishes a unit price for about 83% of products; the rest (single items such as a lemon or a bottle sold each) have `unitPrice: null`.

### How to scrape ALDI Australia prices

1. Click **Try for free**.
2. Type **Search terms** (`milk`, `coffee`), add **Categories** (`Pantry`, `Lower Prices`), or tick **Whole catalogue**.
3. Tick **Only Special Buys** if you only want products with an on-sale date.
4. Click **Start**, then download the results as **JSON, CSV, Excel or HTML**, or read them through the API.

### How much does it cost?

You pay **$0.0025 per product saved ($2.50 per 1,000 products)**, plus Apify's standard $0.00005 actor-start event. There is no extra per-run fee, so small searches stay cheap. The whole catalogue is about 3,250 products, about **$8.14 per run**. Set **Max products** (or the run's maximum cost) to spend less.

**Free:** searches with no results, unknown categories, blocked requests and duplicates (a product found by two inputs is saved and charged once). On the Apify free plan, the $5 monthly credit covers about **2,000 products**, so a whole-catalogue run on the free plan stops at about 2,000 products.

### Input

See the **Input** tab for every option. Examples:

```json
{
    "searchTerms": ["milk", "coffee beans", "nappies"],
    "categories": ["Lower Prices", "Pantry > Baking", "https://www.aldi.com.au/products/dairy-eggs-fridge/milk/k/1111111160"],
    "maxProducts": 100,
    "sortBy": "price_asc"
}
```

Whole catalogue, every product (Max products defaults to 0, no limit):

```json
{ "allProducts": true }
```

All current and upcoming Special Buys:

```json
{ "onlySpecialBuys": true }
```

### Output

One row per product. Download as **JSON, CSV, Excel or HTML**. Example:

```json
{
    "sku": "000000000000107053",
    "name": "1/2m Chocolate Tube 300g",
    "brand": "KINDER",
    "price": 13.99,
    "priceDisplay": "$13.99",
    "currency": "AUD",
    "unitPrice": "$4.66 per 100 g",
    "unitPriceValue": 4.66,
    "unitPriceUnit": "100 g",
    "sellingSize": "300 g",
    "soldByWeight": false,
    "category": "Pantry",
    "categoryPath": "Pantry > Confectionery",
    "categories": [
        { "id": "970000000", "name": "Pantry", "slug": "pantry" },
        { "id": "1111111181", "name": "Confectionery", "slug": "pantry/confectionery" }
    ],
    "isSpecialBuy": true,
    "onSaleDate": "2026-11-04",
    "onSaleDateDisplay": "On Sale Wed 04 Nov",
    "specialBuyUpcoming": true,
    "isLowerPrice": false,
    "isSuperSaver": false,
    "inStoreOnly": true,
    "ageRestriction": null,
    "alcohol": null,
    "imageUrl": "https://dm.apac.cms.aldi.cx/is/image/aldiprodapac/product/jpg/scaleWidth/500/71886ef4-2357-4aa7-ba26-6b2f28444e88/kinder-1-2m-chocolate-tube-300g",
    "productUrl": "https://www.aldi.com.au/product/kinder-1-2m-chocolate-tube-300g-000000000000107053",
    "searchTerm": null,
    "searchCategory": null,
    "position": 1,
    "scrapedAt": "2026-10-23T11:38:20.558Z"
}
```

An input that finds nothing (or a category name that does not exist) gives one free row with an `error` field instead, so you can see what happened.

### Tips

- **Price tracking**: schedule `{"allProducts": true}` daily and join runs on `sku`; `price` and `unitPriceValue` are numbers, ready for charts.
- **Cheapest options**: set **Sort by** to *Price (low to high)* with a small **Max products** to get the cheapest matches for each term.
- **Categories** accept a name, a `Parent > Child` path, a slug such as `pantry/canned-food`, a numeric key or a category page URL from aldi.com.au. Names that exist twice (for example `Baking`) resolve to the top-level one; use a path to pick the other.
- **Upcoming Special Buys** have `specialBuyUpcoming: true`; on-sale dates are compared with today's date in Sydney.

### Use it with AI agents (MCP)

Give Claude, ChatGPT, Cursor or any MCP client this Actor as a tool through Apify's MCP server: add `https://mcp.apify.com?tools=tenfoldfleet/aldi-australia-scraper` as a remote MCP server and sign in with your Apify account. The agent fills in the input, runs the Actor and reads the results itself; you pay the same per-product price as a normal run.

### FAQ

#### Can I get every ALDI Australia product?

Yes. Tick **Whole catalogue** and leave **Max products** at 0 (no limit). The run pages through the full product list (about 3,250 products) and saves each one once.

#### Are these online prices?

ALDI Australia does not sell groceries online, so every product is marked `inStoreOnly: true`. The prices are the ones aldi.com.au shows at the time of the run.

#### Does it show the old price of discounted products?

No. ALDI's product data for Australia does not include a previous price or a savings amount. Use `isLowerPrice` and `isSuperSaver` to see which products are in those ranges, and compare runs over time to see price changes.

#### Do I need a proxy?

Usually not: the Actor makes plain requests to ALDI's public product search and retries failed requests with backoff. If a run reports blocked requests, turn on Apify Proxy in the input.

#### Can I call it from code?

Yes, through the Apify API, the JavaScript or Python client, or the Apify MCP server.

### Disclaimer

This Actor collects publicly available product and price information from aldi.com.au. It does not log in and does not collect personal data. ALDI is a trademark of its owner; this Actor is not affiliated with ALDI. Use the data in line with the site's terms and applicable laws.

### More tools from Tenfold Fleet

| Actor | Output |
|---|---|
| [Alibaba Image Search - Reverse Lookup of Suppliers by Photo](https://apify.com/tenfoldfleet/alibaba-image-search) | matched product |
| [AliExpress Keyword Scraper - Exact Sold Counts by Search Term](https://apify.com/tenfoldfleet/aliexpress-search-scraper) | product |
| [Amazon Product Scraper - Details, Prices & Search by ASIN](https://apify.com/tenfoldfleet/amazon-product-scraper) | product |
| [ATS Jobs Scraper - Greenhouse, Lever, Ashby & 5 More](https://apify.com/tenfoldfleet/ats-jobs-scraper) | job posting |
| [Backlinks Checker - Referring Domains, Anchors & Domain Rank](https://apify.com/tenfoldfleet/backlinks-checker) | backlink |
| [Bilibili Scraper - Videos, Comments, Danmaku & Search](https://apify.com/tenfoldfleet/bilibili-scraper) | video or comment |
| [Businesses Without Websites - Local Leads with Phone & Rating](https://apify.com/tenfoldfleet/businesses-without-websites) | lead |
| [Contact Details Scraper - One Lead Record per Company Website](https://apify.com/tenfoldfleet/company-contact-finder) | website with contacts |
| [Google Ads Transparency Center Scraper - Competitor Ads by Site](https://apify.com/tenfoldfleet/google-ads-transparency-scraper) | ad |
| [Google AI Overviews Checker - Citations & Domain Tracker](https://apify.com/tenfoldfleet/google-ai-overviews-checker) | keyword checked |
| [Google Jobs Scraper - Salary, Apply Links & Posting Dates](https://apify.com/tenfoldfleet/google-jobs-scraper) | job listing |
| [Google Keyword Planner Alternative - Ideas, Bids & Volume](https://apify.com/tenfoldfleet/google-keyword-planner) | keyword idea |
| [Google Maps Extractor - Business Leads, Phones & Websites](https://apify.com/tenfoldfleet/google-maps-extractor) | place |
| [Google News Scraper - Articles, Real URLs & Full Text](https://apify.com/tenfoldfleet/google-news-scraper) | article |
| [Google Travel Hotel Rate Tracker - OTA Prices for Every Night](https://apify.com/tenfoldfleet/google-travel-hotel-rate-tracker) | offer |
| [Google Trends Scraper - Interest, Regions & Related Queries](https://apify.com/tenfoldfleet/google-trends-scraper) | keyword |
| [Keyword Ideas & Related Keywords - Difficulty, Volume & CPC](https://apify.com/tenfoldfleet/keyword-ideas) | keyword idea |
| [Keyword Search Volume, CPC & Difficulty Checker (Bulk)](https://apify.com/tenfoldfleet/keyword-search-volume) | keyword with data |
| [Remote Job Board Scraper - Remote Jobs Aggregator, 7 Sites](https://apify.com/tenfoldfleet/remote-jobs-aggregator) | unique remote job |
| [SEEK Job Scraper - Australia, NZ, Jobstreet & JobsDB](https://apify.com/tenfoldfleet/seek-job-scraper) | job listing |
| [SEO Audit Tool - Technical On-Page SEO Checker & Score](https://apify.com/tenfoldfleet/seo-audit-tool) | page audit |
| [SEO Competitor Keywords - Domain Ranked Keywords & Keyword Gap](https://apify.com/tenfoldfleet/seo-competitor-keywords) | keyword |
| [Shopify Inventory Scraper - SKUs, Variants & In-Stock Status](https://apify.com/tenfoldfleet/shopify-products-scraper) | product |
| [Shopify App & Theme Detector - Store Analyzer & Contacts](https://apify.com/tenfoldfleet/shopify-store-analyzer) | shopify store |
| [Sitemap URL Extractor - All URLs from sitemap.xml & robots.txt](https://apify.com/tenfoldfleet/sitemap-url-extractor) | url |
| [Technology Detector - Wappalyzer & BuiltWith Alternative](https://apify.com/tenfoldfleet/tech-stack-detector) | website |
| [URL to Markdown - Web Page to LLM-Ready Text for AI Agents](https://apify.com/tenfoldfleet/url-to-markdown) | page |
| [Website Traffic Checker - Bulk Domain Traffic Estimate](https://apify.com/tenfoldfleet/website-traffic-checker) | domain with traffic data |
| [Woolworths Product Scraper - AU Shelf Prices, Specials & GTINs](https://apify.com/tenfoldfleet/woolworths-product-scraper) | product |
| [Workday Jobs Scraper - myworkdayjobs.com API with Salary](https://apify.com/tenfoldfleet/workday-jobs-scraper) | job posting |
| [YouTube Channel Email Scraper - Creator Contact Extractor](https://apify.com/tenfoldfleet/youtube-channel-email-scraper) | channel with email |
| [YouTube Livestream & Channel Scraper - Videos, Likes & Stats](https://apify.com/tenfoldfleet/youtube-channel-scraper) | video |
| [YouTube Comments Scraper - Replies, Likes & Sort by Newest](https://apify.com/tenfoldfleet/youtube-comments-scraper) | comment |
| [YouTube Shorts Analytics Scraper - Views, Likes & Hashtags](https://apify.com/tenfoldfleet/youtube-shorts-scraper) | short |
| [YouTube Captions Downloader - Transcript & Subtitles Scraper](https://apify.com/tenfoldfleet/youtube-transcript-scraper) | transcript |

# Actor input Schema

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

Words to search for on aldi.com.au, e.g. "milk", "coffee beans" or "nappies". Each term is a separate search. A product found by two terms is saved once.

## `categories` (type: `array`):

ALDI categories to list in full. Use a name ("Pantry", "Milk", "Lower Prices"), a path ("Pantry > Baking"), a slug ("pantry/canned-food"), a category key ("1111111160") or an aldi.com.au category URL. A name that exists twice, such as "Baking", picks the top-level one; use a path to choose.

## `allProducts` (type: `boolean`):

Get every product ALDI Australia lists (about 3,250) in one run, each saved once. Search terms and categories are skipped when this is on. Leave Max products at 0 to get them all (about $8.14 at $0.0025 per product).

## `onlySpecialBuys` (type: `boolean`):

Keep only products with an on-sale date (ALDI Special Buys and limited-time lines), including ones that go on sale in the coming days. On its own, with no search terms or categories, it returns every current and upcoming Special Buy.

## `maxProducts` (type: `integer`):

Most products to save for each search term or category (or for the whole catalogue). 0 (the default) means every match. Each saved product is one charged result ($0.0025). On the Apify free plan, the $5 monthly credit covers about 2,000 products, so a full-catalogue run there stops at about 2,000.

## `sortBy` (type: `string`):

Order of results within each search or category. With a Max products limit, "Price (low to high)" gives the cheapest matches.

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

Optional. ALDI's product API normally works without a proxy. Turn on Apify Proxy only if runs report blocked requests.

## Actor input object example

```json
{
  "searchTerms": [
    "milk",
    "coffee"
  ],
  "allProducts": false,
  "onlySpecialBuys": false,
  "maxProducts": 0,
  "sortBy": "relevance",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

No description

# 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",
        "coffee"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("tenfoldfleet/aldi-australia-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",
        "coffee",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("tenfoldfleet/aldi-australia-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",
    "coffee"
  ]
}' |
apify call tenfoldfleet/aldi-australia-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,tenfoldfleet/aldi-australia-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/MaQfE0fSFQP9lGoeS/builds/Ty9yjw3NrCTVacGev/openapi.json
