Waitrose UK Grocery Scraper
Pricing
from $3.00 / 1,000 product results
Go to Apify Store
Waitrose UK Grocery Scraper
Scrapes product listings from waitrose.com — returns names, prices, unit prices, sizes, and product URLs for any search query.
Pricing
from $3.00 / 1,000 product results
Rating
0.0
(0)
Developer
Siddhant
Maintained by CommunityActor stats
0
Bookmarked
45
Total users
10
Monthly active users
13 days
Issues response
13 days ago
Last modified
Categories
Share
Scrape product listings from waitrose.com by search query. Returns structured data for every product found — including name, price, unit price, size, product ID, offer status, and direct product URL.
Features
- Search for any product by keyword (e.g. "beans", "free range eggs", "olive oil")
- Multiple queries in a single run
- Extracts item prices and per-unit pricing (handles both £/unit and pence/unit formats)
- Detects promotions and offer badges
- Captures Waitrose product IDs for direct API lookups
- Normalises size formats (e.g. "2.272litre" becomes "2.272 litre")
- Configurable result limit per query
Input
| Field | Type | Description | Default |
|---|---|---|---|
queries | string[] | Search queries and/or Waitrose product URLs (https://www.waitrose.com/ecom/products/...). A URL returns that exact product, with its barcode in gtin. | required |
maxResultsPerQuery | integer | Max products per query (1–100) | 20 |
Example input
{"queries": ["baked beans", "sourdough bread", "semi skimmed milk"],"maxResultsPerQuery": 10}
Output
Each result in the dataset contains:
| Field | Type | Description |
|---|---|---|
store | string | Always "waitrose" |
query | string | The search query that produced this result |
name | string | Product name |
productId | string | Waitrose product ID (from URL) |
price | number | Current price in GBP |
unitPrice | number | Price per unit (e.g. per kg, per litre) |
unitPriceMeasure | string | Unit measure (e.g. "per kg", "per litre") |
unitSize | string | Product size (e.g. "420 g", "2.272 litre") |
onOffer | boolean | Whether the product is currently on promotion |
offerDescription | string | Offer details if on promotion |
imageUrl | string | Product image URL |
productUrl | string | Direct link to product page on waitrose.com |
scrapedAt | string | ISO 8601 timestamp |
Example output
{"store": "waitrose","query": "beans","name": "Essential Baked Beans in Tomato Sauce","productId": "000-545872-7689","price": 1.90,"unitPrice": 1.13,"unitPriceMeasure": "per kg","unitSize": "420 g","onOffer": false,"offerDescription": null,"imageUrl": "https://ecom-su-static-prod.wtrecom.com/images/products/3/LN_545872_BP_3.jpg","productUrl": "https://www.waitrose.com/ecom/products/essential-baked-beans-in-tomato-sauce/000-545872-7689","scrapedAt": "2026-03-27T23:38:00.000Z"}
Use cases
- Price monitoring — track Waitrose prices over time and detect drops
- Basket comparison — compare grocery costs across UK supermarkets
- Premium vs budget analysis — compare Waitrose own-brand (Essential, No.1, Duchy) against branded products
- Deal alerts — build notifications for promoted products
- Shopping apps — power product search and comparison features
Notes
- Waitrose uses CSS module class names with hashed suffixes (e.g.
productPod___FSa31) — selectors use prefix matching to handle this - No bot detection or login required
- CSS class hashes may change when Waitrose redeploys — if you notice missing data, please open an issue