↑ ↓ to move ↵ to open
Commerce & delivery · REST API · MCP server

Sainsbury's Groceries API

Compare Sainsbury’s regular and Nectar prices on the same pack, starting with a product ID or a grocery search.

  • 1 credit per call
  • Failed calls are free
  • Updated
sainsburys.products.search 29 rows completed
# Product Product ID Pack Catalog available GTIN Product link Image
1 Sainsbury's British Semi Skimmed Milk, SO Organic 2.27L (4 pint) 1208450 4 pint true https://www.sainsburys.co.uk/gol-ui/product/sainsburys-british-… https://assets.sainsburys-groceries.co.uk/gol/1208450/image.jpg
2 Sainsbury's 2L Fresher for Longer Filtered Semi-Skimmed Milk 7657802 2L true 0000000133845 https://www.sainsburys.co.uk/gol-ui/product/sainsburys-2l-fresh… https://assets.sainsburys-groceries.co.uk/gol/7657802/image.jpg
3 Sainsbury's British Semi Skimmed Milk 2.27L (4 pint) 357937 4 pint true 0000050181117 https://www.sainsburys.co.uk/gol-ui/product/sainsburys-british-… https://assets.sainsburys-groceries.co.uk/gol/357937/image.jpg
4 Sainsbury's British Semi Skimmed Milk 1.13L (2 pint) 1137637 2 pint true 5000181013566 https://www.sainsburys.co.uk/gol-ui/product/sainsburys-british-… https://assets.sainsburys-groceries.co.uk/gol/1137637/image.jpg
5 Sainsbury's British Semi Skimmed Milk 3.4L (6 pint) 464390 6 pint true 5000181016574 https://www.sainsburys.co.uk/gol-ui/product/sainsburys-british-… https://assets.sainsburys-groceries.co.uk/gol/464390/image.jpg
6 Cravendale Filtered Fresh Semi Skimmed Milk 2L Fresher for Long… 3216620 2L true 5000181024043 https://www.sainsburys.co.uk/gol-ui/product/cravendale-filtered… https://assets.sainsburys-groceries.co.uk/gol/3216620/image.jpg
7 Sainsbury's British Semi Skimmed Milk 1 Pint 173759 1 Pint true 5000181015614 https://www.sainsburys.co.uk/gol-ui/product/sainsburys-british-… https://assets.sainsburys-groceries.co.uk/gol/173759/image.jpg
8 Sainsbury’s 1L Fresher For longer Filtered Semi Skimmed Milk 8172497 1L true 0000000514828 https://www.sainsburys.co.uk/gol-ui/product/sainsbury-s-1l-fres… https://assets.sainsburys-groceries.co.uk/gol/8172497/image.jpg
9 Cravendale Filtered Fresh Semi Skimmed Milk Fresher for Longer … 3216590 1L true 5000181024029 https://www.sainsburys.co.uk/gol-ui/product/cravendale-filtered… https://assets.sainsburys-groceries.co.uk/gol/3216590/image.jpg
10 Sainsbury's Everyday Lactose Free Semi Skimmed Dairy Drink 1L 7943123 1L true 0000000346085 https://www.sainsburys.co.uk/gol-ui/product/sainsburys-everyday… https://assets.sainsburys-groceries.co.uk/gol/7943123/image.jpg
Endpoints

Sainsbury's Groceries API endpoints

What each one takes and what it returns. Open one for a real response, every input and every field.

Sainsbury's Groceries Products Search API

Search for an ingredient or product name and compare the returned packs, prices and public offers.

Sendquery Returnsnameretailer_product_idpack_sizepricecurrencynectar_price
1–15 credits

Sainsbury's Groceries Product Detail API

Check a Sainsbury’s product ID or official link, with regular and public member prices separated where supplied.

Sendurlorproduct_id Returnsnameretailer_product_idpack_sizepricecurrencynectar_price
2 credits

Sainsbury's Groceries Category Products API

Pass a category ID and page through its products, keeping each pack’s identifier with its price.

Sendcategory_id Returnsnameretailer_product_idpack_sizepricecurrencynectar_price
1–15 credits

Sainsbury's Groceries Offers API

Browse public offer listings and keep membership or quantity conditions beside each product.

Returnsnameretailer_product_idpack_sizepricecurrencynectar_price
1–15 credits
Use cases

What teams build with Sainsbury’s data

Price, Nectar offer and range checks on Sainsbury’s online grocery catalog.

Pricing

What the Sainsbury's Groceries API costs

Every endpoint shows its price in credits before it runs. You buy credits once, with no subscription.

Credit packs
Per callEndpoints
1–15 credits Products searchCategory productsOffers
2 credits Product detail
5 credits Categories
Know before you build

How Sainsbury's Groceries data behaves

REST API · MCP server

Call it from your code, or ask your agent

One request shape for every Sainsbury's Groceries endpoint: the endpoint ID and its input. No SDK needed.

curl --request POST \  --url https://data.upscrape.com/execute \  --header "Authorization: Bearer $UPSCRAPE_API_KEY" \  --header "Content-Type: application/json" \  --header "Prefer: wait=30" \  --data '{  "capability": "sainsburys.products.search",  "input": {    "query": "semi skimmed milk"  }}'
Response
{  "count": 29,  "has_more": false,  "next_page": null,  "page": 1,  "page_size": 30,  "total": 29,  "products": [    {      "name": "Sainsbury's British Semi Skimmed Milk, SO Organic 2.27L (4 pint)",      "available": true,      "brand": null,      "gtin": null,      "image": "https://assets.sainsburys-groceries.co.uk/gol/1208450/image.jpg",      "pack_size": "4 pint",      "retailer_product_id": "1208450",      "url": "https://www.sainsburys.co.uk/gol-ui/product/sainsburys-british-semi-skimmed-milk-so-organic-2-27l-4-pint",      "price": {        "amount": 2.65,        "currency": "GBP"      },      "unit_price": {        "amount": 1.17,        "currency": "GBP",        "measure_amount": 1,        "unit": "per_litre"      },      "member_prices": [],      "promotions": []    },    {      "name": "Sainsbury's 2L Fresher for Longer Filtered Semi-Skimmed Milk",      "available": true,      "brand": null,      "gtin": "0000000133845",      "image": "https://assets.sainsburys-groceries.co.uk/gol/7657802/image.jpg",      "pack_size": "2L",      "retailer_product_id": "7657802",      "url": "https://www.sainsburys.co.uk/gol-ui/product/sainsburys-2l-fresher-for-longer-filtered-semi-skimmed-milk",      "price": {        "amount": 2.2,        "currency": "GBP"      },      "unit_price": {        "amount": 1.1,        "currency": "GBP",        "measure_amount": 1,        "unit": "per_litre"      },      "member_prices": [],      "promotions": []    }  ]}
In your AI agent Claude · Cursor · any MCP client
1Add the Upscrape MCP server
https://data.upscrape.com/mcp
2Ask for the data in plain words

Use Upscrape to search Sainsbury’s for semi skimmed milk with the default page size. Compare the returned pack and unit prices, using matching units. Keep product IDs.

Use Upscrape to read Sainsbury’s product 6010343. Show the regular price and any public Nectar amount separately, keeping the pack size and offer dates.

Use Upscrape to read Sainsbury’s categories. Group them by parent ID and show the roots and their children. Preserve category IDs for later shelf requests.

The agent finds the endpoint, shows you the price, and runs it with your credits.
Commerce & delivery
Questions

Sainsbury's Groceries API FAQ

The short answers. The docs have the long ones.

Still have a question? Talk to the people who build the endpoints.
Is this an official Sainsbury’s API?

This is Upscrape’s Sainsbury’s grocery data API. It reads public catalog information through Upscrape’s service, using your Upscrape API key. The requests on this page describe this service. They do not connect to a Sainsbury’s shopping account or access a customer’s purchase history.

Does it include personalised Your Nectar Prices?

No. Product results keep the regular price apart from the public Nectar price where Sainsbury’s lists one. Personalised Your Nectar Prices, points balances and account history are not part of it, and a public Nectar offer does not confirm what a particular shopper pays.

Can I get stock for a postcode or store?

No. These requests do not take a postcode or store. The returned available flag belongs to the public catalog and cannot establish stock or delivery eligibility at an address. Use it in that limited context rather than labelling a pack available at a particular branch.

Why are some GTINs, brands or pack sizes missing?

The public response does not supply every value for every product. Brand information can be present in detail and absent from a list. Treat missing values as unknown, retain GTINs as text and use the retailer product ID to join results instead of guessing from a product name.

Does the API provide historical Sainsbury’s prices?

Each call reads the catalog as it is now; it is not a price-history dataset. Build a history by saving repeated requests with their collection times, product IDs and results. Keep regular and member amounts separate across runs, and retain offer conditions so a promotion does not look like an ordinary price change.

Can it create a basket or place a Sainsbury’s order?

No. These operations read product, category and offer data for research and reporting. They do not create baskets, reserve delivery slots, spend Nectar points or place orders. Use the responses to build your comparison or ingredient report; a shopping transaction needs a separate service.

What data can I get from Sainsbury's Groceries?

Products search, product detail, categories, category products and offers. Each is its own endpoint with a published input schema, and the response is JSON.

How much does the Sainsbury's Groceries API cost?

Sainsbury's Groceries endpoints cost from 1–15 credits per successful call, each priced before it runs. You buy credits once, with no subscription, and paid credits never expire. New accounts get free credits to try it.

Get started

Your first Sainsbury's Groceries call is free.

Up to 100 free credits to start, no card needed.