Sainsbury's Groceries Categories API
Read category IDs and their parent relationships to choose a shelf for your report.
- 5 credits per call
- Failed calls are free
- Updated
- sainsburys.categories.list
{ "count": 1308, "categories": [ { "name": "Baby & toddler", "id": "1018771", "level": 0, "parent_id": null, "type": "Top Level Category" }, { "name": "Baby bottles and feeding", "id": "1018682", "level": 1, "parent_id": "1018771", "type": "CLP" } ]}
| # | Category ID | Category | Parent ID | Level | Category type |
|---|---|---|---|---|---|
| 1 | 1018771 | Baby & toddler | 0 | Top Level Category | |
| 2 | 1018682 | Baby bottles and feeding | 1018771 | 1 | CLP |
| 3 | 1018675 | Baby bottles | 1018682 | 2 | PLP |
| 4 | 1018679 | Sterilisers & sterilising fluid | 1018682 | 2 | PLP |
| 5 | 2100990 | Baby bowls and cutlery | 1018682 | 2 | PLP |
| 6 | 1018695 | Baby and toddler meals | 1018771 | 1 | CLP |
| 7 | 1018690 | Stage 1 (6 months & up) | 1018695 | 2 | PLP |
| 8 | 1018691 | Stage 2 (7 months & up) | 1018695 | 2 | PLP |
| 9 | 1018692 | Stage 3 (10 months & up) | 1018695 | 2 | PLP |
| 10 | 1018693 | Stage 4 (12 months & up) | 1018695 | 2 | PLP |
Fields it returns
What each record in the response holds, with the values from the sample above.
| Field | Type | What it is | Example |
|---|---|---|---|
| categories[].id | string | Category identifier used to select a shelf. | 1018771 |
| categories[].name | string | Product or category name as returned; use its identifier to join records. | Baby & toddler |
| categories[].parent_id | null | Parent category identifier; null marks a root. | null |
| categories[].level | integer | Depth in the returned category tree. | 0 |
| categories[].type | string | Category type supplied by Sainsbury’s. | Top Level Category |
| categories | array | All Sainsbury’s grocery categories, each with its parent. | 1308 records |
| count | integer | Number of categories returned. | 1308 |
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.categories.list", "input": {}}'
import jsonimport osimport requestspayload = json.loads(r'''{ "capability": "sainsburys.categories.list", "input": {}}''')response = requests.post( "https://data.upscrape.com/execute", headers={ "Authorization": f"Bearer {os.environ['UPSCRAPE_API_KEY']}", "Content-Type": "application/json", "Prefer": "wait=30", }, json=payload,)response.raise_for_status()print(json.dumps(response.json(), indent=2))
const response = await fetch("https://data.upscrape.com/execute", { method: "POST", headers: { "Authorization": `Bearer ${process.env.UPSCRAPE_API_KEY}`, "Content-Type": "application/json", "Prefer": "wait=30", }, body: JSON.stringify({ "capability": "sainsburys.categories.list", "input": {}}),});if (!response.ok) { throw new Error(`Upscrape request failed: ${response.status}`);}console.log(JSON.stringify(await response.json(), null, 2));
https://data.upscrape.com/mcp
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.
More from the Sainsbury's Groceries API
The same data from other platforms
Sainsbury's Groceries Categories API FAQ
The short answers. The docs have the long ones.
How much does the Sainsbury's Groceries Categories API cost?
5 credits per successful call, shown before it runs. You buy credits once, and paid credits never expire.
What do I send?
Every input is optional; the input fields below list what each one does.
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.categories.list, checks its price and runs it with the same credits as the REST API.
Your first Sainsbury's Groceries call is free.
Up to 100 free credits to start, no card needed.