JioMart Products Search API
Search the national catalogue by keyword and get each product's IDs, name, brand and prices, page by page, for catalogue research.
- 1 credit per call
- Failed calls are free
- Updated
- jiomart.products.search
{ "page": { "has_next": true, "has_previous": false, "item_total": 4617, "next_id": "2", "type": "cursor" }, "pagination": { "has_more": true, "next_cursor": "2", "total": 4617 }, "items": [ { "name": "India Gate Mini Mogra-II Basmati Rice 10 kg", "rating": 0, "channel": "685945f46c8c7aee3f3af605", "country_of_origin": "India", "discount": "", "in_stock_variant": false, "item_code": "491165093", "item_type": "standard", "journey": "standard", "net-quantity-unit": "kg", "net-quantity-value": 10, "net_quantity": "49.30/kg", "rating_bucket": "0", "sellable": true, "seller_id": 1, "sku_code": "491165093", "slug": "india-gate-mini-mogra-ii-basmati-rice-10-kg-mffn6l-7534952", "teaser_tag": "", "type": "product", "uid": 7534952, "price": { "currency_code": "INR", "currency_symbol": "₹", "effective": { "max": 493, "min": 493 }, "marked": { "max": 599, "min": 599 } }, "action": { "type": "page", "page": { "type": "product", "params": { "slug": [ "india-gate-mini-mogra-ii-basmati-rice-10-kg-mffn6l-7534952" ] } } }, "brand": { "name": "india gate", "type": "brand", "uid": 52, "action": { "type": "page", "page": { "type": "products", "query": { "brand": [ "" ] } } } }, "discount_meta": {}, "instock_variants": { "item_id": [ "7534952" ], "sizes": [ "OS" ], "variantId": [ "491165093" ] }, "moq": { "increment_unit": 1, "minimum": 1 }, "categories": [ { "name": "Basmati Rice", "type": "category", "uid": 2672, "action": { "type": "page", "page": { "type": "products", "query": { "category": [ "basmati-rice" ] } } } } ], "price_list": [ { "discount": "", "is_sellable": true, "journey": "standard", "seller_id": 1, "store_id": 3442, "price": { "effective": { "max": 493, "min": 493 }, "marked": { "max": 599, "min": 599 } }, "discount_meta": {} } ], "sizes": [ "OS" ], "store_ids": [ 3442 ], "tags": [ "NON-RX", "seller_3p" ], "variants": [] }, { "name": "India Gate Daily Delight Pure Basmati Rice 5 kg", "rating": 0, "channel": "685945f46c8c7aee3f3af605", "country_of_origin": "India", "discount": "", "in_stock_variant": false, "item_code": "493694870", "item_type": "standard", "journey": "standard", "net-quantity-unit": "kg", "net-quantity-value": 5, "net_quantity": "68.00/kg", "rating_bucket": "0", "sellable": true, "seller_id": 1, "sku_code": "493694870", "slug": "india-gate-daily-delight-pure-basmati-rice-5-kg-mffn77-7536285", "teaser_tag": "", "type": "product", "uid": 7536285, "price": { "currency_code": "INR", "currency_symbol": "₹", "effective": { "max": 340, "min": 340 }, "marked": { "max": 440, "min": 440 } }, "action": { "type": "page", "page": { "type": "product", "params": { "slug": [ "india-gate-daily-delight-pure-basmati-rice-5-kg-mffn77-7536285" ] } } }, "brand": { "name": "india gate", "type": "brand", "uid": 52, "action": { "type": "page", "page": { "type": "products", "query": { "brand": [ "" ] } } } }, "discount_meta": {}, "instock_variants": { "item_id": [ "7536285" ], "sizes": [ "OS" ], "variantId": [ "493694870" ] }, "moq": { "increment_unit": 1, "minimum": 1 }, "categories": [ { "name": "Basmati Rice", "type": "category", "uid": 2672, "action": { "type": "page", "page": { "type": "products", "query": { "category": [ "basmati-rice" ] } } } } ], "price_list": [ { "discount": "", "is_sellable": true, "journey": "standard", "seller_id": 1, "store_id": 3442, "price": { "effective": { "max": 340, "min": 340 }, "marked": { "max": 440, "min": 440 } }, "discount_meta": {} } ], "sizes": [ "OS" ], "store_ids": [ 3442 ], "tags": [ "GROCERIES", "rrl_fc" ], "variants": [] } ]}
| # | Product | Product slug | Rating | Channel | Country of origin | Discount | In stock variant | Item code | Item type | Journey |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | India Gate Mini Mogra-II Basmati Rice 10 kg | india-gate-mini-mogra-ii-basmati-rice-10-kg-mffn6l-7534952 | 0 | 685945f46c8c7aee3f3af605 | India | false | 491165093 | standard | standard | |
| 2 | India Gate Daily Delight Pure Basmati Rice 5 kg | india-gate-daily-delight-pure-basmati-rice-5-kg-mffn77-7536285 | 0 | 685945f46c8c7aee3f3af605 | India | false | 493694870 | standard | standard | |
| 3 | Good Life Rozana Basmati Rice 5 kg | good-life-rozana-basmati-rice-5-kg-mffn5s-7533184 | 0 | 685945f46c8c7aee3f3af605 | India | false | 491551195 | standard | standard | |
| 4 | India Gate Everyday Basmati Rice 5 kg | india-gate-everyday-basmati-rice-5-kg-mffn3n-7528354 | 0 | 685945f46c8c7aee3f3af605 | India | false | 493645835 | standard | standard | |
| 5 | India Gate Rozana Choice Basmati Rice 5 kg | india-gate-rozana-choice-5-kg-mffmup-7509317 | 0 | 685945f46c8c7aee3f3af605 | India | false | 490984316 | standard | standard | |
| 6 | India Gate Mini Mogra/Mogra Delite Basmati Rice 10 kg | india-gate-mini-mogra-basmati-rice-10-kg-mffn7b-7536555 | 0 | 685945f46c8c7aee3f3af605 | India | false | 490507959 | standard | standard | |
| 7 | Daawat Rozana 40 Mini Mogra - II Basmati Rice 10 kg | daawat-rozana-mini-mogra-ii-basmati-rice-10-kg-mffn7z-7538008 | 0 | 685945f46c8c7aee3f3af605 | India | false | 492340086 | standard | standard | |
| 8 | India Gate Rozana Basmati Rice 5 kg | india-gate-rozana-basmati-rice-5-kg-mffmxv-7516068 | 0 | 685945f46c8c7aee3f3af605 | India | false | 490427669 | standard | standard | |
| 9 | Daawat Delight Rice 1 kg | daawat-delight-rice-1-kg-mg0ud9-7651577 | 0 | 685945f46c8c7aee3f3af605 | India | false | 494626648 | standard | standard | |
| 10 | Kohinoor Fest Rozana Basmati Rice 5 kg | kohinoor-fest-rozana-basmati-rice-5-kg-mffndw-7549652 | 0 | 685945f46c8c7aee3f3af605 | India | false | 494626643 | standard | standard |
What you send
The input
object of the request, with every field the endpoint accepts.
- Send a search term that is not empty. A pincode must be a six-digit Indian PIN that does not start with 0; the location can carry a pincode, city and state. If you send a PIN both on its own and inside the location, the two must match.
- The page is JioMart's own page number, starting at 1. The page size, from 1 to 100, caps the rows returned from that page. Use the returned page ID to get the rest of the rows.
- The sort is sent to JioMart as it is. Send a returned page ID back only with the same query, PIN, sort and page size.
| Field | Type | Required | What it does | Example |
|---|---|---|---|---|
| query | string | yes | Search query. | rice |
| 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. | India Gate Mini Mogra-II Basmati Rice 10 kg |
| 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. | india-gate-mini-mogra-ii-basmati-rice-10-kg-mffn6l-7534952 |
| items[].brand.name | string | Product, brand, department, collection or content name as returned for the selected endpoint. | india gate |
| items[].categories[].name | string | Basmati Rice | |
| 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. | 52 |
| items[].categories | array | The product's categories. | 1 records |
| items[].categories[].action | object | 2 fields | |
| items[].categories[].type | string | category | |
| items[].categories[].uid | integer | 2672 | |
| 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. | 7534952 |
| items[].instock_variants.sizes | array | Sizes available. | OS |
| items[].instock_variants.variantId | array | IDs of the variants in stock. | 491165093 |
| items[].item_code | string | JioMart's product code. | 491165093 |
| 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. | kg |
| items[].net-quantity-value | integer | The net quantity, in the unit given. | 10 |
| items[].net_quantity | string | Price per unit of net quantity. | 49.30/kg |
| 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. | 491165093 |
| 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. | NON-RX, seller_3p, 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. | 7,534,952 |
| 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
- Search is national-catalogue data. A returned product, price, sellable value or store ID does not by itself show local quick-commerce stock or delivery to the PIN you sent.
- Send the next-page value back unchanged to continue the same request. A page number picks JioMart's own page, not a position counted from the page size.
- Low-to-high keeps the order JioMart returns, which is not always strictly ascending within or across 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.search", "input": { "query": "rice" }}'
import jsonimport osimport requestspayload = json.loads(r'''{ "capability": "jiomart.products.search", "input": { "query": "rice" }}''')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.search", "input": { "query": "rice" }}),});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
Search JioMart for rice and show the returned products with brand, product ID, selling price, MRP and product slug.
More from the JioMart API
- 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 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 Search API FAQ
The short answers. The docs have the long ones.
How much does the JioMart Products Search 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 query. 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.products.search, 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.