JioMart Products API
Browse JioMart product lists with supported catalogue filters for assortment, pricing and category analysis.
- 1 credit per call
- Failed calls are free
- Updated
- jiomart.products.list
{ "page": { "has_next": true, "has_previous": false, "item_total": 187761, "next_id": "2", "type": "cursor" }, "pagination": { "has_more": true, "next_cursor": "2", "total": 187761 }, "items": [ { "name": "Lemon 100 g", "rating": 0, "channel": "685945f46c8c7aee3f3af605", "country_of_origin": "India", "discount": "", "in_stock_variant": false, "item_code": "590014267", "item_type": "standard", "journey": "standard", "net-quantity-unit": "g", "net-quantity-value": 100, "net_quantity": "0.35/g", "rating_bucket": "0", "sellable": true, "seller_id": 1, "sku_code": "590014267", "slug": "lemon-100-g-mlc80c-72964579", "teaser_tag": "", "type": "product", "uid": 72964579, "price": { "currency_code": "INR", "currency_symbol": "₹", "effective": { "max": 35, "min": 35 }, "marked": { "max": 35, "min": 35 } }, "action": { "type": "page", "page": { "type": "product", "params": { "slug": [ "lemon-100-g-mlc80c-72964579" ] } } }, "brand": { "name": "reliance", "type": "brand", "uid": 6, "action": { "type": "page", "page": { "type": "products", "query": { "brand": [ "" ] } } } }, "discount_meta": {}, "instock_variants": { "item_id": [ "72964579" ], "sizes": [ "OS" ], "variantId": [ "590014267" ] }, "moq": { "increment_unit": 1, "minimum": 1 }, "categories": [ { "name": "Lemon", "type": "category", "uid": 5859, "action": { "type": "page", "page": { "type": "products", "query": { "category": [ "lemon" ] } } } } ], "price_list": [ { "discount": "", "is_sellable": true, "journey": "standard", "seller_id": 1, "store_id": 3442, "price": { "effective": { "max": 35, "min": 35 }, "marked": { "max": 35, "min": 35 } }, "discount_meta": {} } ], "sizes": [ "OS" ], "store_ids": [ 3442 ], "tags": [ "1p", "QC" ], "variants": [] }, { "name": "Swamy's Idli Dosa Batter 1 kg", "rating": 0, "channel": "685945f46c8c7aee3f3af605", "country_of_origin": "India", "discount": "", "in_stock_variant": false, "item_code": "494626911", "item_type": "standard", "journey": "standard", "net-quantity-unit": "kg", "net-quantity-value": 1, "net_quantity": "55.00/kg", "rating_bucket": "0", "sellable": true, "seller_id": 1, "sku_code": "494626911", "slug": "swamy-s-idli-dosa-batter-1-kg-mknlyu-72446064", "teaser_tag": "", "type": "product", "uid": 72446064, "price": { "currency_code": "INR", "currency_symbol": "₹", "effective": { "max": 55, "min": 55 }, "marked": { "max": 110, "min": 110 } }, "action": { "type": "page", "page": { "type": "product", "params": { "slug": [ "swamy-s-idli-dosa-batter-1-kg-mknlyu-72446064" ] } } }, "brand": { "name": "Swamy's", "type": "brand", "uid": 145980, "action": { "type": "page", "page": { "type": "products", "query": { "brand": [ "" ] } } } }, "discount_meta": {}, "instock_variants": { "item_id": [ "72446064" ], "sizes": [ "OS" ], "variantId": [ "494626911" ] }, "moq": { "increment_unit": 1, "minimum": 1 }, "categories": [ { "name": "Fresh Batter", "type": "category", "uid": 2743, "action": { "type": "page", "page": { "type": "products", "query": { "category": [ "fresh-batter" ] } } } } ], "price_list": [ { "discount": "", "is_sellable": true, "journey": "standard", "seller_id": 1, "store_id": 3442, "price": { "effective": { "max": 55, "min": 55 }, "marked": { "max": 110, "min": 110 } }, "discount_meta": {} } ], "sizes": [ "OS" ], "store_ids": [ 3442 ], "tags": [ "QC", "NON-RX" ], "variants": [] } ]}
| # | Product | Product slug | Rating | Channel | Country of origin | Discount | In stock variant | Item code | Item type | Journey |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Lemon 100 g | lemon-100-g-mlc80c-72964579 | 0 | 685945f46c8c7aee3f3af605 | India | false | 590014267 | standard | standard | |
| 2 | Swamy's Idli Dosa Batter 1 kg | swamy-s-idli-dosa-batter-1-kg-mknlyu-72446064 | 0 | 685945f46c8c7aee3f3af605 | India | false | 494626911 | standard | standard | |
| 3 | Onion (Approx. 900 g - 1000 g) | onion-1-kg-pack-mffneb-7550741 | 0 | 685945f46c8c7aee3f3af605 | India | false | 590011678 | standard | standard | |
| 4 | Kheera Desi Pack (Approx. 490 g-500 g) | kheera-desi-pack-approx-490-g-500-g-mffn0j-7521921 | 0 | 685945f46c8c7aee3f3af605 | India | false | 590009966 | standard | standard | |
| 5 | Tamarind 500 g | tamarind-500-g-milck5-31045690 | 0 | 685945f46c8c7aee3f3af605 | India | false | 491416694 | standard | standard | |
| 6 | Funfoods Veg Mayo Classic 875 g | funfoods-veg-mayo-classic-875g-mpmoll-104032965 | 0 | 685945f46c8c7aee3f3af605 | India | false | 494767925 | standard | standard | |
| 7 | Modern Sandwich Supreme White Bread 400 g | modern-sandwich-supreme-white-bread-400-g-mffnet-7551751 | 0 | 685945f46c8c7aee3f3af605 | India | false | 491553918 | standard | standard | |
| 8 | Kaltron 8 Socket Extension Boards (White, 2.5 m) | kaltron-8-socket-extension-boards-mj78rj-50930842 | 0 | 685945f46c8c7aee3f3af605 | India | false | RVPGLKV6L0 | standard | standard | |
| 9 | Dalda Vanaspati 840 g | dalda-vanaspati-1-l-mffmym-7517662 | 0 | 685945f46c8c7aee3f3af605 | India | false | 490000049 | standard | standard | |
| 10 | Amulspray Infant Milk Food 500 g | amulspray-infant-milk-food-500-g-mffn2f-7525913 | 0 | 685945f46c8c7aee3f3af605 | India | false | 490017436 | standard | standard |
What you send
The input
object of the request, with every field the endpoint accepts.
- Send a JioMart catalogue filter in filter, such as one department of the standard catalogue. A pincode or location is optional; if you send a PIN both on its own and inside the location, the two must match.
- Pages start at 1. The page size, from 1 to 100, caps the rows returned from one JioMart page. Use the page ID in the response to get the rest of that page.
- Keep the filter, PIN, sort and page size the same when you follow a page ID. The sort is JioMart's; the page is not sorted again.
| Field | Type | Required | What it does | Example |
|---|---|---|---|---|
| filter | string | no | ||
| location | object | no | ||
| page | integer | no | Use returned page_id continuation to consume every row when page_size is smaller than a native page. At least 1. | |
| page_id | string | no | Use the returned pagination.next_cursor or page.next_id unchanged, with the same query, filter, collection, PIN, sort and page_size. | |
| page_size | integer | no | Maximum products returned from one native page. Returned continuation preserves any remaining rows; no additional native pages are scanned in this call. From 1 to 100. | |
| pincode | string | no | Postal code (PIN) that sets the delivery location. | |
| sort_on | string | no | Passed unchanged to JioMart; results preserve JioMart's own order. price_asc is not guaranteed to be strictly ascending. No local page sorting. |
Fields it returns
What each record in the response holds, with the values from the sample above.
| Field | Type | What it is | Example |
|---|---|---|---|
| items[].name | string | Product, brand, department, collection or content name as returned for the selected endpoint. | Lemon 100 g |
| items[].brand | object | Brand name shown in the sample table from JioMart’s returned brand data. | 4 fields |
| items[].price | object | Selling price shown from the returned effective price for the sampled catalogue row. | 4 fields |
| items[].slug | string | Product, brand or collection slug returned by JioMart for the sampled record. | lemon-100-g-mlc80c-72964579 |
| items[].brand.name | string | Product, brand, department, collection or content name as returned for the selected endpoint. | reliance |
| items[].categories[].name | string | Lemon | |
| items[].price_list[].price | object | 2 fields | |
| items[].rating | integer | The product's rating. | 0 |
| items[].action | object | Where the entry links to on JioMart. | 2 fields |
| items[].action.page | object | The page the entry opens, or this response's page details. | 2 fields |
| items[].action.type | string | The kind of record or suggestion, where JioMart gives one. | page |
| items[].brand.action | object | Where the entry links to on JioMart. | 2 fields |
| items[].brand.type | string | The kind of record or suggestion, where JioMart gives one. | brand |
| items[].brand.uid | integer | Brand or collection identifier returned by JioMart for directory records. | 6 |
| items[].categories | array | The product's categories. | 1 records |
| items[].categories[].action | object | 2 fields | |
| items[].categories[].type | string | category | |
| items[].categories[].uid | integer | 5859 | |
| items[].channel | string | 685945f46c8c7aee3f3af605 | |
| items[].country_of_origin | string | Where the product comes from. | India |
| items[].discount | string | The discount, when there is one. | |
| items[].discount_meta | object | 0 fields | |
| items[].in_stock_variant | boolean | Whether a variant is in stock. | false |
| items[].instock_variants | object | The variants in stock. | 3 fields |
| items[].instock_variants.item_id | array | The sponsored product's ID. | 72964579 |
| items[].instock_variants.sizes | array | Sizes available. | OS |
| items[].instock_variants.variantId | array | IDs of the variants in stock. | 590014267 |
| items[].item_code | string | JioMart's product code. | 590014267 |
| items[].item_type | string | The kind of product record, such as standard. | standard |
| items[].journey | string | Listing context. quickcommerce is scoped to resolved serving stores; standard is national-catalogue presence and is not delivery confirmation. | standard |
| items[].moq | object | Minimum order rules. | 2 fields |
| items[].moq.increment_unit | integer | The step between quantities you can order. | 1 |
| items[].moq.minimum | integer | The fewest you can order. | 1 |
| items[].net-quantity-unit | string | The unit of the net quantity, such as g. | g |
| items[].net-quantity-value | integer | The net quantity, in the unit given. | 100 |
| items[].net_quantity | string | Price per unit of net quantity. | 0.35/g |
| items[].price.currency_code | string | The currency, such as INR. | INR |
| items[].price.currency_symbol | string | The currency symbol, such as ₹. | ₹ |
| items[].price.effective | object | The price you pay. | 2 fields |
| items[].price.marked | object | The marked price before discount. | 2 fields |
| items[].price_list | array | Prices from each seller. | 1 records |
| items[].price_list[].discount | string | ||
| items[].price_list[].discount_meta | object | 0 fields | |
| items[].price_list[].is_sellable | boolean | true | |
| items[].price_list[].journey | string | standard | |
| items[].price_list[].seller_id | integer | 1 | |
| items[].price_list[].store_id | integer | 3442 | |
| items[].rating_bucket | string | 0 | |
| items[].sellable | boolean | Whether a matching local store listing can sell it. A national catalogue entry alone does not make this a local stock signal. | true |
| items[].seller_id | integer | JioMart's ID for the seller. | 1 |
| items[].sizes | array | Sizes available. | OS |
| items[].sku_code | string | JioMart's stock code. | 590014267 |
| items[].store_ids | array | Store identifiers attached to the returned context. Presence in national catalogue data is not delivery confirmation. | 3442 |
| items[].tags | array | JioMart's tags for the product. | 1p, QC, kirana_1p |
| items[].teaser_tag | string | A short promotional tag, when there is one. | |
| items[].type | string | The kind of record or suggestion, where JioMart gives one. | product |
| items[].uid | integer | Brand or collection identifier returned by JioMart for directory records. | 72,964,579 |
| items[].variants | array | Other variants of the product. | empty in this sample |
| items | array | The entries returned. | 12 records |
| page | object | The page the entry opens, or this response's page details. | 5 fields |
What this endpoint covers
- Product rows describe the catalogue. Catalogue sellability, price or store IDs are not proof of local stock.
- Send the next-page value back for the next page. A page number picks JioMart's own page.
- Low-to-high is not always strictly in order across the returned page or later pages.
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.products.list", "input": {}}'
import jsonimport osimport requestspayload = json.loads(r'''{ "capability": "jiomart.products.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": "jiomart.products.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
Show a snapshot of JioMart product listings and summarize the brands and price ranges in the returned products.
More from the JioMart API
- JioMart Products Search 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 Category Filters 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 Products API FAQ
The short answers. The docs have the long ones.
How much does the JioMart Products 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.products.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.