Asda Categories API
Read category paths and counts. Narrow the request to a named department when your report covers one part of the catalog.
- 5 credits per call
- Failed calls are free
- Updated
- asda.categories.list
What you send
The input
object of the request, with every field the endpoint accepts.
- Send a category and department name with a depth to get only that part of the tree. A department needs its category, and an aisle needs its department.
| Field | Type | Required | What it does | Example |
|---|---|---|---|---|
| category | string | no | Exact category name (for example Chilled Food). When set, only that category's branch is returned. |
Chilled Food |
| department | string | no | Exact department name inside category; requires category. When set, only that department's branch is returned. |
Milk, Butter, Cream & Eggs |
| depth | integer | no | How deep to expand: 1 categories only, 2 categories and departments, 3 categories, departments and aisles. From 1 to 3. Default: 3. |
2 |
| include_raw | boolean | no | Include ASDA's unprocessed Algolia response under raw (large: ~150 KB per 60 products). Set false for normalized fields only. Default: true. |
false |
| store_id | string | no | Asda store id used for stock boosting Default: 4565. |
4565 |
Fields it returns
What each record in the response holds, with the values from the sample above.
| Field | Type | What it is | Example |
|---|---|---|---|
| categories[].name | string | Name of the returned product or taxonomy node. | Milk, Butter, Cream & Eggs |
| categories[].id | string | ASDA identifier; preserve it as text. | 1215339432024 |
| categories[].path | string | Exact taxonomy path for choosing category and department inputs. | Chilled Food > Milk, Butter, Cream & Eggs |
| categories[].depth | integer | Level of this node in the category hierarchy. | 2 |
| categories[].product_count | integer | Count reported for the category, not a stock count. | 837 |
| categories | array | The categories returned, each with its own entries. | 1 records |
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": "asda.categories.list", "input": { "category": "Chilled Food", "department": "Milk, Butter, Cream & Eggs", "depth": 2, "include_raw": false, "store_id": "4565" }}'
import jsonimport osimport requestspayload = json.loads(r'''{ "capability": "asda.categories.list", "input": { "category": "Chilled Food", "department": "Milk, Butter, Cream & Eggs", "depth": 2, "include_raw": false, "store_id": "4565" }}''')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": "asda.categories.list", "input": { "category": "Chilled Food", "department": "Milk, Butter, Cream & Eggs", "depth": 2, "include_raw": false, "store_id": "4565" }}),});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
Using Upscrape, inspect Milk, Butter, Cream & Eggs under Chilled Food at depth 2, then collect five Fresh Milk aisle products. Preserve the category path and product identifiers so the report can be repeated.
More from the Asda API
The same data from other platforms
Asda Categories API FAQ
The short answers. The docs have the long ones.
How much does the Asda 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 an Asda login?
No. It reads public Asda data; nothing runs on your account.
Can my AI agent call it?
Yes, over MCP: the agent finds asda.categories.list, checks its price and runs it with the same credits as the REST API.
Your first Asda call is free.
Up to 100 free credits to start, no card needed.