JioMart API & Scraper
JioMart prices, stock and even the catalogue depend on the delivery PIN code, so every call takes one 6-digit PIN code and answers for it.
🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.
`search` returns 12 products per page for a query, category or brand: selling price, MRP, discount percent, unit price per ml, g, L or kg, pack size, brand, category path, whether Reliance Retail (1p) or a marketplace seller (3p) sells it, and its pack-size variants, with filters for brand, category, department, seller type, price and discount, six sort orders and a quick-delivery mode. `product` takes the slug from any search row and returns the full record (EAN, description, key features, images, dimensions, veg or non-veg mark, every catalogue attribute) plus, for each size, the offer JioMart would fill at that PIN code: price, MRP, price per unit, quantity available, seller name, serving store, ship-from PIN code, return policy and manufacturer or importer, or the reason it cannot be delivered, such as Out of Stock. `sellers` lists every seller of one size with cash on delivery and the delivery window, `pincode` lists the stores that deliver to a PIN code with their ETA, and `facets` gives category and brand counts.
What a JioMart field actually contains
Fields that read differently from how they look. Every row was measured against live JioMart responses on 2026-10-14.
| Field | What it holds |
|---|---|
| pincode | The 6-digit PIN code the answer is for. JioMart has no PIN-free price: "amul milk" matched 360 products at 400020 (Mumbai), 353 at 560001 (Bengaluru), 195 at 799001 (Agartala) and 73 at 110001 (Delhi), and the same 5 kg atta cost 269 with MRP 314 in Mumbai and 319 with MRP 358 in Bengaluru. |
| price, mrp, discount_percent | Selling price and maximum retail price in rupees. discount_percent is computed from the two. On 22 product reads whose offer was available (groceries, electronics, fashion, home; Reliance and marketplace sellers), the search-row price and MRP equalled the product offer and the MRP JioMart prints as text ("₹19,900.00 inclusive of all taxes") on 22 of 22. |
| unit_price | JioMart's own price per unit, for example 0.07 per ml or 57.00 per L, kept as the source writes it in unit_price_text. Filled on 82 of 84 grocery rows; electronics and fashion rows have none. |
| seller_type | 1p when Reliance Retail sells the product, 3p for a marketplace seller. The seller's name is on product offers and in sellers: "Reliance Retail Limited" or the marketplace company, for example CASOTEC E-RETAIL PRIVATE LIMITED. |
| offers[].available | Whether that size can be delivered to the PIN code right now. A search row is not a stock signal: 6 of 12 grocery products that search listed with a price were Out of Stock for the same PIN code, and product returns that reason instead of a price. |
| slug | The product's id. Pass it unchanged to product or sellers; 35 of 35 search slugs (24 grocery, 11 other) returned the same product id and name. |
| total, last_page | JioMart's own count of matches and the number of 12-product pages. Pages after last_page are empty. |
Prices do not depend on where the request comes from once the PIN code is fixed: four separate reads of the same 12 products in the same minute had identical prices, MRPs and order. The PIN code is the only location input.
Real request and response JSON
Captured from the indexed primary action, search, on .
{
"method": "POST",
"url": "https://api.reefapi.com/jiomart/v1/search",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"query": "aashirvaad atta",
"pincode": "400020"
}
}{
"ok": true,
"meta": {
"api": "jiomart",
"endpoint": "search",
"mode": "live",
"latency_ms": 1923.5,
"record_count": 12,
"bytes": 102866,
"cache_hit": false,
"pincode": "400020",
"total": 102,
"upstream_requests": 1,
"charged_credits": 2,
"version": "0.1.0",
"request_id": "5d72865e10b8486a",
"queue_ms": 1.1,
"fetched_at": "2026-10-14T18:57:23.959Z"
},
"data": {
"pincode": "400020",
"delivery": "standard",
"total": 102,
"page": 1,
"page_size": 12,
"last_page": 9,
"has_next": true,
"returned": 12,
"dropped_rows": 0,
"results": [
{
"product_id": 132487553,
"slug": "aashirvaad-superior-whole-wheat-mp-atta-5-kg-mr0mye-132487553",
"item_code": "490750661",
"name": "Aashirvaad Superior Whole Wheat MP Atta 5 kg",
"brand": "aashirvaad",
"url": "https://www.jiomart.com/product/aashirvaad-superior-whole-wheat-mp-atta-5-kg-mr0mye-132487553",
"image": "https://cdn1.jiomartjcp.com/v2/catalog-cloud/jiomar/original/images/othe/egurhk/.j/pg/0000000004907506611.jpg.9d2f69429c.jpg",
"image_count": 7,
"price": 269,
"mrp": 314,
"discount_percent": 14,
"currency": "INR",
"unit_price": {
"amount": 53.8,
"per": "kg"
},
"unit_price_text": "53.80/kg",
"net_quantity": 5,
"net_quantity_unit": "kg",
"pack_size": "5 kg",
"sizes": [
"OS"
],
"seller_type": "1p",
"seller_id": 1,
"store_ids": [
3442
],
"sellable": true,
"variants": [
{
"product_id": "[trimmed-depth]",
"slug": "[trimmed-depth]",
"value": "[trimmed-depth]",
"is_available": "[trimmed-depth]"
},
{
"product_id": "[trimmed-depth]",
"slug": "[trimmed-depth]",
"value": "[trimmed-depth]",
"is_available": "[trimmed-depth]"
},
{
"product_id": "[trimmed-depth]",
"slug": "[trimmed-depth]",
"value": "[trimmed-depth]",
"is_available": "[trimmed-depth]"
}
],
"department": {
"name": "Groceries",
"slug": "groceries",
"id": 1
},
"category_l1": {
"name": "Cooking Essentials",
"slug": "cooking-essentials",
"id": 116
},
"category_l2": {
"name": "Atta, Flours & Sooji",
"slug": "atta-flours-sooji",
"id": 323
},
"category_l3": {
"name": "Atta",
"slug": "atta",
"id": 2496
},
"vertical": "GROCERIES",
"country_of_origin": "India",
"food_type": "green_dot",
"is_vegetarian": true,
"max_qty_per_order": 2,
"tags": [
"kirana_1p",
"1p",
"GROCERIES"
],
"journey": "standard",
"rank": 1
},
{
"product_id": 132487643,
"slug": "aashirvaad-superior-whole-wheat-mp-atta-1-kg-mr0mz2-132487643",
"item_code": "490750659",
"name": "Aashirvaad Superior Whole Wheat MP Atta 1 kg",
"brand": "aashirvaad",
"url": "https://www.jiomart.com/product/aashirvaad-superior-whole-wheat-mp-atta-1-kg-mr0mz2-132487643",
"image": "https://cdn1.jiomartjcp.com/v2/catalog-cloud/jiomar/original/images/othe/egurhk/.j/pg/0000000004907506591.jpg.89d8b131dc.jpg",
"image_count": 8,
"price": 63,
"mrp": 68,
"discount_percent": 7,
"currency": "INR",
"unit_price": {
"amount": 63,
"per": "kg"
},
"unit_price_text": "63.00/kg",
"net_quantity": 1,
"net_quantity_unit": "kg",
"pack_size": "1 kg",
"sizes": [
"OS"
],
"seller_type": "1p",
"seller_id": 1,
"store_ids": [
3442
],
"sellable": true,
"variants": [
{
"product_id": "[trimmed-depth]",
"slug": "[trimmed-depth]",
"value": "[trimmed-depth]",
"is_available": "[trimmed-depth]"
},
{
"product_id": "[trimmed-depth]",
"slug": "[trimmed-depth]",
"value": "[trimmed-depth]",
"is_available": "[trimmed-depth]"
},
{
"product_id": "[trimmed-depth]",
"slug": "[trimmed-depth]",
"value": "[trimmed-depth]",
"is_available": "[trimmed-depth]"
}
],
"department": {
"name": "Groceries",
"slug": "groceries",
"id": 1
},
"category_l1": {
"name": "Cooking Essentials",
"slug": "cooking-essentials",
"id": 116
},
"category_l2": {
"name": "Atta, Flours & Sooji",
"slug": "atta-flours-sooji",
"id": 323
},
"category_l3": {
"name": "Atta",
"slug": "atta",
"id": 2496
},
"vertical": "GROCERIES",
"country_of_origin": "India",
"food_type": "green_dot",
"is_vegetarian": true,
"max_qty_per_order": 4,
"tags": [
"QC",
"GROCERIES",
"NON-RX"
],
"journey": "standard",
"rank": 2
},
{
"product_id": 132486899,
"slug": "aashirvaad-superior-whole-wheat-mp-atta-10-kg-mr0mtz-132486899",
"item_code": "490750662",
"name": "Aashirvaad Superior Whole Wheat MP Atta 10 kg",
"brand": "aashirvaad",
"url": "https://www.jiomart.com/product/aashirvaad-superior-whole-wheat-mp-atta-10-kg-mr0mtz-132486899",
"image": "https://cdn1.jiomartjcp.com/v2/catalog-cloud/jiomar/original/images/othe/egurhk/.j/pg/0000000004907506621.jpg.fe38adf44e.jpg",
"image_count": 8,
"price": 535,
"mrp": 612,
"discount_percent": 13,
"currency": "INR",
"unit_price": {
"amount": 53.5,
"per": "kg"
},
"unit_price_text": "53.50/kg",
"net_quantity": 10,
"net_quantity_unit": "kg",
"pack_size": "10 kg",
"sizes": [
"OS"
],
"seller_type": "1p",
"seller_id": 1,
"store_ids": [
3442
],
"sellable": true,
"variants": [
{
"product_id": "[trimmed-depth]",
"slug": "[trimmed-depth]",
"value": "[trimmed-depth]",
"is_available": "[trimmed-depth]"
},
{
"product_id": "[trimmed-depth]",
"slug": "[trimmed-depth]",
"value": "[trimmed-depth]",
"is_available": "[trimmed-depth]"
},
{
"product_id": "[trimmed-depth]",
"slug": "[trimmed-depth]",
"value": "[trimmed-depth]",
"is_available": "[trimmed-depth]"
}
],
"department": {
"name": "Groceries",
"slug": "groceries",
"id": 1
},
"category_l1": {
"name": "Cooking Essentials",
"slug": "cooking-essentials",
"id": 116
},
"category_l2": {
"name": "Atta, Flours & Sooji",
"slug": "atta-flours-sooji",
"id": 323
},
"category_l3": {
"name": "Atta",
"slug": "atta",
"id": 2496
},
"vertical": "GROCERIES",
"country_of_origin": "India",
"food_type": "green_dot",
"is_vegetarian": true,
"max_qty_per_order": 1,
"tags": [
"rrl_fc",
"NON-RX",
"kirana_1p"
],
"journey": "standard",
"rank": 3
}
]
}
}What the JioMart API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| search | Search JioMart's catalogue AS SEEN FROM ONE PIN CODE: 12 products per page with selling price, MRP, discount %, unit price (per ml / g / L / kg), pack size, brand, category path (department > L1 > L2 > L3), seller type (Reliance = 1p or marketplace = 3p), the serving store ids, in-stock flag and pack-size variants. Filters: brand, category, department (with a query), seller type, price range, discount range; six sort orders; delivery=quick limits to what the pin's local stores deliver in minutes. `pincode` and at least one of `query` / `category` / `brand` are required. | Pricing teams call search to search JioMart's catalogue AS SEEN FROM ONE PIN CODE. | pincode, query, category, brand, department, ... |
| product | One JioMart product at one PIN code, by the `slug` a search row returns (or its jiomart.com/product/ URL): full record (EAN, brand, description, key features, images, category path, pack size, net quantity, dimensions, veg/non-veg mark, max quantity per order, rating count, every catalogue attribute) + pack-size variants + for EACH size the offer the site would fill at that pin: selling price, MRP, discount, price per unit, quantity available, seller (Reliance Retail or the marketplace seller's name), serving store, ship-from pin and distance, return policy, manufacturer / importer / marketer — or the source's own reason when the size cannot be delivered there (e.g. Out of Stock). | Marketplace operators call product to get one JioMart product at one PIN code, by the `slug` a search row. | pincode, slug, size |
| sellers | Every seller offering one size of a product at one PIN code: seller name and whether it is Reliance Retail, serving store, price, MRP, discount, quantity, cash on delivery, the delivery window promised to that pin, ship-from pin. | Catalog enrichment teams call sellers to get every seller offering one size of a product at one PIN code. | pincode, size, slug, page |
| pincode | Which JioMart stores deliver to a PIN code and how fast: per store and department (Groceries, Electronics...) the delivery journey (quick commerce / standard), the promised window and message ('Delivery in 31 mins'), ETA minutes, distance, store pin/city/coordinates, opening hours, whether it is accepting orders, minimum basket value. An empty list = no store serves the pin. | Retail analysts call pincode to get which JioMart stores deliver to a PIN code and how fast. | pincode |
| facets | The category tree and brand list WITH PRODUCT COUNTS at a PIN code, for a query or a category (or the whole catalogue): departments, L1/L2/L3 categories (slugs for search.category), up to 500 brands, discount bands, price bands, the price span, country of origin, and category-specific facets (capacity, colour...). | Pricing teams call facets to get the category tree and brand list WITH PRODUCT COUNTS at a PIN code, for a query or a category…. | pincode, query, category, delivery |
Call search from your stack
curl -X POST https://api.reefapi.com/jiomart/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"aashirvaad atta","pincode":"400020"}'import requests
r = requests.post(
"https://api.reefapi.com/jiomart/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "aashirvaad atta",
"pincode": "400020"
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/jiomart/v1/search", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"query": "aashirvaad atta",
"pincode": "400020"
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.jiomart.search with {"query":"aashirvaad atta","pincode":"400020"}.Who uses this API and why
- Track grocery prices, MRP and discounts for a basket of products across Indian cities by PIN code.
- Compare what Reliance Retail charges against marketplace sellers for the same product.
- Check whether a product can be delivered to a PIN code, from which store and how fast.
- Monitor quick-commerce assortment and pricing in the neighbourhoods you care about.
- Build a product database with EAN, brand, pack size, category path and manufacturer.
Questions developers ask before integrating
Do I need a JioMart account?
No. Everything is read logged out: the prices, stock and delivery times are the ones JioMart shows any visitor who entered that PIN code.
Why is pincode required?
Because JioMart has no price without one. The catalogue, the price, the MRP and the stock all change with the PIN code, so the API never guesses one for you and echoes the PIN code it used.
Which filters are there, and do they work?
Each was checked against the unfiltered count in the same run. For "milk" at 400020 (about 4,925 products): brand amul 57, category milk 18, department electronics 421, seller type 1p 565 and 3p 4,355, price 100 to 200 rupees 825, discount 20 to 40 percent 1,047, quick delivery 337. Brand is case-sensitive: amul matches, Amul does not.
What is quick delivery?
JioMart delivers part of its range from local stores in about 30 minutes. delivery=quick limits search to what those stores deliver to the PIN code, and pincode shows the stores with their delivery message, for example "Delivery in 31 mins".
Can I page through all results?
Yes. JioMart returns 12 products per page; use page up to last_page. For "milk" that was 411 pages, the last one with 7 products.
Is the price filter exact?
Almost. JioMart's own price filter occasionally lets a marketplace product outside the range through (1 in 12 rows in our checks); the answer counts those rows in rows_outside_price_filter.
Do you return reviews?
No. JioMart's logged-out pages publish no review text, and the rating count was 0 on every product we read.
How fresh is the data?
Every call reads JioMart live; nothing is cached. In our two runs a search took 2.1 and 1.8 seconds at the median, a product 3.9 and 3.4 seconds, a seller list 1.3 seconds and a PIN code lookup 1.0 and 1.1 seconds.
What is the JioMart API?
JioMart API is a ReefAPI endpoint group for grocery and marketplace prices, mrp, discounts, stock, sellers and delivery stores for any indian pin code. It returns live JSON through POST requests under /jiomart/v1.
Is the JioMart API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. JioMart calls use the same shared credit balance as every other ReefAPI engine.
Do I need a JioMart login or account?
No login to JioMart is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the JioMart data?
The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the JioMart API use?
JioMart actions currently cost 1-3 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.
Can I call JioMart from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call jiomart actions with the same key, credit pool and JSON envelope used by normal REST requests.