UK Grocery Prices: Tesco, Sainsbury's, Asda, Aldi
Pricing
from $1.39 / 1,000 products
UK Grocery Prices: Tesco, Sainsbury's, Asda, Aldi
Compare UK supermarket prices from Tesco, Sainsbury's, Asda, Aldi and Morrisons in one dataset.
UK Grocery Prices: Tesco, Sainsbury's, Asda, Aldi
Pricing
from $1.39 / 1,000 products
Compare UK supermarket prices from Tesco, Sainsbury's, Asda, Aldi and Morrisons in one dataset.
What the run does. Search: look up each query in the selected shops. Category / Product: read the URLs you paste (the shop comes from each URL). Catalogue: read whole shops (every grocery category). Basket: price a shopping list at each shop and find the cheapest.
Shops to run in Search, Catalogue and Basket mode. Default is Aldi and Sainsbury's. Category and Product mode ignore this and use the shop of each URL.
[ "aldi", "sainsburys"]Search mode: words to search for, such as semi skimmed milk. Each query runs in every selected shop. Up to 50 queries.
[ "milk"]Category mode: category page links from tesco.com, sainsburys.co.uk (ending in /c:), asda.com (/groceries//...), aldi.co.uk (containing /k/) or groceries.morrisons.com. Up to 250 URLs.
Product mode: product page links from tesco.com, sainsburys.co.uk, asda.com, aldi.co.uk or groceries.morrisons.com. Up to 500 URLs.
Basket mode: one item per line, with an optional quantity like '2 x semi skimmed milk'. Each item is matched in every selected shop and the run reports each shop's total and the cheapest shop.
The most product rows the run saves; every row is charged, so start small. 0 means no limit. The limit is split equally between the shops that run, so 100 across five shops gives up to 20 each. Not used in Basket mode.
Add ingredients and the nutrition table to each product (one extra request per product). Rows that get ingredients or nutrition are charged the Product details event on top of the product.
Save this week's price of every product to a key-value store named 'uk-grocery-price-history' in your Apify account. Once a product has prices from two or more weeks, its row gets a priceHistory list (charged as Price history). The history fills up as you run the Actor in later weeks, for example on a weekly schedule.
Basket mode: Live searches each shop now. Snapshot uses the latest weekly prices saved by your runs with 'Keep weekly price history' and falls back to live for items not in the snapshot.
Which product stands in for each item. Cheapest: the lowest unit price among results containing every word of the item. Top result: the shop's first result containing every word.
Basket mode: use Clubcard, Nectar and More Card prices where a product has one.
Optional. Asda store number used for the in-stock flag. With a store ID, products that store does not sell are left out. Empty uses the store asda.com shows before a postcode is entered (4565). Prices come from Asda's online price list for England either way.
Optional. Name of a dataset in your account that also receives every row the run saves, created on first use, so repeated runs add up in one place. Letters, digits and hyphens only, e.g. my-uk-grocery-prices.
Optional. Names this run's dataset when the run finishes, so it is kept until you delete it. Placeholders: {isoWeek} (2026-W45), {date} (2026-11-03) and {retailer} (the shop, or multi). Letters, digits and hyphens only, e.g. snapshot-{retailer}-{isoWeek}.