Sainsbury's Data Scraping - Shelf Prices, Nectar Prices, Range

Sainsbury's Scraper
Solutions

Delivery and scheduling

We run the crawler, watch it, and repair it when the site moves. You receive files, not a scraper to maintain.

  • Formats - CSV, JSON, XLSX, or an API endpoint your systems poll.
  • Cadence - daily for price and promotion, weekly or monthly for full range and pack copy.
  • Delivery - S3, SFTP, Google Sheets, a database you nominate, or email.
  • Scope - one shelf, a department, a competitor's own-label tier, or a fixed watchlist of URLs.

Change detection is part of the job. Field mappings are checked on every run, and a shift in the page structure becomes a ticket for us rather than a broken column for you.

Fields we extract from Sainsbury's

A standard grocery extract lines up the two prices that decide a UK basket, plus the fields that make them comparable.

  • Identity - product name, brand, own-label tier such as Taste the Difference, So Organic or Stamford Street, the product URL and its slug, plus the internal product id and barcode where the page exposes them.
  • Shelf price - the standard price, and the earlier price where the card shows a "Was" figure.
  • Nectar Price - the loyalty price rendered as "with Nectar" beside the standard price, and the date the offer page says it runs until.
  • Price per unit - the "/ unit" figure, normalised to price per kg, per litre or per item so a four pack and a twelve pack sit on one axis.
  • Pack size and measure - parsed from the product title and from the slug, since both usually carry it.
  • Promotion mechanic - taken from the offers hub slugs: half-price, better-than-half-price, save-a-third, save-25-percent, one-pound, two-pound, stock-up and nectar-prices.
  • Meal deal membership - each meal deal has its own page under /gol-ui/meal-deal/ with a numeric id, so the eligible main, snack and drink lists can be captured as a set rather than as loose products.
  • Badges - the contextual "Nectar price" and "Sponsored" flags, and promotional badges such as "clearance" and "new".
  • Placement - department, aisle, shelf, grid position and page number, so ranking can be rebuilt afterwards.
  • Availability - whether the line was orderable at the moment of the run.

Every row is stamped with the run timestamp and the URL it came from. Without those two columns a price history cannot be audited.

Fields we extract from Sainsbury's
Attributes beyond price

Attributes beyond price

Grocery buyers rarely stop at price. Sainsbury's product pages reproduce the pack copy, and that is where category and compliance work happens.

  • Nutrition - the per 100g table and the per serving column, with reference intake values.
  • Ingredients - the full declaration, with allergens emphasised inside the list.
  • Allergy advice - the separate statement printed alongside the ingredients.
  • Country of Origin - given as produced in and packed in, which are often two different countries on one label.
  • Dietary information - suitability flags such as vegetarian and vegan; the site also runs a dietary filters hub.
  • Storage, preparation and packaging - shelf life wording and recycling copy.
  • Ratings and reviews - the score and the review count shown on the card.

These fields answer questions price alone cannot. Which lines on a shelf carry a given allergen. How a supplier's protein per 100g compares across its competitors. How much of a category is sourced from a single country, and what that means if origin rules change.

How sainsburys.co.uk is put together

Sainsbury's runs its grocery business on www.sainsburys.co.uk under the /gol-ui/ path. The older groceries.sainsburys.co.uk hostname no longer resolves, so a crawler still pointed at it fails at DNS rather than at the page.

A product sits at /gol-ui/product/ followed by a slug. Some products carry an extra category segment before the slug, as in /gol-ui/product/--desserts--/. There is no numeric product code in the address. The slug is the key, and it normally carries the pack size, so a rename or a pack change moves the product to a new URL. Accented characters are percent-encoded inside the slug.

Browse pages follow the department, aisle and shelf taxonomy and end in a category id written as c: plus digits, for example /gol-ui/groceries/baby-and-toddler/baby-meals/pouches/c:1018688. Search is a path segment rather than a query string: /gol-ui/SearchResults/ plus the encoded term.

Listing pages still accept the WebSphere Commerce parameters the platform grew up on. pageSize and beginIndex drive offset pagination, orderBy takes pipe-joined values such as PRICE_ASC and TOP_SELLERS, and facet takes numeric ids. Captured URLs also carry catalogId, langId=44 and storeId=10151. Filters can sit in the path too, as brand:taste-the-difference or facet:Shop Fish Multibuy.

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 a Sainsbury's feed earns its keep

UK grocery carries a two-tier price. The standard shelf price and the Nectar Price sit on the same card, and a shopper with a linked Nectar card is charged the lower one. A dataset holding only one of those numbers describes a market that does not exist. Storing both, with the stated end date, is what lets you see whether a rival cut the real price or lifted the reference price ahead of a loyalty window.

That question is not academic. The CMA examined loyalty pricing in 2024, and the Price Marking Order amendments that took effect in April 2026 tightened how unit prices and scheme prices must be shown. Both make a defensible price history worth keeping.

Price per unit is the second axis. Ranges move by pack size, and a headline cut sometimes arrives inside a smaller pack. Normalising to price per kg or per litre catches that quietly.

Then there is range. Sainsbury's rotates seasonal lines through hub pages such as the BBQ and Christmas features, and its value tier now sits under the Stamford Street name. Weekly snapshots show which of your lines were delisted, which competitor lines appeared, and where a shelf has a gap.

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

Working with ScrapeIt

ScrapeIt is a managed web scraping agency. We scope the fields with you, build the crawler, run it on a schedule, and hand over clean data in the format your team already uses. There is no library to install and no proxy pool to babysit.

We have no connection to Sainsbury's, and we collect only what is publicly visible without an account. Send us a shelf or a list of URLs and we will confirm which fields are reachable before any work starts.

FAQ

Can you capture the Nectar Price as well as the standard price?

Yes. Both prices are rendered on the same product card, the standard price and the loyalty price shown as "with Nectar", so one row can hold both figures and the gap between them. Where the offer states a date it runs until, we capture that as well. Your Nectar Prices are a different thing: those are up to ten personalised offers a week, visible only inside a logged-in account, and we do not collect them.

Is price per unit included, and is it comparable across pack sizes?

Yes. Sainsbury's shows a per unit figure on the card, written as a price followed by "/ unit". We keep the string as displayed and add a normalised column in price per kg, per litre or per item, so packs of different sizes line up. Pack size is parsed from the product title and from the URL slug, which normally both carry it. That pairing is what exposes a price cut delivered through a smaller pack.

Does availability depend on postcode or on the local store?

In part. Sainsbury's states that it delivers your order from a store local to you and allocates that store by postcode, and its help pages note that the availability of Nectar Prices may vary by store. Slot booking, trolley and account paths are disallowed in robots.txt and sit behind a login, so we stay off them. Catalogue, pricing and promotion data is collected from the public browse and product pages.

Do you cover Argos, Habitat, Tu clothing and Nectar too?

They are separate crawls with separate catalogues. Argos, Habitat and Nectar sit on their own domains. Tu clothing runs on tuclothing.sainsburys.co.uk with its own sitemap index and its own identifier format, where product URLs are /product/tuc followed by digits. Habitat is the exception that also appears inside the grocery site under homeware-and-outdoor. Sainsbury's own help pages state that Nectar Prices are not available at Argos, Habitat or Tu clothing, so loyalty pricing does not carry across the group.

Is there a Sainsbury's API, or does the data need extracting?

The grocery data sits behind an internal endpoint at /groceries-api/gol-services/product, and a request to it from outside returns HTTP 403 from the edge, as does a plain request to the site itself. The product page is a client-rendered React application, so the first response holds no product data at all. Extracting it therefore needs a real rendering environment, a conservative request rate and steady monitoring, which is the work we take on. We keep volumes low, respect robots.txt, and stay off the account, trolley and slot paths it disallows. What you receive is the clean result: prices, Nectar Prices, price per unit and range data as CSV, JSON, XLSX or an API endpoint of ours.

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