Extract M&S product, price and stock data at SKU level

Marks & Spencer Scraper
Solutions

How we deliver it

We take a scope - a set of shelves, a brand, a category tree, or the full UK product sitemap set - and build the crawler around it. Output goes out as CSV, JSON, XLSX or an API, on the schedule you set.

Two M&S rules shape the build. Listing rows are colourways, not products, so shelf totals overstate the range unless you deduplicate on productExternalId. And listings page in fixed blocks of 48 through ?page=N, with a request past the last page answering 307 back to the unpaginated listing URL, which is what a crawler should read as the end of the shelf.

We run inside the site's published robots rules and at a rate that leaves the storefront unaffected.

Fields we extract from a Marks & Spencer product record

An M&S page ships a server-rendered Next.js payload alongside a schema.org Product block. The payload is the deeper of the two, so we read it and reconcile against the markup.

  • Identifiers - productExternalId, the eight-digit productId in the URL, strokeId in both its compact and slashed forms, departmentId, and the per-SKU upc and mfPartnumber.
  • Colours - each colourway is a ProductVariant with its own id, colour in capitals such as "MEDIUM INDIGO", exactColourForBeauty in title case, and a colourSwatchAssetId.
  • Sizes - primarySize and secondarySize under the labels the page declares, which on jeans read primarySizeLabel "Waist" and secondarySizeLabel "Inside Leg", with secondary values "Short/Petite", "Regular" and "Long".
  • Stock - inventory.quantity, quantityOnHand and quantityAdvised on every SKU, plus stockLevelIndicator on listing cards.
  • Price - currentPrice, previousPrice, currencyPrefix, unitPrice and offerText, which reads "Special Offer" on a marked-down line.
  • Sparks - sparksOffers on the card and productLoyaltyPromotion on the page, each carrying loyaltyPromoCode, promoName, shortDesc and the full terms in longDesc.
  • Copy and care - masterProductDescription, masterAspirationalText, compositionList, productContains and fit, with care instructions as coded strings such as PDP-CC_WASH40 and PDP-CC_DONOTTUMBLEDRY.
  • Reviews - averageOverallRating, totalReviewCount, recommendedCount, ratingDistribution, and the secondary axes M&S scores clothing on: TrueToSize, TrueToSizeClothingLength, Value, Material and Style.
  • Images - assetCrossReferences typed MAIN, ALTERNATIVE and CUT_OUT, served from assets.digitalcontent.marksandspencer.app, with the asset id carrying the stroke id and a two-letter colour code.
  • Fulfilment - deliveryInformationPanel keys such as DEL-GMHOME and DEL-FTO, leadTime on furniture lines, and the service names "Next-day Click & Collect", "Store Collection" and "Nominated Day Delivery".

Fields we extract from a Marks & Spencer product record
What Marks & Spencer scraping shows between runs

What Marks & Spencer scraping shows between runs

A single crawl of marksandspencer.com dates quickly, and the sitemaps will not tell you what moved. Every entry in the UK product sitemaps carried the same lastmod as the day we fetched them, so the file stamps the crawl rather than the change. Diffing snapshots is the only reliable way to see it.

Stock moves fastest. inventory.quantity is held per size within per colour, so a jeans line with two colours and a waist by inside-leg grid holds dozens of numbers that move independently of each other.

Price moves next. previousPrice sits at 0 on a full-price line and fills in when a cut lands, while offerText flips to "Special Offer". Sparks promotion codes attach to and detach from a product without the shelf price changing at all.

Range rotation is slower and more consequential. Codes retire, and a retired code answers 404 rather than redirecting, so a snapshot history is the only record that the line existed. The payload also carries an isOffSale flag before a page goes.

Ireland runs on its own clock. The /ie/ storefront serves the same product code and the same SKU ids in euro, so both markets can be captured in one run and compared line by line.

Marks & Spencer as a data source

Marks & Spencer sells Clothing & Home, Beauty, Furniture, Flowers, Hampers, Gift Cards and Food to Order on one UK storefront. The weekly grocery range is not there. M&S Food reaches shoppers online through the Ocado joint venture, so marksandspencer.com holds celebration cakes, party platters, wine and hampers rather than a supermarket shop.

A product URL is a slug, then /p/, then a two-letter type code, the letter p, and eight digits: /high-waisted-frayed-kickflare-jeans/p/clp22135670. The site splits that string itself. Its page payload names productTypeCode "cl" and productId "22135670". Clothing is cl, home and beauty hb, furniture ft, food to order fd, flowers fl, hampers hp, cakes ck and gift cards gc. The same eight digits return as the schema.org sku "P22135670" and as productExternalId in the payload. Every product id in every UK product sitemap is eight digits long.

Next to it sits the buying code M&S calls the strokeId. Listing cards print it twice inside one field, compact and slashed, as "T176006M,T17/6006M". Products also carry a departmentId, G5 for general merchandise and F5 for food, flowers and hampers.

Third-party labels sell on the same URLs. The Brand filter separates "M&S Brands" from "Other Brands" before it lists any name, and a Brands at M&S line is flagged by a category with brandSalesCategory set to true.

Get a Quote
dev_w
25

Developers

customers
500+

Customers worldwide

pages
1 500 000 000+

Pages extracted

stime
15000+

Hours saved for our clients

Plans

Airplane

€199 / one-time

setup fee - included

Data limits100,000
Frequencyone-time
Run timeup to 5 days
Data storing7 days

Helicopter

€169 / mo

setup fee €499

Data limits250,000
Frequencymonthly
Run timeup to 5 days
Data storing14 days

Glasses

€229 / mo

setup fee €499

Data limits1,000,000
Frequencyweekly
Run timeup to 5 days
Data storing30 days

DNA

€549 / mo

setup fee €799

Data limits3,000,000
Frequency3 times daily
Run timesame day
Data storing90 days

Why buyers scrape Marks & Spencer data

UK apparel teams use M&S as a mid-market price anchor. A listing card carries listPrice and previousPrice together, so one pass over a shelf returns both the live price and the line it was cut from, without waiting for a second snapshot to establish a baseline.

Brand owners trading through Brands at M&S watch their own pages. Because the Brand filter separates "M&S Brands" from "Other Brands" before naming labels, a single shelf shows how much room third-party stock takes against M&S Collection, Autograph and Per Una in the same category.

Merchandisers use the size grid. inventory.quantity sits on each size within each colour, so a run shows which sizes have gone and which colourway is still holding stock, which is the practical read on how a line is selling.

Review teams use the fit axes. M&S scores clothing on TrueToSize and TrueToSizeClothingLength separately from the headline rating, so returns risk is legible as a number rather than only as free text.

Buying teams track rotation. Shelves such as /l/offers/price-drop hold the marked-down set and turn over through the season.

Related Case Studies

The Entire Iherb Supplements Catalog, Captured End-to-End in 3 Days

The Entire Iherb Supplements Catalog, Captured End-to-End in 3 Days

Scraping supplement products from iHerb.com with full details, including descriptions and packaging variations.

Learn More about The Entire Iherb Supplements Catalog, Captured End-to-End in 3 Days
The Lowest Allegro Prices from 150K Eans Collected

The Lowest Allegro Prices from 150K Eans Collected

Daily scraping of lowest prices for 150K products on Allegro.pl to support marketplace pricing and margin optimization.

Learn More about The Lowest Allegro Prices from 150K Eans Collected
Ralph Lauren Monitoring on Amazon, 8 Markets Scanned Into One Clean Dataset

Ralph Lauren Monitoring on Amazon, 8 Markets Scanned Into One Clean Dataset

Regular monitoring of Ralph Lauren clothing, footwear, and accessories sold across Amazon subdomains: AE, DE, ES, FR, IT, NL, PL, UK.

Learn More about Ralph Lauren Monitoring on Amazon, 8 Markets Scanned Into One Clean Dataset
Our Blog

Reads Our Latest News & Blog

Learn how to use web scraping to solve data problems for your organization

6 E-Commerce Sites Like eBay to Scrape in 2026

6 E-Commerce Sites Like eBay to Scrape in 2026

If you sell online, run a marketplace, or advise e-commerce clients, you already know why eBay matters: it’s one of the few places where big retailers compete side by side with thousands of small merchants and private sellers.

Top 8 E-commerce Websites to Scrape in 2026 (From Amazon to 1688)

Top 8 E-commerce Websites to Scrape in 2026 (From Amazon to 1688)

E-commerce teams do not just need “some” competitor data anymore. They need a continuous stream of real prices, discounts, stock levels, reviews, and seller behavior from the platforms that actually shape their markets.

How to Scrape Amazon Data: Benefits, Challenges & Best Practices

How to Scrape Amazon Data: Benefits, Challenges & Best Practices

Amazon provides valuable information gathered in one place: products, reviews, ratings, exclusive offers, news, etc. So scraping data from Amazon will help solve the problems of the time-consuming process of extracting data from e-commerce.

scrapeit logo

About ScrapeIt

ScrapeIt is a managed scraping agency. We build the crawler, run it, monitor it, and repair it when M&S changes its markup, which happens without notice. You receive data on a schedule, not a codebase to maintain.

Scope, cadence and the field list are agreed before the first run, and a sample extract goes out before the schedule starts.

We are not affiliated with Marks & Spencer. We collect publicly available pages, follow the site's robots rules, and keep request volumes low.

FAQ

Does M&S have a product API, or does everything need scraping?

M&S does not offer a public product API. Its API access sits behind the Rithum platform that runs the marketplace and drop-ship programmes and is provisioned to onboarded suppliers. The M&S Bank APIs listed in Open Banking directories are a separate regulated service and carry no retail product data. The nine UK product sitemaps are the reliable spine. On a crawl at the time of writing they listed a little over 28,000 product URLs across clothing, home, beauty, furniture, gifts, flowers, hampers and food to order. Shelves M&S blocks in robots.txt, its own new-in listings among them, are not in those files, so we either reach those products through category pages that are permitted or leave them out on request.

Do you get M&S Food and grocery prices?

Not the weekly grocery range. That sells through Ocado under the M&S joint venture, not on marksandspencer.com. What the site carries is Food to Order - celebration cakes, party platters, sandwich selections, wine and hampers - on the same page structure as clothing, with productTypeCode "fd", a populated servings field, and productContains listing what is inside a platter item by item.

Can you get stock at size and colour level?

Yes. Each colour is a variant, each size beneath it is a SKU, and each SKU carries an inventory block with quantity, quantityOnHand and quantityAdvised. On a jeans line that means a number for every waist and inside-leg pairing in every colour. It is stock for the online range, not per-store availability: the anonymous page exposes delivery and collection services such as "Next-day Click & Collect" but no store-level count.

Do M&S Sparks member prices show up in the data?

Not as a member price. An anonymous page carries the promotion catalogue attached to the product: sparksOffers as bare loyaltyPromotionCode values on listing cards, and productLoyaltyPromotion on the page with promoName, shortDesc and full terms in longDesc. Sparks is a personalised scheme where offers are activated before shopping, so the value a given member sees sits behind sign-in and we do not collect it.

Does the data cover Brands at M&S and the Irish site?

Both. Third-party labels such as Levi's, White Stuff and Skechers sit on the same /p/ URLs with the same identifier format; the marker is a category with brandSalesCategory set to true, plus the label name in the attributes block. The Irish storefront at /ie/ reuses the identical product code and SKU ids in euro. The wider international storefronts do not: a UK code returns 404 under /us/, /au/ and /de/, and those sites publish category sitemaps with no product sitemaps.

How does it Work?

Step 1 - Make a Request

You share your needs, expectations, and desired timeframe. We’ll suggest the best solution based on your request and budget.

Step 2 - Configuring Custom Web Crawlers

Our specialists configure the crawlers and extract a sample dataset for your review before proceeding with the full-scale extraction.

Step 3 - Collect and Deliver

Once you approve the sample, we launch the project and start full data collection. We gather, filter, and structure the data for easy use, delivering it on time in your preferred format.

Step 4 - Maintain and Support

Our team manages ongoing processes, monitors website changes, and supports all data extraction cycles. We can also help integrate data into your systems or create dashboards to simplify analysis.

Request a Quote

Tell us more about you and your project information.
Which sites, which fields, how often. A couple of lines is enough.

We reply within 1 business day. No obligation.

scrapiet

Scrapeit Sp. z o.o.
10/208 Legionowa str., 15-099, Bialystok, Poland
NIP: 5423457175
REGON: 523384582