Irish Grocery Data API / Dataset Actor
Pricing
from $3.00 / 1,000 product results
Irish Grocery Data API / Dataset Actor
API-backed BasketWatch dataset actor for Irish grocery product, price, unit price and promotion data across Aldi, Tesco, SuperValu and Dunnes. Returns the latest daily BasketWatch snapshot as clean JSON; no live retailer scraping happens during the Apify run.
Pricing
from $3.00 / 1,000 product results
Rating
0.0
(0)
Developer
BasketWatch
Maintained by CommunityActor stats
0
Bookmarked
5
Total users
1
Monthly active users
18 days ago
Last modified
Categories
Share
API-backed BasketWatch dataset actor for every SKU, shelf price and promotion across the four major Irish supermarkets — Aldi, Tesco, SuperValu and Dunnes Stores — refreshed daily.
The only Apify dataset actor covering the full Irish grocery market in one place. ~47,000 live SKUs today — ~16,000 of them currently on promotion — structured into clean JSON and pushed straight to your Apify dataset, ready to load into your warehouse, notebook or app.
No live retailer scraping happens during the Apify run. BasketWatch maintains the retailer collection and data-quality pipeline separately, then this actor serves the latest daily BasketWatch snapshot through Apify with pricing, loyalty-card prices, multibuys, was-prices and offer-validity windows already parsed.
🗓️ Refresh schedule
All four retailers are refreshed daily by BasketWatch. The full catalogue — every SKU, every shelf price and every promotion — is rebuilt for Aldi, Tesco, SuperValu and Dunnes Stores each day. Every row includes a
scrape_datefield so you know exactly when the price was captured. Need real-time or intraday pulls? Email info@basketwatchireland.com.
Why this Actor exists
The Irish grocery market is dominated by four retailers running on three different e-commerce platforms — Aldi's bespoke storefront, Tesco Ireland's own stack, and the Mercatus platform shared by SuperValu and Dunnes Stores. Each emits prices in a different shape, with different promo conventions and different loyalty schemes. Stitching them together yourself means maintaining four parsers, four collection strategies, and a steady stream of data-quality fixes.
We've done that work. Through Apify, you get a simple run input, dataset export, and one consistent JSON schema across all four retailers.
What you get
Five datasets, available per retailer:
| Dataset | What's in each row |
|---|---|
| products | SKU id, name, brand, pack size + canonical units, current shelf price, unit price (€/kg, €/L), full category breadcrumb, product URL, first-seen + last-seen dates |
| promotions | Products currently on offer — offer label (e.g. "3 for €5", "SAVE €0.75", "Only €2.50"), was-price, validity window, Tesco Clubcard prices, SuperValu Real Rewards and Dunnes member-only pricing |
| new-products | Products newly listed within a configurable window — range additions / launches |
| removed | Products dropped off the catalogue — delistings / range cuts |
| changes | Day-over-day price movements with delta and % change |
Coverage per retailer
| Endpoint suffix | Aldi | Tesco | SuperValu | Dunnes |
|---|---|---|---|---|
products | ✓ ~2,950 | ✓ ~19,000 | ✓ ~11,000 | ✓ ~14,500 |
promotions | — (Aldi doesn't publish multibuy promos) | ✓ ~7,000 on offer | ✓ ~3,200 on offer | ✓ ~6,200 on offer |
new-products | ✓ | ✓ | ✓ | ✓ |
removed | ✓ | ✓ | ✓ | ✓ |
changes | ✓ | ✓ | ✓ | ✓ |
Inputs
The actor takes a single JSON input. Five fields, two required:
| Field | Required | Type | Default | Notes |
|---|---|---|---|---|
store | yes | string | aldi | One of aldi, tesco, supervalu, dunnes |
dataset | yes | string | products | One of products, promotions, new-products, removed, changes |
max_products | no | integer | 500 | Hard cap on rows. 1–100,000. Cost scales linearly — check the run estimate before starting. |
search | no | string | — | Case-insensitive substring match on product name. Only applied when dataset = products. |
days_back | no | integer | 7 | Lookback window in days. Only applied when dataset = new-products or removed. 1–60. |
Dataset availability per retailer:
| Dataset | Aldi | Tesco | SuperValu | Dunnes |
|---|---|---|---|---|
products | ✓ | ✓ | ✓ | ✓ |
promotions | — (Aldi doesn't publish multibuys) | ✓ | ✓ | ✓ |
new-products | ✓ | ✓ | ✓ | ✓ |
removed | ✓ | ✓ | ✓ | ✓ |
changes | ✓ | ✓ | ✓ | ✓ |
Sample inputs
Copy any block into the actor's Input tab.
Full catalogue per retailer
{ "store": "aldi", "dataset": "products", "max_products": 3000 }
{ "store": "tesco", "dataset": "products", "max_products": 20000 }
{ "store": "supervalu", "dataset": "products", "max_products": 12000 }
{ "store": "dunnes", "dataset": "products", "max_products": 15000 }
Promotions only (excludes Aldi — no multibuy capture)
{ "store": "tesco", "dataset": "promotions", "max_products": 8000 }
{ "store": "supervalu", "dataset": "promotions", "max_products": 4000 }
{ "store": "dunnes", "dataset": "promotions", "max_products": 7000 }
Range additions in the last week
{ "store": "aldi", "dataset": "new-products", "days_back": 7, "max_products": 500 }
{ "store": "tesco", "dataset": "new-products", "days_back": 7, "max_products": 1000 }
{ "store": "supervalu", "dataset": "new-products", "days_back": 7, "max_products": 1000 }
{ "store": "dunnes", "dataset": "new-products", "days_back": 7, "max_products": 1000 }
Range cuts / delistings
{ "store": "aldi", "dataset": "removed", "days_back": 14, "max_products": 500 }
{ "store": "tesco", "dataset": "removed", "days_back": 14, "max_products": 1000 }
{ "store": "supervalu", "dataset": "removed", "days_back": 14, "max_products": 1000 }
{ "store": "dunnes", "dataset": "removed", "days_back": 14, "max_products": 1000 }
Day-over-day price moves
{ "store": "aldi", "dataset": "changes", "max_products": 1000 }
{ "store": "tesco", "dataset": "changes", "max_products": 1000 }
{ "store": "supervalu", "dataset": "changes", "max_products": 1000 }
{ "store": "dunnes", "dataset": "changes", "max_products": 1000 }
Filtered pulls (substring match on product name — products only)
{ "store": "tesco", "dataset": "products", "search": "heinz", "max_products": 500 }
{ "store": "supervalu", "dataset": "products", "search": "kerrygold", "max_products": 200 }
{ "store": "dunnes", "dataset": "products", "search": "brennans", "max_products": 200 }
{ "store": "aldi", "dataset": "products", "search": "organic", "max_products": 200 }
Tiny evaluation run (cheapest — costs ~10 rows)
{ "store": "aldi", "dataset": "products", "max_products": 10 }
Sample response
[{"id": "tesco:307552934","name": "Heinz Baked Beans In Tomato Sauce 415G","brand": "Heinz","category_path": "Food Cupboard > Tinned Food > Tinned Beans, Pasta & Pulses","pack_size": "415G","price": 1.49,"unit_price": 3.59,"unit_basis": "1 KG","offer_text": "Any 3 for £3 Clubcard Price","was_price": 1.85,"clubcard_price": 1.00,"offer_valid": "13th May - 9th Jun","url": "https://www.tesco.ie/groceries/...","scrape_date": "2026-05-28"}]
Every row carries scrape_date so you always know exactly when the price
was captured.
Who uses this
| Buyer | What they do with it |
|---|---|
| CPG brand teams | Track competitor pricing, promo depth and assortment share across all four retailers from a single API key |
| Retail suppliers | Monitor own-brand and private-label pressure against your products, daily |
| Market research & consultancies | Continuous Irish grocery price index, cost-of-living tracking, basket analysis |
| Pricing-intelligence apps | Power consumer-facing apps that compare prices across supermarkets |
| AI-agent builders | Connect Irish grocery price intelligence into private analyst copilots via commercial MCP-compatible access |
| Journalism & data investigations | Cited, timestamped, reproducible source data for stories on food inflation, shrinkflation, promotional intensity |
| Public bodies & regulators | Independent grocery price evidence for consumer protection, competition oversight and official statistics |
| Academic & policy research | Household-budget research, food-policy studies, longitudinal price tracking |
Pricing
Pay-per-result, in USD, billed by Apify. You pay per row pushed to your dataset, plus a small flat fee per actor start. The active pricing is flat across Apify subscription tiers: every listed tier pays $0.003 per result row, which is $3 / 1,000 rows.
| Apify plan | Per result row | Per actor start at default 1 GB |
|---|---|---|
| Free (no Apify subscription) | $0.003 | $0.05 |
| Starter (Bronze) | $0.003 | $0.05 |
| Scale (Silver) | $0.003 | $0.05 |
| Business (Gold) | $0.003 | $0.05 |
Platform compute is included. The default run memory is 1 GB, so a normal run adds one start fee; manually increasing memory can increase the start fee. Apify's Platinum and Diamond tiers are also configured at the same $0.003 per result row.
What it costs at common volumes
| Volume | Approx. user cost |
|---|---|
| 100 rows (trial) | $0.35 |
| 1,000 rows | $3.05 |
| 3,000 rows (full Aldi guide) | $9.05 |
| 12,000 rows (full SuperValu guide) | $36.05 |
| 15,000 rows (full Dunnes guide) | $45.05 |
| 19,000 rows (full Tesco guide) | $57.05 |
| 47,514 rows (all 4 product catalogues, 4 runs) | $142.74 |
| 100,000 rows (hard cap) | $300.05 |
Run estimates show before you click Start, so you can right-size
max_products to your budget. The hard cap is 100,000 rows per run.
Tip: A
max_products: 100trial costs $0.35 on every tier - enough to evaluate the schema and field quality before committing to a full pull.
Need more than this actor can give you?
Email info@basketwatchireland.com for:
- Unlimited direct API access — a fixed monthly subscription that bypasses Apify entirely, billed directly. Better economics for anyone pulling the catalogue more than ~once a month.
- Daily CSV bundles — automated daily drop to your S3 / GCS bucket.
- Intraday or on-demand pulls — sub-daily refresh cadence.
- Bulk historical exports — multi-year price history beyond what this actor returns.
- Private AI-agent / MCP access — BasketWatch wired into an internal analyst copilot. Connector details supplied only to approved customers.
Limits & guarantees
- Up to 100,000 rows per run (set via
max_products); pagination against the upstream API is handled internally — your dataset just fills with rows. - Output is always JSON pushed to the actor's default dataset. From there, export to CSV / Excel / JSON / JSONL / RSS / XML via the Apify Console or the dataset API.
searchfilter applies to the products dataset only.days_backapplies to new-products and removed only.- All prices are in EUR (€); pack quantities normalised to grams / millilitres.
scrape_dateon every row tells you exactly when each price was captured.
Support & contact
📧 info@basketwatchireland.com — typical response within 24 hours.
Email directly for any of the following:
- API issues or data-quality questions — wrong price, missing product, weird pack-size value, suspicious day-over-day jump
- Commercial enquiries — custom solutions, additional Irish retailers, other markets (UK, NI, EU), bespoke integrations
- Intraday or on-demand pulls
- Bulk historical exports — multi-year price history, full back-catalogue
- Direct API access — skip Apify's pay-per-result model for a flat monthly subscription with unlimited pulls (better economics above ~one full multi-store pull per month)
- Private AI-agent access — commercial MCP-compatible access for internal analyst copilots and automated grocery-pricing workflows
BasketWatch is not affiliated with Aldi Ireland, Tesco Ireland, Musgrave SuperValu or Dunnes Stores. Data is collected from publicly available sources for lawful market research and price comparison purposes.