Zepto Multi-location Catalog API
Send several locations to collect a catalog sample from each. Keep the stores separate when reviewing differences in the listed range.
- 1 credit per call
- Failed calls are free
- Updated
- zepto.catalog.multi_location
{ "captured_at": "2026-10-04T12:01:49.282129324Z", "results": [ { "count": 2, "cursor": "eyJ2IjoyLCJzY29wZSI6ImNkNTUxYTJiYmQ5ZDE4M2RiYWY4ZDNhZDgxMTk2MDYzYjUzYzBkNzY4ZDMwZjJjZjAzZmQxNzdiZjAxZDQ1MGYiLCJzIjowLCJwIjoxLCJvIjoyLCJjb2x…", "has_more": true, "location": { "eta_minutes": 11, "eta_serviceable": true, "latitude": 12.9967012, "longitude": 77.758197, "pincode": "560067", "serviceable": true, "store_id": "e58fff62-7695-44c2-aba0-6bc96074bc64", "secondary_store_ids": [ "0059ff6a-7eb0-477a-a7f5-69256f2c444b" ], "store_ids": [ "e58fff62-7695-44c2-aba0-6bc96074bc64", "0059ff6a-7eb0-477a-a7f5-69256f2c444b" ] }, "results": [ { "name": "Relish Chicken Curry Cut Without Skin", "available_quantity": 5, "brand": "Relish", "brand_id": "52316c53-6fb3-4437-b847-42c4adc58ab0", "category_id": "4654bd8a-fb30-4ee1-ab30-4bf581b6c6e3", "category_name": "Meats, Fish & Eggs", "country_of_origin": "India", "description": "This product is halal certified.\nTender, flavorful, and convenient. Relish chicken curry cut is expertly processed to deliver the perfect b…", "discount_amount_paise": 5000, "discount_percent": 27, "discounted_selling_price_paise": 13500, "formatted_pack_size": "1 pack (450 g)", "image_url": "https://cdn.zeptonow.com/production/tr:w-600,ar-1000-1000,pr-true,f-auto,q-80/cms/product_variant/baecf45e-ec41-407f-86e0-427fda9e4c6d.jpeg", "in_stock": true, "is_active": true, "is_primary": true, "l3_category_id": "b234e4ff-b9be-48d8-9103-d2f4c55fca66", "manufacturer_name": "Relish", "max_allowed_quantity": 5, "mrp_paise": 18500, "pack_size": 450, "primary_subcategory_id": "95157c69-f03e-48e5-ae2f-d947af34397f", "product_id": "0c429254-2294-4eee-a1ce-a45cf4670d0b", "product_type": "SELLABLESKU", "product_url": "https://www.zepto.com/pn/relish-chicken-curry-cut-without-skin/pvid/8ddd4d0f-3ea7-410b-936e-cf35ddf70b1d", "product_variant_id": "8ddd4d0f-3ea7-410b-936e-cf35ddf70b1d", "quantity": 5, "rank": 1, "rating_average": 4.2, "selling_price_paise": 13500, "shelf_life_display": "5 days", "shelf_life_hours": 120, "storage_instructions": "Odor, Vacuum packaging may produce a naturally strong meat odor upon opening. To eliminate it, leave the packet open at room temperature fo…", "store_id": "e58fff62-7695-44c2-aba0-6bc96074bc64", "store_product_id": "da3bf515-92c8-4f34-b691-84f4aa213478", "subcategory_name": "Chicken", "unit_of_measure": "GRAM", "weight_in_gms": 500, "badges": [ { "name": "Fresh", "type": "ATTRIBUTE" } ], "category_path": [ "Meats, Fish & Eggs", "Chicken" ], "how_to_use": [ "Cut open the packet, transfer the meat into a bowl, rinse briefly, and proceed to cook.\nReturn/Refund Policy: For a damaged, rotten or inco…" ], "image_urls": [ "https://cdn.zeptonow.com/production/tr:w-600,ar-1000-1000,pr-true,f-auto,q-80/cms/product_variant/baecf45e-ec41-407f-86e0-427fda9e4c6d.jpeg" ] }, { "name": "Relish Chicken Breast Boneless", "available_quantity": 5, "brand": "Relish", "brand_id": "52316c53-6fb3-4437-b847-42c4adc58ab0", "category_id": "4654bd8a-fb30-4ee1-ab30-4bf581b6c6e3", "category_name": "Meats, Fish & Eggs", "country_of_origin": "India", "description": "This product is halal certified.\nLean, tender, and versatile. Experience the succulent taste of our premium boneless chicken breast.\nThis p…", "discount_amount_paise": 6000, "discount_percent": 22, "discounted_selling_price_paise": 20900, "formatted_pack_size": "1 pack (450 g)", "image_url": "https://cdn.zeptonow.com/production/tr:w-600,ar-1000-1000,pr-true,f-auto,q-80/cms/product_variant/1a8f51d3-dccd-4102-8453-e87d276fa194.jpeg", "in_stock": true, "is_active": true, "is_primary": true, "l3_category_id": "8ed03610-26b3-46f2-a14c-a8cd5fd6c84e", "manufacturer_name": "Relish", "max_allowed_quantity": 5, "mrp_paise": 26900, "pack_size": 450, "primary_subcategory_id": "95157c69-f03e-48e5-ae2f-d947af34397f", "product_id": "18a3d95b-7788-4158-ac08-727b0fa830e5", "product_type": "SELLABLESKU", "product_url": "https://www.zepto.com/pn/relish-chicken-breast-boneless/pvid/48fab541-c58c-4e40-8796-19cc492f1095", "product_variant_id": "48fab541-c58c-4e40-8796-19cc492f1095", "quantity": 5, "rank": 2, "rating_average": 4.5, "selling_price_paise": 20900, "shelf_life_display": "5 days", "shelf_life_hours": 120, "storage_instructions": "Odor, Vacuum packaging may produce a naturally strong meat odor upon opening. To eliminate it, leave the packet open at room temperature fo…", "store_id": "e58fff62-7695-44c2-aba0-6bc96074bc64", "store_product_id": "6637ffac-186f-47fe-819f-33af06fc47b9", "subcategory_name": "Chicken", "unit_of_measure": "GRAM", "weight_in_gms": 500, "badges": [ { "name": "Fresh", "type": "ATTRIBUTE" } ], "category_path": [ "Meats, Fish & Eggs", "Chicken" ], "how_to_use": [ "Cut open the packet, transfer the meat into a bowl, rinse briefly, and proceed to cook.\nReturn/Refund Policy: For a damaged, rotten or inco…" ], "image_urls": [ "https://cdn.zeptonow.com/production/tr:w-600,ar-1000-1000,pr-true,f-auto,q-80/cms/product_variant/1a8f51d3-dccd-4102-8453-e87d276fa194.jpeg" ] } ] }, { "count": 2, "cursor": "eyJ2IjoyLCJzY29wZSI6IjI4YTRiZWQ5Zjg1YWE0YmZkMWMwOTFmMTFhMTliYjUxMTEyNDFjNTMzNGM1OGNlM2NmMGQyY2E1NTUwZTJlOTUiLCJzIjowLCJwIjoxLCJvIjoyLCJjb2x…", "has_more": true, "location": { "eta_minutes": 10, "eta_serviceable": true, "latitude": 12.9716, "longitude": 77.5946, "serviceable": true, "store_id": "b1403534-cd6b-49d0-a7cd-ce20e6497768", "secondary_store_ids": [ "843e630a-7896-462d-b7cf-712140483ed3" ], "store_ids": [ "b1403534-cd6b-49d0-a7cd-ce20e6497768", "843e630a-7896-462d-b7cf-712140483ed3" ] }, "results": [ { "name": "Orange Nagpur", "available_quantity": 6, "brand": "Unbranded", "brand_id": "d69ba762-dfca-47f4-8e52-d09a6d1ffbd0", "category_id": "64374cfe-d06f-4a01-898e-c07c46462c36", "category_name": "Fruits & Vegetables", "country_of_origin": "India", "description": null, "discount_amount_paise": 5900, "discount_percent": 49, "discounted_selling_price_paise": 6000, "formatted_pack_size": "500 g (4 - 5 pcs)", "image_url": "https://cdn.zeptonow.com/production/tr:w-600,ar-1000-1000,pr-true,f-auto,q-80/cms/product_variant/407ff6db-6ed7-42e7-971f-a194a5de7286.jpeg", "in_stock": true, "is_active": true, "is_primary": true, "l3_category_id": "5b58f67d-1e93-4715-ab41-b090a9c82a82", "max_allowed_quantity": 6, "mrp_paise": 11900, "pack_size": 500, "primary_subcategory_id": "09e63c15-e5f7-4712-9ff8-513250b79942", "product_id": "152f9dde-51eb-4bf2-9967-3091ca758328", "product_type": "SELLABLESKU", "product_url": "https://www.zepto.com/pn/orange-nagpur/pvid/b208fa7b-1d28-4b3a-a821-a17c06f56ef1", "product_variant_id": "b208fa7b-1d28-4b3a-a821-a17c06f56ef1", "quantity": 6, "rank": 1, "selling_price_paise": 6000, "shelf_life_display": "4 days", "shelf_life_hours": 96, "store_id": "b1403534-cd6b-49d0-a7cd-ce20e6497768", "store_product_id": "9fcb8d39-d3b0-556f-a963-0640a66a4fdb", "subcategory_name": "All", "unit_of_measure": "GRAM", "weight_in_gms": 500, "category_path": [ "Fruits & Vegetables", "All" ], "image_urls": [ "https://cdn.zeptonow.com/production/tr:w-600,ar-1000-1000,pr-true,f-auto,q-80/cms/product_variant/407ff6db-6ed7-42e7-971f-a194a5de7286.jpeg" ] }, { "name": "Custard Apple Semi Ripe", "available_quantity": 3, "brand": "Fruits", "brand_id": "d396c794-de67-421c-9af1-dc36df2c2471", "category_id": "64374cfe-d06f-4a01-898e-c07c46462c36", "category_name": "Fruits & Vegetables", "country_of_origin": "India", "description": "Custard apple is a tropical fruit that grows mostly in tropical climates. The fruits are heart-shaped with light green exterior and smooth …", "discount_amount_paise": 8300, "discount_percent": 49, "discounted_selling_price_paise": 8400, "formatted_pack_size": "2 pcs (360 - 450 g)", "image_url": "https://cdn.zeptonow.com/production/tr:w-600,ar-1000-1000,pr-true,f-auto,q-80/cms/product_variant/fa6acfce-a598-4f3e-aa28-eb94df49d743.png", "in_stock": true, "is_active": true, "is_primary": true, "l3_category_id": "5942b588-81c1-4195-afca-f776c8c4c094", "max_allowed_quantity": 6, "mrp_paise": 16700, "pack_size": 2, "primary_subcategory_id": "09e63c15-e5f7-4712-9ff8-513250b79942", "product_id": "31e25f4a-c334-4c8a-acce-10a6a0677aed", "product_type": "SELLABLESKU", "product_url": "https://www.zepto.com/pn/custard-apple-semi-ripe/pvid/b5cb2914-895d-4b3e-86d0-9bd9f9234428", "product_variant_id": "b5cb2914-895d-4b3e-86d0-9bd9f9234428", "quantity": 3, "rank": 2, "selling_price_paise": 8400, "shelf_life_display": "4 days", "shelf_life_hours": 96, "store_id": "b1403534-cd6b-49d0-a7cd-ce20e6497768", "store_product_id": "6dd94903-3fbd-5389-81a4-1b863a7eee50", "subcategory_name": "All", "unit_of_measure": "PIECE", "weight_in_gms": 58, "badges": [ { "name": "Product Discount", "type": "DISCOUNT" } ], "category_path": [ "Fruits & Vegetables", "All" ], "how_to_use": [ "Cut the fruit in half, discard the seeds, and scoop out the flesh. Custard apple is used to make delicious, sweet dishes such as firni, rab…" ], "image_urls": [ "https://cdn.zeptonow.com/production/tr:w-600,ar-1000-1000,pr-true,f-auto,q-80/cms/product_variant/fa6acfce-a598-4f3e-aa28-eb94df49d743.png" ] } ] } ]}
| # | Products returned | More traversal | Cursor |
|---|---|---|---|
| 1 | 2 | true | eyJ2IjoyLCJzY29wZSI6ImNkNTUxYTJiYmQ5ZDE4M2RiYWY4ZDNhZDgxMTk2MDY… |
| 2 | 2 | true | eyJ2IjoyLCJzY29wZSI6IjI4YTRiZWQ5Zjg1YWE0YmZkMWMwOTFmMTFhMTliYjU… |
What you send
The input
object of the request, with every field the endpoint accepts.
- Send 1 to 10 locations. Give each location either a six-digit pincode or latitude and longitude together.
- Ask for 1 to 500 products per place, from 1 to 100 pages.
| Field | Type | Required | What it does | Example |
|---|---|---|---|---|
| locations | array<object> | yes | […] | |
| limit | integer | no | Maximum number of results to return. From 1 to 500. Default: 100. |
2 |
| max_pages | integer | no | Maximum number of result pages to fetch. From 1 to 100. Default: 20. |
1 |
Fields it returns
What each record in the response holds, with the values from the sample above.
| Field | Type | What it is | Example |
|---|---|---|---|
| results[].count | integer | Number of products returned for this delivery context. | 2 |
| results[].has_more | boolean | Whether catalog traversal can continue; this does not certify a complete store snapshot. | true |
| results[].results[].name | string | The product name. | Relish Chicken Curry Cut Without Skin |
| results[].location | object | The location the results were read for. | 9 fields |
| results[].cursor | string | Send it back to get the next page. | eyJ2IjoyLCJzY29wZSI6ImNkNTUxYTJiYmQ5ZDE4M2RiYWY4ZDNhZDgxMTk2MDY… |
| results[].location.eta_minutes | integer | Zepto's delivery estimate in minutes, when it gives one. | 11 |
| results[].location.eta_serviceable | boolean | Whether Zepto delivers to this location. | true |
| results[].location.latitude | number | Latitude of the resolved or requested delivery point. | 13.0 |
| results[].location.longitude | number | Longitude of the resolved or requested delivery point. | 77.76 |
| results[].location.pincode | string | Pincode retained in the resolved location, when supplied and returned. | 560067 |
| results[].location.secondary_store_ids | array | Backup stores serving the location. | 0059ff6a-7eb0-477a-a7f5-69256f2c444b |
| results[].location.serviceable | boolean | The endpoint’s serviceability signal; location coverage and delivery-estimate availability are separate checks. | true |
| results[].location.store_id | string | Store attached to this product or delivery context. | e58fff62-7695-44c2-aba0-6bc96074bc64 |
| results[].location.store_ids | array | Zepto stores serving the location. | e58fff62-7695-44c2-aba0-6bc96074bc64, 0059ff6a-7eb0-477a-a7f5-6… |
| results[].results | array | The results returned. | 2 records |
| results[].results[].product_url | string | Link to the product on Zepto. | https://www.zepto.com/pn/relish-chicken-curry-cut-without-skin/… |
| results[].results[].is_active | boolean | Whether the listing is active on Zepto. | true |
| results[].results[].selling_price_paise | integer | The selling price, in paise. | 13,500 |
| results[].results[].product_id | string | Zepto's ID for the product. | 0c429254-2294-4eee-a1ce-a45cf4670d0b |
| results[].results[].category_name | string | The product's category name. | Meats, Fish & Eggs |
| results[].results[].badges | array | Labels shown on the product, such as Sponsored. | 1 records |
| results[].results[].primary_subcategory_id | string | Zepto's ID for the product's main subcategory. | 95157c69-f03e-48e5-ae2f-d947af34397f |
| results[].results[].is_primary | boolean | Whether Zepto marks this as the main listing. | true |
| results[].results[].image_urls | array | Links to the product images. | https://cdn.zeptonow.com/production/tr:w-600,ar-1000-1000,pr-tr… |
| results[].results[].store_id | string | Zepto's ID for the store selling the product. | e58fff62-7695-44c2-aba0-6bc96074bc64 |
| results[].results[].product_variant_id | string | Zepto's ID for this exact pack. | 8ddd4d0f-3ea7-410b-936e-cf35ddf70b1d |
| results[].results[].subcategory_name | string | The product's subcategory name. | Chicken |
| results[].results[].image_url | string | Link to the main product image. | https://cdn.zeptonow.com/production/tr:w-600,ar-1000-1000,pr-tr… |
| results[].results[].formatted_pack_size | string | The pack size as Zepto shows it. | 1 pack (450 g) |
| results[].results[].brand | string | The brand name. | Relish |
| results[].results[].rank | integer | Position in this location's list. | 1 |
| results[].results[].shelf_life_display | string | Shelf life in plain form, such as 5 days. | 5 days |
| results[].results[].l3_category_id | string | Zepto's ID for the product's third-level category. | b234e4ff-b9be-48d8-9103-d2f4c55fca66 |
| results[].results[].category_id | string | Zepto's ID for the product's category. | 4654bd8a-fb30-4ee1-ab30-4bf581b6c6e3 |
| results[].results[].pack_size | integer | The pack size, in the unit given. | 450 |
| results[].results[].quantity | integer | Units the store has, as Zepto reports it. | 5 |
| results[].results[].available_quantity | integer | How many units you can buy at this check. | 5 |
| results[].results[].brand_id | string | Zepto's ID for the brand. | 52316c53-6fb3-4437-b847-42c4adc58ab0 |
| results[].results[].description | string | The product description, when Zepto gives one. | This product is halal certified. Tender, flavorful, and conveni… |
| results[].results[].mrp_paise | integer | The MRP, in paise. | 18,500 |
| results[].results[].rating_average | number | The average customer rating. | 4.2 |
| results[].results[].max_allowed_quantity | integer | The most units one order can hold. | 5 |
| results[].results[].discount_percent | integer | The discount off the MRP, as a percentage. | 27 |
| results[].results[].in_stock | boolean | Whether the product is in stock at this store. | true |
| results[].results[].manufacturer_name | string | Who makes the product. | Relish |
| results[].results[].store_product_id | string | Zepto's ID for the product at this store. | da3bf515-92c8-4f34-b691-84f4aa213478 |
| results[].results[].category_path | array | Where the product sits in Zepto's categories. | Meats, Fish & Eggs, Chicken |
| results[].results[].country_of_origin | string | Where the product comes from. | India |
| results[].results[].weight_in_gms | integer | The product's weight in grams, as Zepto lists it. | 500 |
| results[].results[].shelf_life_hours | integer | Shelf life in hours. | 120 |
| results[].results[].product_type | string | Zepto's product type label, such as SELLABLESKU. | SELLABLESKU |
| results[].results[].discounted_selling_price_paise | integer | The offer price shown, in paise. | 13,500 |
| results[].results[].storage_instructions | string | How to store the product. | Odor, Vacuum packaging may produce a naturally strong meat odor… |
| results[].results[].how_to_use | array | How to use the product. | Cut open the packet, transfer the meat into a bowl, rinse brief… |
| results[].results[].unit_of_measure | string | The pack's unit, such as GRAM. | GRAM |
| results[].results[].discount_amount_paise | integer | The discount off the MRP, in paise. | 5000 |
| captured_at | string | When this result was collected. | 2026-10-04T12:01:49.282129324Z |
| results | array | The results returned. | 2 records |
What this endpoint covers
- Results are grouped by place, each with its count, products and whether more follow. Keep each place's rows apart when comparing range or price.
- Part of a catalogue is not the full national catalogue or a frozen copy of the stock across places.
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": "zepto.catalog.multi_location", "input": { "limit": 2, "locations": [ { "pincode": "560067" }, { "latitude": 12.9716, "longitude": 77.5946 } ], "max_pages": 1 }}'
import jsonimport osimport requestspayload = json.loads(r'''{ "capability": "zepto.catalog.multi_location", "input": { "limit": 2, "locations": [ { "pincode": "560067" }, { "latitude": 12.9716, "longitude": 77.5946 } ], "max_pages": 1 }}''')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": "zepto.catalog.multi_location", "input": { "limit": 2, "locations": [ { "pincode": "560067" }, { "latitude": 12.9716, "longitude": 77.5946 } ], "max_pages": 1 }}),});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 Zepto multi-location catalog. Tell me what it costs before you run it, then show the results as a table.
More from the Zepto API
- Zepto Products Search API1 credit
- Zepto Product API1 credit
- Zepto Categories API1 credit
- Zepto Category Products API1 credit
- Zepto Store Catalog API1 credit
- Zepto Ads API1 credit
- Zepto Multi-location Search API1 credit
- Zepto Resolve Location API1 credit
- Zepto ETA API1 credit
- Zepto Place Autocomplete API1 credit
- Zepto Place Details API1 credit
- Zepto Resolve Place API1 credit
- Zepto Summarize Search Facets API1 credit
- Zepto Health Check API1 credit
The same data from other platforms
Zepto Multi-location Catalog API FAQ
The short answers. The docs have the long ones.
How much does the Zepto Multi-location Catalog 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 locations. The input fields below list every option with its type and limits.
Do I need a Zepto login?
No. It reads public Zepto data; nothing runs on your account.
Can my AI agent call it?
Yes, over MCP: the agent finds zepto.catalog.multi_location, checks its price and runs it with the same credits as the REST API.
Your first Zepto call is free.
Up to 100 free credits to start, no card needed.