Morrisons UK Grocery Scraper
Pricing
from $2.50 / 1,000 results
Morrisons UK Grocery Scraper
Scrape Morrisons UK groceries by search term: export prices, availability, unit prices, pack sizes, promotions, ratings, categories and images as JSON, CSV or Excel. Fast JSON-API scraper for price monitoring, competitor intelligence and product data.
Pricing
from $2.50 / 1,000 results
Rating
0.0
(0)
Developer
Cian Hanley
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
Morrisons Scraper – UK Grocery Prices, Offers & Product Data
Scrape Morrisons groceries at scale. This Morrisons scraper turns groceries.morrisons.com into clean, structured data — prices, offers, unit prices, pack sizes, ratings, categories, product URLs and every product image — for any search term or category. It's fast, accurate, and export-ready, with no setup.
It's more than a price scraper. Turn on enrichment for a full product-intelligence feed: nutrition (per 100 g/ml and per serving), allergens, ingredients, storage and description — plus optional customer reviews and related products. Track prices over time with built-in price-change monitoring, or pull the site-wide offers/promotions feed in one run.
Use it for grocery price monitoring, competitor price intelligence, diet & allergen apps, FMCG/CPG market research, grocery-inflation studies, deal/cashback feeds, or to power a price-comparison app.
What can the Morrisons scraper extract?
Every product comes back as one flat JSON record. Core fields (always included):
| Field | Description |
|---|---|
sku | Morrisons retailer product ID (stable identifier) |
name | Product name |
url | Canonical product-page URL |
brand | Brand (e.g. Morrisons, Cravendale, Arla) |
price | Current price in GBP (£) |
available | Whether the product is in stock |
pack_size | Pack size description (e.g. 2.272L, 6 x 1L) |
unit_price | Price per unit — amount + basis (e.g. £0.726 "per litre") |
category_path | Full category breadcrumb |
promotions / promo_price | Active offers and the "now" price on deals |
rating | Average rating + review count |
image_url / images | Primary image, plus all product images |
image_resolutions | Every image size available (e.g. 100x100 … 1280x1280) |
product_id | Internal product UUID |
Optional add-ons: enrichment (enrichProducts) adds a details object with Morrisons
nutrition, allergens, ingredients, storage and description; reviews (fetchReviews) and
related products (fetchRelated) add their own fields. See the sections below.
Run modes — search, categories & offers
- Search (default) — give one or more search terms and/or category URLs; the scraper collects every matching product.
- Offers — set
modetooffersfor the site-wide Morrisons promotions feed: every product currently on offer, with was/now prices.
How to scrape Morrisons – step by step
- Click Try for free (or add the actor to your Apify account).
- Enter search terms (e.g.
milk,bread) and/or paste category URLs from the Morrisons site — or switch Mode to Offers for all current promotions. - (Optional) tick Enrich with product detail for nutrition/allergens/ingredients, Fetch customer reviews, Fetch related products, or Monitor price changes.
- (Optional) set Max items; choose your proxy (Apify datacenter works by default).
- Click Start, then download results as JSON, CSV, Excel or via the API.
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode | string | search | search (terms/categories) or offers (all promotions) |
searchTerms | string[] | ["milk","bread"] | Terms to search; all matching products collected |
categoryUrls | string[] | — | Morrisons category page URLs to crawl in full |
offerCategories | string[] | — | Offers mode: restrict the feed to named categories |
enrichProducts | boolean | false | Add nutrition, allergens, ingredients, storage & description |
fetchReviews | boolean | false | Add customer reviews (rating histogram + up to 25 newest) |
fetchRelated | boolean | false | Add similar/related product IDs |
monitorPrices | boolean | false | Emit a price-change record when a price moves vs the previous run |
maxItems | integer | 0 (unlimited) | Stop after this many unique products |
proxyConfiguration | object | Apify datacenter | Proxy settings |
{"searchTerms": ["milk", "free range eggs"],"categoryUrls": ["https://groceries.morrisons.com/categories/bakery-cakes/5998e059-ce69-48d4-b0db-2f773459dcdf"],"enrichProducts": true,"fetchReviews": true,"maxItems": 1000,"proxyConfiguration": { "useApifyProxy": true }}
Output example
One row per product, deduplicated by SKU across all your search terms and categories. With
enrichProducts + fetchReviews on, a record looks like this:
{"sku": "113240422","name": "Morrisons British Semi Skimmed Milk 4 Pint","url": "https://groceries.morrisons.com/products/morrisons-british-semi-skimmed-milk-4-pint/113240422","price": "1.65","available": true,"brand": "Morrisons","pack_size": "2.272L","unit_price": { "amount": "0.726", "basis": "per litre" },"category_path": ["Fresh & Chilled", "Milk, Eggs & Butter", "Fresh Milk"],"rating": { "value": "3.2", "count": 20 },"images": ["https://groceries.morrisons.com/images-v3/.../500x500.jpg"],"image_resolutions": ["100x100", "300x300", "500x500", "1280x1280"],"details": {"ingredients": "Semi Skimmed Milk","allergens": ["Milk"],"nutrition_per_100": [{ "name": "Energy", "value": "209kJ/50kcal" },{ "name": "Fat", "value": "1.8", "unit": "g" },{ "name": "Protein", "value": "3.6", "unit": "g" }],"storage": "Keep refrigerated. Use within 3 days of opening."},"reviews": {"count": 17,"rating_histogram": [6, 2, 3, 0, 9],"items": [{ "rating": 5, "headline": "Great milk", "nickname": "Sam","created_date": "2026-05-08T21:47:16Z", "comments": "Always fresh", "is_verified_buyer": true }]}}
Morrisons price monitoring & tracking
Turn on Monitor price changes and schedule the actor as a daily task. Each run compares every product's price to the previous run and emits a price-change record (old price, new price, delta, % change, direction) into the same dataset — so you build a running history of Morrisons price changes automatically. The first run sets a baseline; later runs surface only what moved. Ideal for repricing tools, deal alerts and grocery-inflation tracking.
Nutrition, allergens & ingredients (product enrichment)
Tick Enrich with product detail to add a details object to every product with the
deeper data: nutrition (per 100 g/ml and, where available, per serving), allergens,
ingredients, storage instructions, full description and brand/manufacturer information.
Perfect for diet, allergen and meal-planning apps, and for compliance or nutrition research.
Tip: enrichment works best with the Residential proxy — set
proxyConfigurationto Residential when you turn it on. (Note: Morrisons does not provide EAN/GTIN barcodes, so those are not available.)
Customer reviews & related products
- Fetch customer reviews adds a
reviewsobject: total review count, a 1★–5★ histogram, and up to 25 of the newest reviews (text, rating, author, date, verified-buyer flag). - Fetch related products adds
related_product_ids— the similar/related products Morrisons shows alongside each item, for recommendation and product-graph use-cases.
How much does it cost to scrape Morrisons?
This actor is pay-per-result: you're charged a small amount per product delivered, and nothing for empty searches. Runs are fast and efficient — typically thousands of products in seconds. Optional enrichment and reviews are priced as add-ons (only charged when data is actually returned), so price-only runs stay on the cheapest tier. You also pay Apify's standard platform usage. See the Pricing tab for current rates.
Why this scraper
- Fast & cost-efficient — thousands of products in seconds, billed only for results.
- Product-intelligence, not just prices — nutrition, allergens, ingredients, reviews, related products, offers and price history, all from one actor.
- Complete, accurate records — clean, deduplicated data with no half-filled or duplicate rows.
- Reliable runs — resumable, with a clear summary every run.
- Actively maintained — updated promptly when Morrisons changes their site.
Use cases
- Price comparison & cheapest-basket apps — power a price-comparison site or extension.
- Price monitoring & competitor price intelligence — track Morrisons prices and offers daily.
- Grocery inflation / CPI research — build a price index over time.
- Diet, allergen & meal-planning apps — nutrition, allergens and ingredients at scale.
- FMCG / CPG market research & catalogue building — structured category and brand datasets.
- Deal, promotion & cashback feeds — the site-wide offers feed with was/now prices.
- Reviews & sentiment analysis — customer reviews per product.
Frequently asked questions
Is it legal to scrape Morrisons? You are responsible for using scraped data in line with Morrisons' terms, applicable laws and data-protection rules. This actor collects only public product information — no personal data.
Does Morrisons have a public API? No — Morrisons offers no official developer API, so this actor is the simplest way to get Morrisons product data in a structured, export-ready form.
Can I get Morrisons nutrition, allergens and ingredients? Yes — enable Enrich with product detail. Note that EAN/GTIN barcodes are not available from Morrisons.
Can I scrape Morrisons offers, promotions and deals? Yes — set Mode to Offers for the site-wide promotions feed with was/now prices.
Can I monitor Morrisons price changes? Yes — enable Monitor price changes and schedule the actor; it emits a price-change record whenever a price moves between runs.
Can I scrape Morrisons product reviews? Yes — enable Fetch customer reviews.
Can I scrape a whole Morrisons category? Yes — paste one or more category URLs to collect every product in those categories.
Does it need a proxy? Apify datacenter proxy works for prices, offers, categories, reviews and related products, and is the cheapest default. Product enrichment (nutrition/allergens/ ingredients) needs Residential proxy — switch the proxy to Residential when you enable it.
What output formats are supported? Download as JSON, CSV, Excel, or pull from the Apify API / dataset.
Other UK supermarket scrapers
More UK grocery scrapers (Tesco, Asda, Sainsbury's, Waitrose) are planned — check the author's profile for the latest.
Support
Found a bug or need a field added? Open an issue on the actor's Issues tab. The scraper is actively maintained and updated when Morrisons changes their site.