
TikTok Shop Scraper
scrape.ly/store/shelfbright/tiktok-shop-scraperE-commerceSocial media
1 monthly user

Scrape ALDI Australia (aldi.com.au): product search, categories, the full catalogue, Special Buys by date and theme, and product pages. Prices, unit prices, sizes, categories, Special Buys dates, descriptions, ingredients and images. No login needed.
Get every product from ALDI Australia (aldi.com.au) as clean data: names, brands, shelf prices, unit prices, pack sizes, categories, Special Buys dates, descriptions, ingredients, allergens and images. Search, browse categories, pull a whole Special Buys event or the full catalogue of about 3,300 products in a few minutes. No login, no browser, and you pay only for the products you get.
milk), or paste links from aldi.com.au: search results, category pages, /products for the whole range, Special Buys pages or product pages.| Field | What it does |
|---|---|
searchQueries | Search terms, each scraped on its own |
startUrls | aldi.com.au links: search, category, /products, Special Buys, brand or product pages |
maxItems | Max products per input (0 = no limit) |
categories | Category names, paths or IDs, e.g. Dairy, Eggs & Fridge, pantry/confectionery, 960000000 |
productIds | Product IDs from the end of a product link |
specialBuysDates / allSpecialBuys / specialBuysThemes | Special Buys by date, every current event, and an optional theme filter |
sortBy, brands, minPrice, maxPrice, onlySpecialBuys | Filters |
includeDetails | Description, ingredients, allergens, storage and usage instructions (on by default) |
includeCategoryList, includeSpecialBuysCalendar | Also save the category tree or the Special Buys calendar |
{
"searchQueries": ["milk", "coffee pods"],
"startUrls": [{ "url": "https://www.aldi.com.au/products/dairy-eggs-fridge/k/960000000" }],
"allSpecialBuys": true,
"specialBuysThemes": ["Gardening"],
"maxItems": 20,
"sortBy": "price_asc"
}
| Field | Example |
|---|---|
id, name, brand, size | 000000000000398691, Light Milk 2L, FARMDALE, 2 l |
price, currency, price_text | 3.39, AUD, $3.39 |
unit_price, unit_quantity, unit, comparable_price_text | 1.7, 1, L, $1.70 per 1 L |
category, subcategory, breadcrumbs, category_url | Dairy, Eggs & Fridge, Milk |
is_special_buy, special_buy_date, special_buy_label | true, 2026-10-24, On Sale Sat 24 Oct |
description, ingredients, allergens, storage_instructions | from the product details |
image, images, source_url | product images (up to 1000 px) and the ALDI link |
search_query, source_input, position, retrieved_at | where the row came from |
Real row from a test run (trimmed):
{
"record_type": "product",
"id": "000000000000398691",
"name": "Light Milk 2L",
"brand": "FARMDALE",
"size": "2 l",
"price": 3.39,
"currency": "AUD",
"unit_price": 1.7,
"unit_quantity": 1,
"unit": "L",
"comparable_price_text": "$1.70 per 1 L",
"category": "Dairy, Eggs & Fridge",
"subcategory": "Milk",
"breadcrumbs": ["Home", "Dairy, Eggs & Fridge", "Milk"],
"is_special_buy": false,
"in_stock": true,
"image": "https://dm.apac.cms.aldi.cx/is/image/aldiprodapac/product/jpg/scaleWidth/1000/93645b60-eb11-4046-b28e-2b441f8585a4/farmdale-light-milk-2l",
"source_url": "https://www.aldi.com.au/product/farmdale-light-milk-2l-000000000000398691",
"description": "Reduced fat milk that is a good source of calcium and permeate free.",
"ingredients": "Reduced Fat†† Milk (100%).",
"storage_instructions": "Chilled: Keep refrigerated. Store below 4°C.",
"operation": "search",
"search_query": "milk",
"position": 3
}
With Add the category list you also get one row per category (record_type: "category", name, path, ID, parent and link), and with Add the Special Buys calendar one row per sale date (record_type: "special_event", date, weekday and themes). The Output tab has separate tables for products, categories and the calendar.
You pay $0.35 per 1,000 results ($0.00035 per product, category or calendar row saved), plus the small platform usage of the run (compute and proxy traffic). Example: 1,000 products with full details cost about $0.35 in results plus well under one cent of usage on the default datacenter proxy. Runs that find nothing cost only the usage, and a run stops cleanly when your maximum charge is reached.
Is it legal to scrape ALDI Australia? The scraper reads public product pages that anyone can see without an account. You are responsible for how you use the data; check the site's terms and your local laws, especially for commercial use.
Do I need a login or my own proxy? No. No account is needed, and the default datacenter proxy works. If ALDI ever blocks it, the scraper switches to Australian residential proxies by itself.
How many products can I get?
Everything ALDI lists online: about 3,300 products in the full range. Use https://www.aldi.com.au/products as a link with Max results 0 for the whole catalogue.
Why are some fields empty? ALDI fills fields such as ingredients, country of origin or unit price only for some products (for example non-food Special Buys have no unit price). Turning off product details also leaves the description fields empty.
Do prices differ by store? In our checks the shelf prices were the same at stores in New South Wales and Victoria, so the scraper reports ALDI's national online prices.
Can I schedule it or use the API? Yes. Schedule weekly runs for price tracking or the Special Buys calendar, and start runs and download results through the API in JSON, CSV or Excel.
in_stock only means the product is listed and not discontinued.sold_online is false); prices are the in-store shelf prices ALDI publishes.Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
searchQueriesarrayOptionalSearch terms
Product searches to run on aldi.com.au, for example milk, coffee pods or air fryer. Each term is scraped separately.
startUrlsarrayOptionalALDI links
Links copied from aldi.com.au: search results, category pages (/products/.../k/...), the whole catalogue (/products), Special Buys pages (/special-buys/2026-10-24), brand pages and product pages. Sort and filters in the link are kept.
maxItemsintegerOptionaldefault 20Max results per input
How many products to save for each search term, link, category or Special Buys date. The limit applies per input. 0 means no limit (the whole ALDI range is about 3,300 products).
categoriesarrayOptionalCategories
ALDI categories by name, path or ID, for example Dairy, Eggs & Fridge, pantry/confectionery or 960000000. Turn on the category list below to see every category.
productIdsarrayOptionalProduct IDs
ALDI product IDs (the number at the end of a product link, for example 000000000538441002). Product IDs always include full details.
specialBuysDatesarrayOptionalSpecial Buys dates
Special Buys sale dates in YYYY-MM-DD form, for example 2026-10-24. Every product of that Special Buys event is scraped. Turn on the Special Buys calendar to see the current dates and themes.
allSpecialBuysbooleanOptionaldefault falseAll current Special Buys
Scrape every Special Buys event ALDI currently advertises (usually the next 4 to 6 sale dates). Max results per input applies to each date and theme.
specialBuysThemesarrayOptionalSpecial Buys themes
Keep only these Special Buys themes, for example Gardening or Pool Care. Leave empty for every theme.
sortByenumOptionaldefault "relevance"Sort by
Order ALDI returns products in.
brandsarrayOptionalBrands
Keep only these brands, for example FARMDALE or CHOCEUR (not case sensitive).
minPricenumberOptionalMinimum price (AUD)
Skip products whose shelf price is below this.
maxPricenumberOptionalMaximum price (AUD)
Skip products whose shelf price is above this. Leave empty or 0 for no maximum.
onlySpecialBuysbooleanOptionaldefault falseOnly Special Buys
Keep only products that are part of a Special Buys event (they carry a sale date).
includeDetailsbooleanOptionaldefault trueInclude product details
Load each product's details: description, ingredients, allergens, storage and usage instructions, country of origin and all images. Adds one fast request per product.
includeCategoryListbooleanOptionaldefault falseAdd the category list
Also save one row per ALDI category (name, path, ID, parent and link). Each category row counts as a result.
includeSpecialBuysCalendarbooleanOptionaldefault falseAdd the Special Buys calendar
Also save one row per advertised Special Buys date with its weekday and themes. Each date row counts as a result.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Datacenter proxies work for ALDI and are the cheapest. If ALDI blocks them, the scraper switches to Australian residential proxies by itself.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| record_type | string | null | product, category or special_event |
| id | string | null | ALDI product ID, category ID or Special Buys date |
| name | string | null | Product, category or event name |
| brand | string | null | Brand |
| size | string | null | Pack size |
| price | number | null | Shelf price in AUD |
| was_price | number | null | Previous price in AUD when ALDI shows one |
| discount_price | number | null | Reduced price in AUD when there is a was price |
| price_text | string | null | Price as shown by ALDI |
| currency | string | null | Currency (AUD) |
| unit_price | number | null | Comparable unit price in AUD |
| unit_quantity | number | null | Quantity the unit price refers to |
| unit | string | null | Unit of the unit price (g, kg, ml, L, each) |
| comparable_price_text | string | null | Unit price as shown by ALDI |
| price_per_unit_text | string | null | Per-item price text for multipacks |
| savings_text | string | null | Savings text |
| bottle_deposit | number | null | Container deposit in AUD |
| price_info | array | null | Price block (price, discount price, unit price) |
| category | string | null | Top-level category |
| subcategory | string | null | Sub-category |
| category_id | string | null | Deepest category ID |
| category_url | string | null | Deepest category link |
| breadcrumbs | array | null | Category path |
| is_special_buy | boolean | null | Part of a Special Buys event |
| special_buy_date | string | null | Special Buys sale date (YYYY-MM-DD) |
| special_buy_day | string | null | Weekday of the Special Buys date |
| special_buy_label | string | null | Special Buys label, e.g. On Sale Sat 24 Oct |
| event_date | string | null | Special Buys date of the input |
| event_day | string | null | Weekday of the Special Buys date |
| day | string | null | Weekday (calendar rows) |
| theme | string | null | Special Buys theme |
| themes | array | null | Themes of a Special Buys date |
| theme_urls | array | null | Links to each Special Buys theme |
| promotion_type | string | null | special_buy for Special Buys inputs |
| promotion_label | string | null | Promotion label |
| in_stock | boolean | null | Listed and not discontinued |
| stock_status | string | null | InStock or Discontinued |
| discontinued | boolean | null | ALDI marks the product discontinued |
| sold_online | boolean | null | Can be ordered online (most ALDI AU products are in-store only) |
| age_restricted | boolean | null | Alcohol or age-restricted product |
| badges | array | null | Product badges |
| image | string | null | Main image |
| images | array | null | All images |
| source_url | string | null | ALDI link |
| slug | string | null | URL slug |
| description | string | null | Description (with product details) |
| ingredients | string | null | Ingredients (with product details) |
| allergens | array | null | Allergens (with product details) |
| storage_instructions | string | null | Storage instructions (with product details) |
| usage_instructions | string | null | Usage instructions (with product details) |
| country_of_origin | string | null | Country of origin (with product details) |
| nutritional_claims | array | null | Nutritional claims (with product details) |
| warnings | array | null | Warnings (with product details) |
| details_fetched | boolean | null | Product details were loaded |
| path | string | null | Category path (category rows) |
| parent_id | string | null | Parent category ID (category rows) |
| level | number | null | Category depth, 1 = top level |
| subcategory_count | number | null | Number of sub-categories |
| position | number | null | Position within the input |
| operation | string | null | search, category, catalogue, specials, product, categories or special_events |
| search_query | string | null | Search term |
| source_input | string | null | The input this row came from |
| retrieved_at | string | null | When the row was scraped (UTC) |
| country | string | null | AU |
| source | string | null | aldi |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Result | One saved ALDI product, category or Special Buys date. | $0.00035 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('shelfbright/aldi-scraper').call({
"searchQueries": [
"milk"
],
"startUrls": [],
"maxItems": 20,
"categories": [],
"productIds": [],
"specialBuysDates": [],
"specialBuysThemes": [],
"brands": [],
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run shelfbright/aldi-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=shelfbright/aldi-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Search for milk, Farmdale brand only, lowest price first, with product details.
Products from an ALDI category link, list data only (fast).
Products from every Special Buys event ALDI currently advertises.
A category by name with a price range filter.
Ingredients, allergens, description and images for known product IDs.
The category tree and the Special Buys calendar, no products.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.