Morrisons UK Grocery Scraper avatar

Morrisons UK Grocery Scraper

Pricing

from $2.50 / 1,000 results

Go to Apify Store
Morrisons UK Grocery Scraper

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

Cian Hanley

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

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):

FieldDescription
skuMorrisons retailer product ID (stable identifier)
nameProduct name
urlCanonical product-page URL
brandBrand (e.g. Morrisons, Cravendale, Arla)
priceCurrent price in GBP (£)
availableWhether the product is in stock
pack_sizePack size description (e.g. 2.272L, 6 x 1L)
unit_pricePrice per unit — amount + basis (e.g. £0.726 "per litre")
category_pathFull category breadcrumb
promotions / promo_priceActive offers and the "now" price on deals
ratingAverage rating + review count
image_url / imagesPrimary image, plus all product images
image_resolutionsEvery image size available (e.g. 100x1001280x1280)
product_idInternal 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 mode to offers for the site-wide Morrisons promotions feed: every product currently on offer, with was/now prices.

How to scrape Morrisons – step by step

  1. Click Try for free (or add the actor to your Apify account).
  2. 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.
  3. (Optional) tick Enrich with product detail for nutrition/allergens/ingredients, Fetch customer reviews, Fetch related products, or Monitor price changes.
  4. (Optional) set Max items; choose your proxy (Apify datacenter works by default).
  5. Click Start, then download results as JSON, CSV, Excel or via the API.

Input

FieldTypeDefaultDescription
modestringsearchsearch (terms/categories) or offers (all promotions)
searchTermsstring[]["milk","bread"]Terms to search; all matching products collected
categoryUrlsstring[]Morrisons category page URLs to crawl in full
offerCategoriesstring[]Offers mode: restrict the feed to named categories
enrichProductsbooleanfalseAdd nutrition, allergens, ingredients, storage & description
fetchReviewsbooleanfalseAdd customer reviews (rating histogram + up to 25 newest)
fetchRelatedbooleanfalseAdd similar/related product IDs
monitorPricesbooleanfalseEmit a price-change record when a price moves vs the previous run
maxItemsinteger0 (unlimited)Stop after this many unique products
proxyConfigurationobjectApify datacenterProxy 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 proxyConfiguration to Residential when you turn it on. (Note: Morrisons does not provide EAN/GTIN barcodes, so those are not available.)

  • Fetch customer reviews adds a reviews object: 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.