Sainsbury's Scraper: Prices, Nectar Offers & Products (UK) avatar

Sainsbury's Scraper: Prices, Nectar Offers & Products (UK)

Pricing

from $2.40 / 1,000 products

Go to Apify Store
Sainsbury's Scraper: Prices, Nectar Offers & Products (UK)

Sainsbury's Scraper: Prices, Nectar Offers & Products (UK)

Scrape Sainsbury's UK grocery products by search, category or product URL: price, unit price, Nectar Price, promotions, availability, barcode (EAN), ratings, and optional ingredients and nutrition. Fast JSON from Sainsbury's own API. Pay per product.

Pricing

from $2.40 / 1,000 products

Rating

0.0

(0)

Developer

Zaiq

Zaiq

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

6 days ago

Last modified

Share

Get Sainsbury's UK grocery products as clean data: price, unit price, Nectar Price with its dates, multi-buys and other promotions, availability, category, barcode (EAN), rating and, if you ask for it, ingredients, allergens and nutrition. Search like a shopper, list whole categories and aisles, or check a fixed list of products every day.

The Actor reads the same product API the sainsburys.co.uk website uses, so results arrive as structured data in seconds, without a browser and without logging in.

What it does

  • Search terms: up to 60 products per request, as many pages as you need.
  • Category and aisle pages: paste the page address (it ends in /c: and a number), for example https://www.sainsburys.co.uk/gol-ui/groceries/hot-drinks-soft-drinks-and-water/milk-and-milk-drinks/fresh-milk/c:1019342.
  • Product URLs: Sainsbury's product pages. A page that does not exist comes back as a free row with an error.
  • Prices: the price everybody pays, the unit price (per kg, litre, 100 g, each...), and the Nectar Price and Nectar unit price with start and end dates. Ordinary reductions have the old price in wasPrice.
  • Promotions, classified: Nectar Price, multi-buy, meal deal, price cut. Each with its text, dates and, for multi-buys, the quantity and price.
  • Only products on offer: one switch, applied by Sainsbury's own "Offers & Nectar Prices" filter.
  • Availability (inStock), pack size as written and as a number in grams, millilitres or items, category, rating and number of reviews, labels (New, Featured, Aldi Price Match, Low Everyday Price).
  • Brand: from Sainsbury's own brand list for each result set; product lookups always have it.
  • Details on request: ingredients, the allergens marked in bold in the ingredients (as a list), dietary information, nutrition table, storage, preparation, origin and manufacturer.
  • Sort: relevance, price low to high, price high to low, customer rating (Sainsbury's own sorting).

The output has the same columns as our Tesco, Asda and Morrisons scrapers, so the four can be compared row by row.

Who uses it

  • Brands and suppliers checking their shelf price, promotions and Nectar Prices at Sainsbury's.
  • Retail and pricing analysts tracking price changes, unit prices and promotion depth over time.
  • Deal and comparison sites listing current Nectar Prices and multi-buys.
  • Researchers measuring grocery inflation with real basket prices.
  • Nutrition and allergen apps that need ingredients and nutrition per product.

Example

Test runs on 4 October 2026 through UK home connections:

RunResult
Six searches (milk, bread, coffee, pasta, eggs, bananas), up to 50 products each239 products in 4 seconds; 70 on offer, 66 with a Nectar Price
One search ("chocolate") to 650 products650 products from 11 requests in 21 seconds
The fresh milk aisle96 products in 5 seconds
Offers only: two searches and the fresh milk aisle147 products, all on offer; 138 with a Nectar Price
Eleven pasta products with details11 of 11 with ingredients, allergens and a nutrition table
Three product pages, one of them not on Sainsbury'sthe real products returned; the missing one as a free row

No request was blocked in these runs.

Input

{
"searchTerms": ["milk", "coffee"],
"categoryUrls": [{ "url": "https://www.sainsburys.co.uk/gol-ui/groceries/hot-drinks-soft-drinks-and-water/milk-and-milk-drinks/fresh-milk/c:1019342" }],
"productUrls": [{ "url": "https://www.sainsburys.co.uk/gol-ui/product/oatly-oat-drink-barista-edition-long-life-1l" }],
"maxItems": 500,
"maxItemsPerSource": 200,
"offersOnly": false,
"sort": "relevance",
"includeDetails": false
}
FieldWhat it does
searchTermsWords to search for, as you would type them on sainsburys.co.uk.
categoryUrlsSainsbury's category or aisle pages (addresses ending in /c: and a number).
productUrlsSainsbury's product pages.
maxItemsStop after this many products in total (default 1000).
maxItemsPerSourceStop each search or category after this many products (default 200).
offersOnlyOnly products with a promotion or Nectar Price.
sortrelevance, price-low-high, price-high-low or rating.
includeDetailsAdd ingredients, allergens, nutrition, storage and origin (charged separately).
deduplicateWrite a product found by two searches once (default on). Switch off to keep every search's full list, for example to track search positions.
proxyConfiguration, maxConcurrencyAdvanced. UK residential connections are the default and are included in the price.

Output

One row per product. A row from a search for "sainsburys ground coffee" (offers only), with details shortened:

{
"retailer": "Sainsbury's",
"productId": "7079523",
"sku": "5sdrmezv",
"gtin": null,
"name": "Sainsbury's Fairtrade Colombian Coffee Strength 3, Taste the Difference 227g",
"brand": "Sainsbury's",
"url": "https://www.sainsburys.co.uk/groceries/product/sainsburys-fairtrade-colombian-coffee-strength-3-taste-the-difference-227g",
"imageUrl": "https://assets.sainsburys-groceries.co.uk/gol/7079523/image.jpg",
"price": 4.5,
"currency": "GBP",
"wasPrice": null,
"unitPrice": 19.82,
"unitPriceUnit": "kg",
"loyaltyPrice": 3.37,
"loyaltyUnitPrice": 14.84,
"loyaltyScheme": "Nectar",
"loyaltyValidFrom": "2026-09-22T23:00:00Z",
"loyaltyValidTo": "2026-10-12T23:00:00Z",
"onOffer": true,
"promotions": [
{
"id": "10764945",
"text": "Save 25% with Nectar",
"type": "loyalty-price",
"loyalty": true,
"offerPrice": 3.37,
"offerUnitPrice": 14.84,
"quantity": null,
"multibuyPrice": null,
"validFrom": "2026-09-22T23:00:00Z",
"validTo": "2026-10-12T23:00:00Z"
}
],
"promotionText": "Save 25% with Nectar",
"size": "227g",
"sizeValue": 227,
"sizeUnit": "g",
"packCount": null,
"inStock": true,
"availability": "available",
"category": "Ground coffee",
"categoryPath": ["Hot drinks, soft drinks & water", "Coffee", "Ground coffee"],
"rating": 4.35,
"reviewCount": 75,
"dietary": [],
"labels": [],
"region": null,
"storeId": null,
"details": {
"description": "Colombian Fairtrade ground coffee\nSingle Origin & Fairtrade\n100% Arabica Ground Coffee ...",
"ingredients": "INGREDIENTS:Coffee.\nPackaged in a protective atmosphere",
"nutritionHeaders": ["100g contains", "A serving contains"],
"nutrition": [
{ "nutrient": "Energy", "values": ["<4.2kJ / <1kcal", "6kJ / 1kcal"] },
{ "nutrient": "Fat", "values": ["<0.5g", "<0.5g"] }
],
"storage": "Once opened store in an airtight container. ..."
},
"sourceType": "search",
"sourceInput": "sainsburys ground coffee",
"position": 1,
"scrapedAt": "2026-10-04T15:52:10Z",
"error": null,
"charged": true
}

Notes on the fields:

  • price is what a shopper without a Nectar card pays; loyaltyPrice is the Nectar Price. Sainsbury's own data gives the Nectar Price as the current price, and the Actor turns it the right way round.
  • gtin is the barcode Sainsbury's lists. Own-label products often carry an internal number instead; those are left empty rather than reported as barcodes.
  • brand is empty when the brand is not in Sainsbury's brand list for that search or category (about one product in six in a broad search); it is never guessed.
  • position is the product's place in Sainsbury's results. Sainsbury's puts a few featured products first (labelled Featured).
  • The run's key-value store also holds RUN-SUMMARY: products written, what each input returned and why the run stopped.

Use it from code, automations and AI agents

  • API: run it and get the results in one call: POST https://api.apify.com/v2/acts/zaiq~sainsburys-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN with the input as JSON. The API tab on this page has ready-made Python, JavaScript and cURL examples.
  • Python (pip install apify-client):
from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("zaiq/sainsburys-scraper").call(run_input={'searchTerms': ['milk'], 'maxItems': 20})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)
  • No code: connect it to Google Sheets, Zapier, Make or n8n from the Integrations tab, schedule runs in Apify Console, and get a webhook when a run finishes.
  • AI agents (MCP): add it as a tool to Claude, Cursor or any MCP client through Apify's MCP server: https://mcp.apify.com?tools=zaiq/sainsburys-scraper.

Pricing

Pay per event:

EventPrice
Product scraped (one row written)$0.003 ($3 per 1,000 products)
Product details added (ingredients, allergens, nutrition; only when switched on)$0.004
Run start$0.005

Free: products that cannot be found, products Sainsbury's lists without a price, requests that fail or are blocked, retries and duplicates. Your spending limit for the run is respected: the run stops cleanly before going over it.

Limits

  • Prices are the ones Sainsbury's shows on its website to shoppers who are not signed in. Personalised Nectar offers (My Nectar Prices) are not included.
  • Products are looked up by their product page URL; Sainsbury's product numbers alone are not supported.
  • In our tests (about 1,200 products) every row was in stock: Sainsbury's appears to leave unavailable products out of searches and aisles. inStock follows Sainsbury's own availability flag for each product.
  • Sorting is Sainsbury's own: featured products come first, and price sorting uses the Nectar Price where there is one.
  • Product details need one extra request per product.
  • Up to 10 requests at once (4 by default), to keep the load on Sainsbury's light.
  • Check that your use of the data complies with Sainsbury's terms and with the law that applies to you.

FAQ

Do I need a Sainsbury's account or Nectar card? No. The Actor sees what any visitor to sainsburys.co.uk sees, including the advertised Nectar Prices.

Which prices are these? The prices sainsburys.co.uk shows to a visitor who has not signed in or chosen a delivery address. In-store prices can differ.

How do I track prices every day? Put your product page URLs in productUrls and schedule the Actor.

How do I get every product on offer in an aisle? Add the aisle page under categoryUrls, switch on offersOnly and raise maxItemsPerSource.

What if Sainsbury's blocks a request? It is retried through another UK home connection. Blocked requests are free.

Can I get the data for Tesco, Asda or Morrisons too? Yes, our Tesco, Asda and Morrisons scrapers return the same columns.