↑ ↓ to move ↵ to open
Sainsbury's Groceries API · Endpoint

Sainsbury's Groceries Products Search API

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

  • 1–15 credits per call
  • Failed calls are free
  • Updated
  • sainsburys.products.search
Response completed
{  "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": []    }  ]}
Try it live, free
Input

What you send

The input object of the request, with every field the endpoint accepts.

  • Keep the default page size of 30; larger pages do not work reliably yet.
FieldTypeRequiredWhat it doesExample
query string yes Grocery keyword or ingredient. semi skimmed milk
page integer no One-based result page to fetch. From 1 to 1000. Default: 1.
page_size integer no Number of results per page. From 1 to 90. Default: 30.
Response

Fields it returns

What each record in the response holds, with the values from the sample above.

FieldTypeWhat it isExample
products[].name string Product or category name as returned; use its identifier to join records. Sainsbury's British Semi Skimmed Milk, SO Organic 2.27L (4 pint)
products[].retailer_product_id string Sainsbury’s identifier for matching the same pack. 1208450
products[].pack_size string Size expression where supplied; null stays unknown. 4 pint
products[].price object Regular pack amount, separate from member prices. 2 fields
products[].unit_price object Retailer’s published unit amount; do not assume Nectar basis. 4 fields
products[].available boolean Public catalog flag, not local stock. true
products[].brand null Brand where supplied; lists may omit it. null
products[].gtin null Barcode where supplied, retained as text. null
products[].url string Official product page link. https://www.sainsburys.co.uk/gol-ui/product/sainsburys-british-…
products[].image string Product image URL where supplied. https://assets.sainsburys-groceries.co.uk/gol/1208450/image.jpg
products[].member_prices array Nectar member prices for the product, if any. empty in this sample
products[].price.amount number Regular shelf price in pounds, before any Nectar price. 2.65
products[].price.currency string Currency code supplied with the regular price. GBP
products[].promotions array Offers running on the product. empty in this sample
products[].unit_price.amount number Price per unit in pounds, such as per litre. 1.17
products[].unit_price.currency string Currency of the unit price, such as GBP. GBP
products[].unit_price.measure_amount integer Quantity the unit price is for, such as 1 litre. 1
products[].unit_price.unit string Keep the unit with the amount when comparing packs. per_litre
count integer Number of products on this page. 29
has_more boolean Whether more pages of results follow. false
next_page null Page number to ask for next, or null on the last page. null
page integer Page number of these results. 1
page_size integer Most products returned per page. 30
products array Products matching the search on this page. 29 records
total integer How many products match the search in all. 29
REST API · MCP server

Call it from your code, or ask your agent

Set UPSCRAPE_API_KEY to your key and copy a working request.

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"  }}'
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.

The agent finds the endpoint, shows you the price, and runs it with your credits.
Sainsbury's Groceries

More from the Sainsbury's Groceries API

Same data, other platforms

The same data from other platforms

Questions

Sainsbury's Groceries Products Search API FAQ

The short answers. The docs have the long ones.

Still have a question? Talk to the people who build the endpoints.
How much does the Sainsbury's Groceries Products Search API cost?

1–15 credits per successful call, shown before it runs. You buy credits once, and paid credits never expire.

What do I send?

Send query. The input fields below list every option with its type and limits.

Do I need a Sainsbury's Groceries login?

No. It reads public Sainsbury's Groceries data; nothing runs on your account.

Can my AI agent call it?

Yes, over MCP: the agent finds sainsburys.products.search, checks its price and runs it with the same credits as the REST API.

Get started

Your first Sainsbury's Groceries call is free.

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