Sainsbury's UK Grocery Scraper
Pricing
from $3.00 / 1,000 product results
Go to Apify Store
Sainsbury's UK Grocery Scraper
Scrapes product listings from sainsburys.co.uk — returns names, prices, unit prices, brands, and sizes for any search query.
Pricing
from $3.00 / 1,000 product results
Rating
0.0
(0)
Developer
Siddhant Mehta
Maintained by Community
Actor stats
0
Bookmarked
2
Total users
0
Monthly active users
2 days ago
Last modified
Categories
Share
Scrape product listings from sainsburys.co.uk by search query. Returns structured data for every product found — including name, brand, price, unit price, size, offer status, and direct product URL.
Features
- Search for any product by keyword (e.g. "beans", "semi skimmed milk", "pasta")
- Multiple queries in a single run
- Extracts prices with multiple fallback strategies for reliability
- Unit pricing with normalised measures (per kg, per litre, etc.)
- Brand detection including Sainsbury's own-brand labels (by Sainsbury's, Taste the Difference)
- Nectar offer and promotional deal detection
- Configurable result limit per query
Input
| Field | Type | Description | Default |
|---|---|---|---|
queries | string[] | List of search queries | required |
maxResultsPerQuery | integer | Max products per query (1-100) | 20 |
Example input
{"queries": ["baked beans", "whole milk", "sourdough"],"maxResultsPerQuery": 10}
Output
Each result in the dataset contains:
| Field | Type | Description |
|---|---|---|
store | string | Always "sainsburys" |
query | string | The search query that produced this result |
name | string | Product name |
brand | string | Brand name (e.g. "Sainsbury's", "Heinz") |
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. "400g", "1 litre") |
onOffer | boolean | Whether the product has a Nectar or promotional offer |
offerDescription | string | Offer details (e.g. Nectar price text) |
imageUrl | string | Product image URL |
productUrl | string | Direct link to product page on sainsburys.co.uk |
scrapedAt | string | ISO 8601 timestamp |
Example output
{"store": "sainsburys","query": "beans","name": "Sainsbury's Baked Beans 4x415g","brand": "Sainsbury's","price": 1.65,"unitPrice": 0.99,"unitPriceMeasure": "per kg","unitSize": "4x415g","onOffer": false,"offerDescription": null,"imageUrl": "https://assets.sainsburys-groceries.co.uk/gol/...","productUrl": "https://www.sainsburys.co.uk/gol-ui/product/sainsburys-baked-beans-4x415g","scrapedAt": "2026-03-28T10:00:00.000Z"}
Use cases
- Price monitoring — track Sainsbury's prices over time and detect drops
- Basket comparison — compare grocery costs across UK supermarkets
- Market research — analyse competitive pricing and product ranges
- Deal alerts — build notifications for Nectar deals and promotions
- Shopping apps — power product search and comparison features
Notes
- Sainsbury's uses
data-testidattributes and.pt__costclass selectors — these may change when the site redeploys - The scraper uses multiple fallback strategies for price extraction to handle inconsistent DOM rendering
- Brand is inferred from the product name; own-brand detection covers "by Sainsbury's" and "Taste the Difference" ranges