JioMart Collection Products API
Read products from a JioMart collection such as groceries, with product data and location, page by page.
- 1 credit per call
- Failed calls are free
- Updated
- jiomart.collection.products.list
{ "page": { "has_next": true, "has_previous": false, "item_total": 188000, "next_id": "2", "type": "cursor" }, "pagination": { "has_more": true, "next_cursor": "2", "total": 188000 }, "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 | Dalda Vanaspati 840 g | dalda-vanaspati-1-l-mffmym-7517662 | 0 | 685945f46c8c7aee3f3af605 | India | false | 490000049 | standard | standard | |
| 9 | Amulspray Infant Milk Food 500 g | amulspray-infant-milk-food-500-g-mffn2f-7525913 | 0 | 685945f46c8c7aee3f3af605 | India | false | 490017436 | standard | standard | |
| 10 | Nature's Choice Arabian Dates 500 g | natures-choice-arabian-dates-500-g-milcjv-31044755 | 0 | 685945f46c8c7aee3f3af605 | United Arab Emirates | false | 492663078 | standard | standard |
What you send
The input
object of the request, with every field the endpoint accepts.
- Send a collection slug that is not empty. 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, and the page size runs from 1 to 100. Use the page ID in the response to get the rest of the same page.
- Keep the collection, PIN, sort and page size the same when you follow a page ID.
| Field | Type | Required | What it does | Example |
|---|---|---|---|---|
| slug | string | yes | Slug from the page URL. | groceries |
| 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. | 5 |
| pincode | string | no | Postal code (PIN) that sets the delivery location. | 400001 |
| 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
- Collection products describe the catalogue; they do not prove every item is stocked locally for the PIN.
- Send the next-page value back unchanged for the next page. A page number picks JioMart's own page.
- Low-to-high is JioMart's order; do not describe the result as strictly ascending.
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.collection.products.list", "input": { "page_size": 5, "pincode": "400001", "slug": "groceries" }}'
import jsonimport osimport requestspayload = json.loads(r'''{ "capability": "jiomart.collection.products.list", "input": { "page_size": 5, "pincode": "400001", "slug": "groceries" }}''')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.collection.products.list", "input": { "page_size": 5, "pincode": "400001", "slug": "groceries" }}),});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 products in JioMart’s groceries collection for PIN 400001, including brand, product ID, selling price, MRP and product slug.
More from the JioMart API
- JioMart Products Search API1 credit
- JioMart 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 Collection Products API FAQ
The short answers. The docs have the long ones.
How much does the JioMart Collection 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?
Send slug. The input fields below list every option with its type and limits.
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.collection.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.