JioMart Category Filters API
Read JioMart's filter values and category tree for a catalogue filter, with an optional location.
- 1 credit per call
- Failed calls are free
- Updated
- jiomart.category.filters.list
{ "raw": { "success": true, "category_hierarchy": [ { "count": "338", "hierarchy": "91-9762-11171" }, { "count": "58" } ], "filters": [ { "key": { "name": "department", "display": "Departments", "is_dynamic": false, "kind": "multivalued", "logo": "", "visible": true }, "values": [ { "count": 93823, "display": "Groceries", "is_selected": true, "logo": "https://cdn1.jiomartjcp.com/v2/jiomart-fynd/jio-pd/original/department/pictures/square-logo/original/B14hzYYH_-department.png", "priority": 1, "uid": 1, "value": "groceries" }, { "count": 11922, "display": "Fashion", "is_selected": false, "logo": "https://cdn1.jiomartjcp.com/v2/jiomart-fynd/jio-pd/original/department/pictures/square-logo/original/1vlzsBtlr-department.png", "priority": 2, "uid": 2, "value": "fashion" } ] }, { "key": { "name": "l1_category", "display": "Categories", "is_dynamic": false, "kind": "multivalued", "logo": "", "visible": true }, "values": [ { "count": 583, "display": "Fresh", "is_selected": false, "logo": "https://cdn1.jiomartjcp.com/v2/jiomart-fynd/jio-pd/original/category/pictures/square-logo/original/CghR5kUee-logo.jpg", "priority": 1, "uid": 13956, "value": "fresh-l1", "hierarchy": [ { "department": 1, "l1": 13956, "l2": 241, "l3": 12452 } ] }, { "count": 23453, "display": "Biscuits, Drinks & Packaged Foods", "is_selected": false, "priority": 2, "uid": 113, "value": "biscuits-drinks-packaged-foods", "hierarchy": [ { "department": 1, "l1": 113, "l2": 633, "l3": 2023 } ] } ] } ] }, "filters": [ { "key": { "name": "department", "display": "Departments", "is_dynamic": false, "kind": "multivalued", "logo": "", "visible": true }, "values": [ { "count": 93823, "display": "Groceries", "is_selected": true, "logo": "https://cdn1.jiomartjcp.com/v2/jiomart-fynd/jio-pd/original/department/pictures/square-logo/original/B14hzYYH_-department.png", "priority": 1, "uid": 1, "value": "groceries" }, { "count": 11922, "display": "Fashion", "is_selected": false, "logo": "https://cdn1.jiomartjcp.com/v2/jiomart-fynd/jio-pd/original/department/pictures/square-logo/original/1vlzsBtlr-department.png", "priority": 2, "uid": 2, "value": "fashion" } ] }, { "key": { "name": "l1_category", "display": "Categories", "is_dynamic": false, "kind": "multivalued", "logo": "", "visible": true }, "values": [ { "count": 583, "display": "Fresh", "is_selected": false, "logo": "https://cdn1.jiomartjcp.com/v2/jiomart-fynd/jio-pd/original/category/pictures/square-logo/original/CghR5kUee-logo.jpg", "priority": 1, "uid": 13956, "value": "fresh-l1", "hierarchy": [ { "department": 1, "l1": 13956, "l2": 241, "l3": 12452 } ] }, { "count": 23453, "display": "Biscuits, Drinks & Packaged Foods", "is_selected": false, "priority": 2, "uid": 113, "value": "biscuits-drinks-packaged-foods", "hierarchy": [ { "department": 1, "l1": 113, "l2": 633, "l3": 2023 } ] } ] } ]}
| # |
|---|
| 1 |
| 2 |
| 3 |
What you send
The input
object of the request, with every field the endpoint accepts.
- Send the JioMart catalogue filter whose options you want in filter, for example journey:standard:::department:groceries for the groceries department.
- A pincode or location is optional. The location can carry a pincode, city, state, latitude and longitude; if you send a PIN both on its own and inside the location, the two must match.
| Field | Type | Required | What it does | Example |
|---|---|---|---|---|
| filter | string | no | journey:standard:::department:groceries | |
| location | object | no | ||
| pincode | string | no | Postal code (PIN) that sets the delivery location. | 400001 |
Fields it returns
What each record in the response holds, with the values from the sample above.
| Field | Type | What it is | Example |
|---|---|---|---|
| filters[].key.name | string | Product, brand, department, collection or content name as returned for the selected endpoint. | department |
| filters[].key | object | The filter's name, label and display settings. | 6 fields |
| filters[].key.display | string | Autocomplete suggestion text returned by JioMart. | Departments |
| filters[].key.is_dynamic | boolean | Whether JioMart marks the filter as dynamic. | false |
| filters[].key.kind | string | The kind of filter, such as one with several values. | multivalued |
| filters[].key.logo | string | The logo image. | |
| filters[].key.visible | boolean | Whether JioMart shows the filter. | true |
| filters[].values | array | The filter's values. | 3 records |
| filters[].values[].count | integer | How many products match this value. | 93,823 |
| filters[].values[].display | string | The value's label, such as Groceries. | Groceries |
| filters[].values[].is_selected | boolean | Whether the value is already selected. | true |
| filters[].values[].logo | string | Link to the value's logo image. | https://cdn1.jiomartjcp.com/v2/jiomart-fynd/jio-pd/original/dep… |
| filters[].values[].priority | integer | The order JioMart shows the value in. | 1 |
| filters[].values[].uid | integer | JioMart's ID for the value. | 1 |
| filters[].values[].value | string | The value's code, such as groceries. | groceries |
| filters | array | Filters you can narrow by. | 3 records |
| raw | object | JioMart's own response, as it came back. | 3 fields |
| raw.category_hierarchy | array | The category tree for this filter. | 3 records |
| raw.category_hierarchy[].count | string | How many products are in this category path. | 338 |
| raw.category_hierarchy[].hierarchy | string | The category path as JioMart's IDs. | 91-9762-11171 |
| raw.filters | array | Filters you can narrow by. | 3 records |
| raw.filters[].key | object | The filter's name, label and display settings. | 6 fields |
| raw.filters[].values | array | The filter's values. | 3 records |
| raw.success | boolean | Whether JioMart answered the request successfully. | true |
What this endpoint covers
- The filters and category tree describe how JioMart lets shoppers browse. They say nothing about stock, delivery or how many products match.
- Use the returned filter values to build browse requests. They are not a count of what is available everywhere.
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": "jiomart.category.filters.list", "input": { "filter": "journey:standard:::department:groceries", "pincode": "400001" }}'
import jsonimport osimport requestspayload = json.loads(r'''{ "capability": "jiomart.category.filters.list", "input": { "filter": "journey:standard:::department:groceries", "pincode": "400001" }}''')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": "jiomart.category.filters.list", "input": { "filter": "journey:standard:::department:groceries", "pincode": "400001" }}),});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
With Upscrape, get the JioMart category filters for filter "journey:standard:::department:groceries" and pincode "400001". Tell me what it costs before you run it, then show the results as a table.
More from the JioMart API
- JioMart Products Search API1 credit
- JioMart Products API1 credit
- JioMart Collection Products API1 credit
- JioMart Product Detail API1 credit
- JioMart Product Fulfillment API1 credit
- JioMart Multi-location Product Availability API1 credit
- JioMart Autocomplete Search API1 credit
- JioMart Sponsored Products Ads API1 credit
- JioMart Brands API1 credit
- JioMart Categories API1 credit
- JioMart Collections API1 credit
- JioMart Departments API1 credit
- JioMart Home Listing API1 credit
- JioMart Pincode Location API1 credit
- JioMart Logistics Countries API1 credit
- JioMart Navigations API1 credit
- JioMart Pages API1 credit
The same data from other platforms
JioMart Category Filters API FAQ
The short answers. The docs have the long ones.
How much does the JioMart Category Filters API cost?
1 credit 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 JioMart login?
No. It reads public JioMart data; nothing runs on your account.
Can my AI agent call it?
Yes, over MCP: the agent finds jiomart.category.filters.list, checks its price and runs it with the same credits as the REST API.
Your first JioMart call is free.
Up to 100 free credits to start, no card needed.