sainsburys.co.uk APIsainsburys.co.uk ↗
Access Sainsbury's grocery catalogue: search products, browse category trees, retrieve product details, and get trending searches via a structured JSON API.
curl -X GET 'https://api.parse.bot/scraper/2fb6ed22-2e3f-4192-9b3c-c522aa46ce05/search_products?query=milk' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for grocery products by keyword. Returns a paginated list of products with pricing, availability, reviews, and category information.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| queryrequired | string | Search keyword (e.g. 'milk', 'bread', 'chocolate') |
| page_size | integer | Number of results per page. |
{
"type": "object",
"fields": {
"total": "integer total number of matching products",
"products": "array of product objects with name, pricing, availability, reviews, categories"
},
"sample": {
"data": {
"total": 862,
"products": [
{
"name": "Sainsbury's British Filtered Semi Skimmed Milk 2L",
"reviews": {
"total": 336,
"average_rating": 4.7738
},
"categories": [
{
"id": "12431",
"name": "Fresh milk"
}
],
"unit_price": {
"price": 1.05,
"measure": "ltr",
"measure_amount": 1
},
"product_uid": "7657802",
"is_available": true,
"retail_price": {
"price": 2.1,
"measure": ""
}
}
]
},
"status": "success"
}
}About the sainsburys.co.uk API
The Sainsbury's API covers 6 endpoints that expose Sainsbury's full grocery catalogue, including product search with pricing and reviews, a nested category hierarchy, and individual product detail pages. The search_products endpoint accepts a keyword query and returns paginated results with pricing, availability, review data, and category metadata. Product lookups support both SKU and SEO slug as identifiers.
Search and Browse
The search_products endpoint takes a required query string and optional page and page_size parameters, returning a total count alongside an array of product objects that each include name, pricing, availability, reviews, and category assignments. get_products_by_category works similarly but filters by a numeric category_id — for example 1019201 or 460391 — found after the c: prefix in category tree slugs.
Category Navigation
get_category_tree returns the complete nested hierarchy as a JSON object where each node carries a slug (s), name (n), and children array (c). For cases where only top-level navigation is needed, get_category_list returns a flat array of objects with name and slug keys, making it straightforward to list departments before drilling into subcategories.
Product Details and Trending
get_product_details accepts either a sku (e.g. 7657802) or an SEO slug (e.g. sainsburys-british-filtered-semi-skimmed-milk-2l) and returns a single product object with full pricing, description, categories, reviews, attributes, and health classification fields. get_trending_searches takes no inputs and returns a terms array of strings reflecting current popular search activity on the Sainsbury's grocery site.
- Track price changes on specific SKUs over time using
get_product_detailswith a stored SKU list - Build a grocery price comparison tool using
search_productsto query identical items across categories - Populate a nutrition or health-tracking app with product health classification and attributes from
get_product_details - Generate a site map or navigation tree for a grocery aggregator using
get_category_tree - Surface trending grocery terms for keyword research or seasonal content using
get_trending_searches - Audit product availability across a category by paginating through
get_products_by_categoryresults - Feed a recipe-cost estimator by searching ingredients with
search_productsand extracting live pricing
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Sainsbury's have an official developer API?+
What does `get_product_details` return beyond basic pricing?+
sku or slug must be supplied; both are accepted if available. SKUs are returned in the products array from search_products and get_products_by_category.How do category IDs work, and where do I find them?+
get_category_tree returns slugs formatted as c:<numeric_id> for each node — the numeric portion is the category_id accepted by get_products_by_category. Alternatively, get_category_list gives top-level slugs in the same format for quick lookup without traversing the full tree.Does the API cover Sainsbury's non-grocery inventory such as clothing, electricals, or Tu fashion?+
Does the API expose Sainsbury's Nectar loyalty pricing or member-exclusive offers separately from standard pricing?+
search_products, get_products_by_category, and get_product_details reflect the product pricing data available in the catalogue response. Nectar-exclusive pricing as a distinct labelled field is not currently broken out. You can fork this API on Parse and revise it to surface that pricing tier if it appears in the product data.