BasketWatch Irish Grocery Data - Aldi|Tesco|SuperValu|Dunnes avatar

BasketWatch Irish Grocery Data - Aldi|Tesco|SuperValu|Dunnes

Pricing

from $5.00 / 1,000 results

Go to Apify Store
BasketWatch Irish Grocery Data - Aldi|Tesco|SuperValu|Dunnes

BasketWatch Irish Grocery Data - Aldi|Tesco|SuperValu|Dunnes

Weekly product, price, unit price and promotion data for the four major Irish supermarkets. Thin client — fetches from BasketWatch's existing API (so prices are the same weekly snapshot as the BasketWatch dashboard, no scraping happens at run-time).

Pricing

from $5.00 / 1,000 results

Rating

0.0

(0)

Developer

BasketWatch

BasketWatch

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

0

Monthly active users

3 days ago

Last modified

Categories

Share

BasketWatch — Irish Grocery Data

Every SKU. Every shelf price. Every promotion. Across all four major Irish supermarkets — Aldi, Tesco, SuperValu and Dunnes Stores — refreshed weekly.

The only data feed on Apify Store that covers the full Irish grocery market in one place. 47,514 live SKUs as of this week — 16,468 of them currently on promotion — structured into clean JSON rows, with promotional pricing, loyalty-card prices, multibuys, was-prices and offer-validity windows already parsed and ready for analysis.

🗓️ Refresh schedule

All four retailers are scraped every Friday morning at 02:00 GMT. Every actor run from that point in the week reads from the latest weekly snapshot — the scrape_date field on each row tells you exactly when the price was captured. Need a faster cadence (daily, twice-weekly, on-demand)? See the contact details at the bottom of this page.

Why this 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 anti-bots aggressively and emits prices in a different shape. Building this in-house means:

  • 4 separate scrapers, each with its own regex + class-name extraction rules
  • Anti-bot bypass infrastructure that survives Cloudflare and JavaScript challenges
  • Weekly maintenance as each retailer's markup drifts
  • Data-quality fixes for the inevitable per-unit-vs-pack-price misreads, cents-suffix parse errors, promo-badge collisions, etc.
  • Cross-retailer SKU matching by brand + canonical pack size

We've done all of that and packaged it into one Apify actor. You call the endpoint, you get clean rows.

What you get

Pick a retailer and a dataset — get back structured rows you can load directly into pandas, BigQuery, Excel, your warehouse or pipeline:

DatasetWhat's in each row
productsSKU id, name, brand, pack size + canonical units, current shelf price, unit price (€/kg, €/L), full category breadcrumb, product URL, first-seen + last-seen dates
promotionsOnly products currently on offer — offer label (e.g. "3 for €5", "SAVE €0.75", "Only €2.50"), was-price, validity window ("13th May - 15th Jun"), Tesco Clubcard prices, SuperValu Real Rewards and Dunnes member-only pricing where promoted
new-productsProducts newly listed within a configurable window — range additions / launches
removedProducts that have dropped off the catalogue — delistings / range cuts
changesWeek-over-week price movements with delta and % change (compares the latest weekly snapshot to the previous one)

Available data per retailer

Any combination below is valid input to the actor — set store and dataset to one of these and you'll get the matching rows:

dataset ↓    storeAldiTescoSuperValuDunnes
products✓ 2,948✓ 19,057✓ 11,069✓ 14,440
promotions(Aldi doesn't publish multibuy promos)✓ 7,089 on offer✓ 3,219 on offer✓ 6,160 on offer
new-products
removed
changes

Counts are the live current SKU figures (refreshed weekly). new-products / removed row counts depend on the days_back window you pass; changes returns however many SKUs moved week-over-week.

Example input:

{ "store": "tesco", "dataset": "promotions", "max_products": 1000 }

Returns up to 1,000 Tesco products currently on offer — with Clubcard prices, was-prices, multibuy labels and offer-validity windows already parsed. Search by product name (e.g. heinz, cadbury, kerrygold) is supported on the products dataset via the search input.

Sample output

Input:

{
"store": "tesco",
"dataset": "promotions",
"max_products": 50
}

Output (one row per product on offer):

{
"id": "tesco:307552934",
"store": "tesco",
"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-21"
}

Use cases

BuyerWhat they do with it
CPG brand teamsTrack competitor pricing, promo depth and assortment share across all four retailers from a single feed
Retail suppliersMonitor own-brand and private-label pressure against your products, weekly
Market research & consultanciesContinuous Irish grocery price index, cost-of-living tracking, basket analysis
Journalism & data investigationsCited, timestamped, reproducible source data for stories on food inflation, shrinkflation, promotional intensity
Public bodies & regulatorsIndependent grocery price evidence for consumer protection, competition oversight and official statistics
Academic & policy researchHousehold-budget research, food-policy studies, longitudinal price tracking

How it works

This actor is a thin client over a hardened weekly scrape pipeline. The four retailers are scraped on a fixed weekly cadence — every Friday at 02:00 GMT — by infrastructure that handles:

  • Mercatus storefront parsing (SuperValu + Dunnes) with corrected ProductPrice selectors — no per-unit-price-as-headline misreads
  • Anti-bot bypass for Cloudflare-fronted endpoints
  • Multipack canonicalisation"4 x 330ml", "12 Pack (330 ml)" and "2L" all normalise to comparable units
  • Promo capture — offer label + was-price + validity window from PromotionLabelBadge / ProductWasPrice / OfferValidMessage elements
  • Loyalty-tier pricing — Tesco Clubcard prices, SuperValu Real Rewards pricing, Dunnes member offers
  • Data-quality checks — week-over-week catalogue-drop detection, per-product outlier sweeps, regression-tested parsers

You don't pay for any of that scraping cost on a per-call basis — the pipeline runs once a week regardless. Each actor run reads from the already-fetched snapshot, so:

  • Fast: <2 seconds per page of results (vs 5-15 minutes for a live scrape)
  • Cheap to fulfil: marginal cost per row is fractions of a cent
  • Consistent: the same parser fixes and regression-tested extraction rules across every call

The scrape_date field on every row tells you exactly when each price was captured.

Weekly (Friday 02:00 GMT) is the default cadence. Daily or twice-weekly snapshots can be stood up for buyers with a continuous-monitoring use case (e.g. live inflation tracking, real-time competitive-pricing dashboards) — the underlying scrape infrastructure already supports it; gating is on committed demand rather than engineering. Reach out to basketwatchireland@gmail.com if that's you.

Pricing

Pay-per-result — only pay for rows you actually receive. Your Apify subscription tier determines the per-row rate:

Your Apify planPer resultPer 1,000 rowsFull Aldi (2,948)Full Tesco (19,057)
Free (no subscription)$0.05$50.00~$147~$953
Starter (Bronze)$0.01$10.00~$29~$191
Scale (Silver)$0.007$7.00~$21~$133
Business (Gold)$0.005$5.00~$15~$95

Plus a flat $0.05 per run (Actor start) — waived for the first 5 seconds of runtime. Platform compute is included; no separate platform charges on top.

Maximum rows per run is configurable up to 100,000 — enough for a full multi-retailer pull in a single run if you need it.

Need unlimited API access, bulk historical exports or a direct integration that bypasses Apify? Email basketwatchireland@gmail.com.

Coverage (live figures, refreshed weekly)

RetailerSKUsOn promotion nowPromotional dataLoyalty pricing
Aldi2,948Limited (Aldi doesn't publish multibuy promos)
Tesco19,0577,089Full incl. multibuys & "Tesco Finest"Tesco Clubcard prices as a dedicated field
SuperValu11,0693,219Full incl. "3 for €X" multibuys, was-prices, validity windowsSuperValu Real Rewards member pricing captured in offer label
Dunnes Stores14,4406,160Full incl. multibuys, was-prices, validity windowsDunnes member offers captured in offer label
Total47,51416,468

Every actor run reflects the most recent weekly snapshot. The scrape_date field on each row tells you when that price was captured.

Limits

  • Hard cap of 100,000 rows per run. Large pulls scale linearly in cost.
  • Search filtering currently applies to the products dataset only.

Support & contact

📧 basketwatchireland@gmail.com

Email directly for any of the following — typical response within 24 hours:

  • Scraper issues or data-quality questions — wrong price, missing product, weird pack-size value, suspicious week-over-week jump
  • Commercial enquiries — custom scraping solutions, additional Irish retailers, scraping for other markets (UK, NI, EU), bespoke integrations
  • Higher-cadence pulls — daily / twice-weekly / on-demand snapshots
  • Bulk historical exports — multi-year price history, full back-catalogue
  • Direct API access — integrate against the BasketWatch API directly (skipping Apify) for unlimited pulls and lower marginal cost

You can also use Apify's Contact maintainer button on this listing — it routes to the same inbox.


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.