Morrisons UK Grocery Scraper
Pricing
from $3.00 / 1,000 product results
Go to Apify Store
Morrisons UK Grocery Scraper
Scrapes product listings from groceries.morrisons.com — 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
Maintained by CommunityActor stats
0
Bookmarked
20
Total users
9
Monthly active users
3.7 hours
Issues response
11 days ago
Last modified
Categories
Share
Scrape product listings from groceries.morrisons.com 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
- Results are written to the default dataset
- Unit pricing with normalised measures (per kg, per litre, per item)
- Brand detection including Morrisons own-brand labels (Morrisons, The Best, Savers)
- Promotional offer detection with original and current price
- Product weight/size from dedicated size elements
- 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 "morrisons" |
query | string | The search query that produced this result |
name | string | Product name |
brand | string | Brand name (e.g. "Morrisons", "Heinz") |
productId | string | Morrisons product ID |
price | number | Current price in GBP |
originalPrice | number/null | Original price when discounted |
unitPrice | number | Price per unit (e.g. per kg, per litre) |
unitPriceMeasure | string | Unit measure (e.g. "per kg", "per litre") |
unitSize | string | Product weight/size (e.g. "800g", "6 x 415g") |
onOffer | boolean | Whether the product has a promotional offer |
offerDescription | string | Offer details (e.g. "Now £4.50, Was £5.25") |
imageUrl | string | Product image URL |
productUrl | string | Direct link to product page on groceries.morrisons.com |
categoryPath | string[]/null | Morrisons category breadcrumb |
rating | number/null | Product rating when present |
ratingCount | number/null | Number of ratings when present |
available | boolean | Whether the product is available |
attributes | string[] | Product badges/attributes |
scrapedAt | string | ISO 8601 timestamp |
Example output
{"store": "morrisons","query": "beans","name": "Heinz Baked Beans in a Rich Tomato Sauce 6 x 415g","brand": "Heinz","productId": "107311159","price": 4.50,"originalPrice": 5.25,"unitPrice": 1.81,"unitPriceMeasure": "per kg","unitSize": "6 x 415g","onOffer": true,"offerDescription": "Now £4.50, Was £5.25","imageUrl": "https://groceries.morrisons.com/images-v3/.../300x300.jpg","productUrl": "https://groceries.morrisons.com/products/heinz-baked-beans-in-a-rich-tomato-sauce-6-x-415g/107311159","categoryPath": ["Food Cupboard", "Tins, Cans & Packets", "Baked Beans"],"rating": 4.2,"ratingCount": 123,"available": true,"attributes": ["Suitable for vegetarians"],"scrapedAt": "2026-03-28T12:00:00.000Z"}
Use cases
- Price monitoring — track Morrisons prices over time and detect price drops
- Basket comparison — compare grocery costs across UK supermarkets
- Market research — analyse competitive pricing and product ranges
- Deal alerts — build notifications for promotional offers
- Shopping apps — power product search and comparison features
Notes
- Search results may include sponsored products at the top; these are filtered from output.
- No bot detection or login required for search pages