Tesco Product Scraper
Pricing
from $2.60 / 1,000 overview product extracteds
Tesco Product Scraper
Scrape Tesco groceries — price, unit price, Clubcard offers, nutrition, ingredients & allergens. Keyword or aisle search, detail enrichment, clean JSON/CSV, no code.
Pricing
from $2.60 / 1,000 overview product extracteds
Rating
0.0
(0)
Developer
SIÁN OÜ
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
9 hours ago
Last modified
Categories
Share
Tesco Product Scraper — Prices, Clubcard, Nutrition & Allergens to JSON/CSV 🚀
🎉 Turn any Tesco search, aisle, or product page into a clean dataset — prices, Clubcard offers, unit prices, ratings, and full nutrition, ingredients & allergens in a single run.
Perfect for grocery price analysts, comparison sites, nutrition-app builders, and range researchers who need reliable Tesco data without lifting a finger.
📋 Overview
The Tesco Product Scraper turns tesco.com/groceries into structured data in seconds. Search by keyword, browse an aisle, or paste Tesco product URLs, and get a clean JSON/CSV dataset with one row per product — prices, Clubcard offers, unit prices, ratings, availability, and complete nutrition, ingredients, and allergens.
No account, no API key, no setup. Just enter what you want, click Run, and download export-ready data for grocery price monitoring, nutrition feeds, and range research.
Why professionals choose us:
- ✅ Zero Setup: No Tesco account or API key — enter keywords and go
- ⚡ Fast Overview Mode: Pull search and aisle results at scale — id, title, price, unit price, Clubcard price, rating, and availability
- 🏷️ Clubcard & Unit Price Built In: Capture Clubcard/offer prices, promotion text, and unit prices (£/kg, £/litre, £/100g) for true like-for-like comparison
- 🥗 Deep Detail Mode: Enrich every product with full nutrition tables, ingredients, allergens, storage, pack size, brand, and the complete image gallery
- 💰 Pay-Per-Result Pricing: Only pay for products you actually extract — plus a free tier to test risk-free
- 💎 One Clean Record Per Product: Overview and detail are merged into a single row — no stitching, no duplicates
- ✨ NEW: Dietary Filters: Filter by Vegan, No gluten, Organic, Vegetarian, Halal, and Kosher to build focused catalogs
✨ Features
- 🔍 Keyword & Aisle Search: Find products by free-text search or by Tesco aisle/browse paths
- 🔗 Paste Tesco URLs: Drop in any tesco.com/groceries search, aisle, or product URL and scrape it directly
- ⚡ Overview Mode: Fast results extraction — product id, title, price, unit price, Clubcard price, promotion text, image, availability, and taxonomy (super-department → department → aisle → shelf)
- 🥗 Detail Mode: Full nutrition table, ingredients, allergens, storage instructions, pack size, brand, manufacturer, dietary icons, and complete image gallery
- 🏷️ Clubcard & Promotions: Clubcard/offer price, promotion text, and on-offer flag for every product
- 📏 Unit Price Comparison: £/kg, £/litre, £/100g and unit of measure for true value-for-money analysis
- ⭐ Ratings & Reviews: Star rating and total review count for every product
- 📦 Availability Intelligence: In-stock status and availability for stock and range checks
- 🥦 Dietary Filters: Vegan, No gluten, Organic, Vegetarian, Halal, and Kosher filtering
- 🎚️ Sorting & Filters: Relevance, Price low→high, Price high→low — plus brand, min/max price, on-offer, and new-products filters
- 💾 Clean JSON & CSV: Export-ready dataset with one row per product, priced in GBP (£)
🎬 Quick Start
Enter keywords, aisle paths, or Tesco URLs, pick a mode, and click Run. Results land in your dataset ready to export.
# Run via API - one linecurl -X POST https://api.apify.com/v2/acts/sian.agency~tesco-product-scraper/runs?token=[YOUR_TOKEN] \-d '{"queries": ["milk"], "scrapeMode": "overview"}'
🚀 Getting Started (3 Simple Steps)
Step 1: Tell It What to Scrape
Enter search keywords (e.g. milk, coffee, pasta), add Tesco aisle/browse paths, or paste tesco.com/groceries URLs. Mix and match as needed.
Step 2: Choose Mode & Filters
Pick Overview (fast search and aisle data) or Detail (enriched with nutrition, ingredients, and allergens). Optionally set a sort order, brand, min/max price, on-offer, new-products, or dietary filters (Vegan, No gluten, Organic, Vegetarian, Halal, Kosher).
Step 3: Run & Download
Click Run and download clean, structured data as JSON, CSV, or Excel — ready for spreadsheets, databases, and analytics tools.
That's it! In minutes, you'll have:
- Live prices, Clubcard/offer prices, promotion text, and unit prices (£/kg, £/litre)
- Ratings, review counts, images, and availability for every product
- Full nutrition tables, ingredients, allergens, storage, and pack size (detail mode)
- Clean export-ready data priced in GBP, one row per product
📥 Input Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| queries | array | No | Free-text Tesco searches (e.g. "milk", "coffee") |
| browsePaths | array | No | Tesco aisle / browse paths to scrape (e.g. "drinks/coffee") |
| urls | array | No | Tesco search, aisle, or product URLs to scrape directly |
| scrapeMode | string | No | overview (fast) or detail (nutrition, ingredients, allergens) |
| sort | string | No | Relevance, Price low→high, Price high→low |
| brand | string | No | Limit results to a single brand |
| dietary | string | No | A single Tesco dietary facet — Vegan, No gluten, Organic, Vegetarian, Halal, or Kosher |
| minPrice | number | No | Minimum price band (GBP) |
| maxPrice | number | No | Maximum price band (GBP) |
| onOffer | boolean | No | Only return products on offer / with a Clubcard price |
| newProducts | boolean | No | Only return newly added products |
| maxResults | integer | No | Maximum number of products to return |
Example — keyword search, detail mode:
{"queries": ["coffee"],"scrapeMode": "detail","sort": "price_low","dietary": "Vegan","minPrice": 2,"maxPrice": 8,"onOffer": true,"maxResults": 100}
Example — scrape aisle paths and URLs:
{"browsePaths": ["fresh-food/fresh-milk"],"urls": ["https://www.tesco.com/groceries/en-GB/search?query=oat%20milk"],"scrapeMode": "overview"}
📤 Output
Results are saved to the Apify dataset with 30+ fields per product, one clean row each. In detail mode, the overview row is enriched in place with nutrition, ingredients, allergens, and the full gallery — no separate records to merge.
| Field | Type | Description |
|---|---|---|
| tpnc | string | Tesco product number (unique product ID) |
| productTitle | string | Full product name |
| brand | string | Brand name |
| price | number | Current price (GBP) |
| unit_price | number | Price per unit of measure (e.g. £/kg, £/litre, £/100g) |
| unit_of_measure | string | Unit the unit price is based on (kg, litre, 100g, each) |
| clubcard_price | number | Clubcard / offer price (GBP) |
| promotion_text | string | Promotion / offer description |
| rating | number | Average star rating |
| review_count | number | Total number of reviews |
| in_stock | boolean | Whether the product is currently in stock |
| pack_size | string | Pack / product size (e.g. 200g, 4 pints) |
| nutrition | array | Nutrition rows — each { name, values[] } (energy, fat, carbs, protein, salt…) (detail) |
| ingredients | array | Full ingredients list (detail) |
| allergens | array | Declared allergens (detail) |
| dietary_icons | array | Dietary / food icons (Vegan, Red Tractor, etc.) (detail) |
| images | array | Full product image gallery (detail) |
Full example (detail mode):
{"thumbnail": "https://digitalcontent.api.tesco.com/v2/media/ghs/image.jpg","tpnc": "254656242","tpnb": "81496284","productTitle": "Nescafe Gold Blend Instant Coffee 200G","url": "https://www.tesco.com/groceries/en-GB/products/254656242","source": "detail","brand": "Nescafe","manufacturer": "Nestlé UK Ltd, Haxby Road, York, YO91 1XY","price": 6.00,"unit_price": 3.00,"unit_of_measure": "100g","currency": "GBP","clubcard_price": 5.00,"promotion_text": "Clubcard Price £5.00 until 21 Jul","on_offer": true,"rating": 4.6,"review_count": 1893,"in_stock": true,"availability": "AvailableForSale","pack_size": "200g","super_department": "Drinks","department": "Coffee","aisle": "Instant Coffee","shelf": "Instant Coffee Granules","dietary_icons": ["Vegetarian"],"nutrition": [{ "name": "Typical Values", "values": ["Per 100g"] },{ "name": "Energy", "values": ["1470kJ/346kcal"] },{ "name": "Fat", "values": ["0.5g"] },{ "name": "Carbohydrate", "values": ["10.0g"] },{ "name": "Protein", "values": ["14.0g"] },{ "name": "Salt", "values": ["0.10g"] }],"ingredients": ["Coffee", "Decaffeinated using a water process"],"allergens": ["May contain: Milk"],"storage": ["Store in a cool, dry place. Reseal after use."],"images": ["https://digitalcontent.api.tesco.com/v2/media/ghs/1.jpg","https://digitalcontent.api.tesco.com/v2/media/ghs/2.jpg"],"metadata": { "scrapedAt": "2026-07-14T10:30:00.000Z" }}
💼 Use Cases & Examples
1. Grocery Price & Clubcard Monitoring
Retail and pricing teams tracking Tesco prices, Clubcard offers, and promotions over time.
Input: Keywords or aisle paths for your product lines Output: Current price, Clubcard/offer price, promotion text, and on-offer flag Use: Detect price drops and Clubcard deals the moment they go live and react faster.
2. Unit-Price & Value Comparison
Comparison sites and analysts benchmarking value across brands and pack sizes.
Input: Keywords or aisle paths for a category (e.g. coffee, washing powder)
Output: Unit price (£/kg, £/litre, £/100g), unit of measure, and pack size per product
Use: Rank products by true value-for-money regardless of pack size.
3. Product & Assortment Research
Category managers mapping what Tesco carries in a niche.
Input: Aisle/browse paths or URLs, overview mode Output: Full product lists with id, brand, price, rating, and taxonomy (super-department → shelf) Use: Understand range breadth, brand mix, and price distribution at a glance.
4. Nutrition & Allergen Data Extraction
App, feed, and health-tech teams building nutrition and allergen databases.
Input: Product URLs or keywords, detail mode Output: Full nutrition tables, ingredients, allergens, storage, and pack size Use: Populate nutrition apps, meal planners, and food databases with accurate label data.
5. Dietary Catalog Building
Teams building Vegan, gluten-free, or organic product catalogs.
Input: Keywords or aisle paths with dietary filters (Vegan, No gluten, Organic, Vegetarian, Halal, Kosher) Output: Filtered product lists with dietary icons, ingredients, and allergens Use: Build focused specialty-diet catalogs and product feeds without manual curation.
6. Stock & Availability Checks
Resellers, meal-kit, and delivery teams monitoring what's available.
Input: Keywords or URLs for the products you source Output: In-stock status and availability for every product Use: Only list what's actually available and avoid disappointing customers.
🔗 Integration Examples
JavaScript/Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('sian.agency/tesco-product-scraper').call({queries: ['coffee'],scrapeMode: 'detail',maxResults: 100});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0]);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')run = client.actor('sian.agency/tesco-product-scraper').call(run_input={'queries': ['coffee'], 'scrapeMode': 'detail'})for item in client.dataset(run['defaultDatasetId']).iterate_items():print(item)
cURL
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~tesco-product-scraper/runs?token=YOUR_TOKEN' \-H 'Content-Type: application/json' \-d '{"queries": ["coffee"], "scrapeMode": "detail"}'
Automation Workflows (N8N / Zapier / Make)
- Trigger: Schedule or webhook
- HTTP Request: Call the actor API
- Process: Handle the JSON product results
- Action: Save to a database, update a pricing sheet, or send an alert
📊 Performance & Pricing
FREE Tier (Try It Now)
- Up to 25 products per run — full feature access, same data quality
- No credit card required
- Perfect for testing keywords, aisles, and detail mode
PAID Tier (Production Ready)
- Unlimited products per run
- Faster, at-scale extraction with no caps
- Pay-per-result: you're only charged for products that are successfully extracted
💰 Fair, transparent pricing — pay for the products you get, nothing more.
❓ Frequently Asked Questions
Q: How many products can I scrape? A: FREE tier: up to 25 products per run. PAID tier: unlimited.
Q: Do I need a Tesco account or API key? A: No. There's nothing to sign up for or configure — just enter keywords, aisle paths, or URLs and run.
Q: What's the difference between Overview and Detail mode? A: Overview is the fast path — search and aisle data like product id, title, price, unit price, Clubcard price, promotion text, rating, and availability. Detail enriches each product with the full nutrition table, ingredients, allergens, storage instructions, pack size, brand, manufacturer, dietary icons, and complete image gallery.
Q: Do you capture Clubcard prices and unit prices? A: Yes — every product includes the Clubcard/offer price, promotion text, and the unit price (£/kg, £/litre, £/100g) alongside the standard price.
Q: Can I filter and sort results? A: Yes — sort by Relevance, Price low→high, or Price high→low, and filter by brand, min/max price, on-offer, new products, and dietary (Vegan, No gluten, Organic, Vegetarian, Halal, Kosher).
Q: What output formats are available? A: JSON, CSV, and Excel — export directly from the Apify dataset.
Q: Which region and currency does it cover? A: The UK storefront (tesco.com/groceries), with prices in GBP (£).
Q: Is this legal? A: Yes — the actor accesses only publicly available data. See the legal section below.
🐛 Troubleshooting
No results returned
- Check keyword spelling and try broader terms (e.g.
coffeeinstead of an exact product) - Remove or widen filters (brand, min/max price, on-offer, dietary)
- Verify any Tesco URLs open correctly in a browser
Nutrition, ingredients, or allergens are missing
- Switch
scrapeModetodetail— full nutrition tables, ingredients, allergens, and galleries are only extracted in detail mode
Fewer products than expected
- FREE tier is capped at 25 products per run — upgrade to PAID for unlimited results
- Some aisles or filtered searches simply contain fewer products
Prices look different from what I expect
- Results reflect the UK storefront (tesco.com/groceries) in GBP; Clubcard prices require the promotion to be live, and prices may differ from in-store
⚖️ Is it legal to scrape data?
Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what is publicly available. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.
However, you should be aware that your results could contain personal data (for example, reviewer names). Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.
You can also read Apify's blog post on the legality of web scraping.
Trademark & affiliation disclaimer: SIÁN Agency is an independent provider and is not affiliated with, endorsed by, or sponsored by Tesco. "Tesco", "Clubcard" and related names, marks, and logos are trademarks of their respective owner. This actor is not an official Tesco product or service and accesses only publicly available data.
🤝 Support
Join our active support community
- For issues or questions, open an issue in the actor's repository
- Check the SIÁN Agency Store for more automation tools
- ✉️ apify@sian-agency.online
Built by SIÁN Agency | More Tools