Zepto Product
zepto.product
Use a Zepto product link or variant ID with a location to check that pack’s price, stock and published product details.
At a glance
- Endpoint ID
zepto.product- Price
- 3 credits per call; failed calls are free
- Runs for up to
- 180 seconds
Request
Send the endpoint ID as capability and its fields as input. Set UPSCRAPE_API_KEY to your key first.
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.product", "input": { "url": "https://www.zepto.com/pn/tender-coconut/pvid/b9fbf0e7-de2d-4a89-ae74-b12a7c0ab236" }}'
import jsonimport osimport requestspayload = json.loads(r'''{ "capability": "zepto.product", "input": { "url": "https://www.zepto.com/pn/tender-coconut/pvid/b9fbf0e7-de2d-4a89-ae74-b12a7c0ab236" }}''')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.product", "input": { "url": "https://www.zepto.com/pn/tender-coconut/pvid/b9fbf0e7-de2d-4a89-ae74-b12a7c0ab236" }}),});if (!response.ok) { throw new Error(`Upscrape request failed: ${response.status}`);}console.log(JSON.stringify(await response.json(), null, 2));
Input
- Send the product's variant ID in pvid, or a Zepto or Zeptonow product link. A copied link works without https://, and tracking codes or a # part after it do not change which product it is. If you send both, they must point to the same product.
- To check the product at one place, send a store ID, a six-digit pincode, or latitude and longitude together; not a pincode and coordinates at once.
| Field | Type | Required | What it does | Example |
|---|---|---|---|---|
latitude |
number | one of | Latitude for location-based store resolution. From -90 to 90. | |
longitude |
number | one of | Longitude for location-based store resolution. From -180 to 180. | |
pincode |
string | one of | Six-digit Indian pincode. When provided, Upscrape resolves coordinates and the Zepto delivery store automatically. | |
pvid |
string | no | Zepto product variant ID. | |
store_id |
string | no | Zepto store ID. Defaults to the public Bangalore sample store. | |
url |
string | no | Direct URL to a Zepto product page. | https://www.zepto.com/pn/tender-coconut/pvid/b9… |
Response
A finished call answers with HTTP 200; the data is in results[0].data, and billing.credits_charged is what it cost. A call still running after the wait answers 202: see jobs and results.
This is results[0].data from a real run:
{ "captured_at": "2026-10-04T11:58:10.521452783Z", "context": { "source": "default_store", "store_id": "b4dc8d65-ed2e-4142-81b6-373982b13500" }, "product": { "name": "Tender Coconut", "available_quantity": 9, "brand": "Fruits", "brand_id": "d396c794-de67-421c-9af1-dc36df2c2471", "country_of_origin": "India", "description": "The water of a tender coconut is nothing, but the endosperm of the coconut and it is one of the most nutritious beverages available to us. …", "discount_percent": 54, "discounted_selling_price_paise": 7700, "formatted_pack_size": "1 pc", "image_url": "https://cdn.zeptonow.com/production/tr:w-600,ar-1000-1000,pr-true,f-auto,q-80/cms/product_variant/c3a49c51-d6bd-4298-8af4-092a10bcd4c3.jpeg", "in_stock": true, "is_active": true, "l3_category_id": "464cd640-d308-418e-9ad2-37e3973e511d", "max_allowed_quantity": 9, "mrp_paise": 17000, "pack_size": 1, "product_id": "29c55962-65c9-4a04-87fc-406edce13b27", "product_url": "https://www.zepto.com/pn/tender-coconut/pvid/b9fbf0e7-de2d-4a89-ae74-b12a7c0ab236", "product_variant_id": "b9fbf0e7-de2d-4a89-ae74-b12a7c0ab236", "quantity": 9, "shelf_life_display": "3 days", "shelf_life_hours": 72, "store_product_id": "ff391715-6e8b-5a21-9caa-6cd7df7ccc02", "unit_of_measure": "PIECE", "weight_in_gms": 58, "how_to_use": [ "Tender coconut flesh can be used for ice creams." ], "image_urls": [ "https://cdn.zeptonow.com/production/tr:w-600,ar-1000-1000,pr-true,f-auto,q-80/cms/product_variant/c3a49c51-d6bd-4298-8af4-092a10bcd4c3.jpeg", "https://cdn.zeptonow.com/production/tr:w-600,ar-1000-1000,pr-true,f-auto,q-80/cms/product_variant/038d5d99-2081-46d2-89aa-14f34d3e77bb.jpeg" ] }}
Fields
| Field | Type | What it is | Example |
|---|---|---|---|
captured_at |
string | When this result was collected. | 2026-10-04T11:58:10.521452783Z |
context |
object | How the location was set for these results. | 2 fields |
context.source |
string | How the location was found. | default_store |
context.store_id |
string | Store attached to this product or delivery context. | b4dc8d65-ed2e-4142-81b6-373982b13500 |
product |
object | The product record. | 27 fields |
product.available_quantity |
integer | Quantity Zepto reports at this check; keep it apart from pack size and purchase limits. | 9 |
product.brand |
string | Brand attached to the product listing. | Fruits |
product.brand_id |
string | Zepto's ID for the brand. | d396c794-de67-421c-9af1-dc36df2c2471 |
product.country_of_origin |
string | Where the product comes from. | India |
product.description |
string | Suggested public place and its area. | The water of a tender coconut is nothing, but the endosperm of … |
product.discount_percent |
integer | The discount, as a percentage. | 54 |
product.discounted_selling_price_paise |
integer | Displayed offer price in integer paise; divide by 100 for rupees. | 7700 |
product.formatted_pack_size |
string | Pack description returned for this variant. | 1 pc |
product.how_to_use |
array | How to use the product. | Tender coconut flesh can be used for ice creams. |
product.image_url |
string | Image URL published with the placement. | https://cdn.zeptonow.com/production/tr:w-600,ar-1000-1000,pr-tr… |
product.image_urls |
array | Links to the product images. | https://cdn.zeptonow.com/production/tr:w-600,ar-1000-1000,pr-tr… |
product.in_stock |
boolean | Explicit stock flag for the selected store, when returned. | true |
product.is_active |
boolean | Whether the listing is active. | true |
product.l3_category_id |
string | Zepto's ID for the product's third-level category. | 464cd640-d308-418e-9ad2-37e3973e511d |
product.max_allowed_quantity |
integer | The most of this product one order can hold. | 9 |
product.mrp_paise |
integer | MRP in integer paise; divide by 100 for rupees. | 17,000 |
product.name |
string | Product name returned by Zepto. | Tender Coconut |
product.pack_size |
integer | The pack size, in the unit given. | 1 |
product.product_id |
string | Zepto's product ID. | 29c55962-65c9-4a04-87fc-406edce13b27 |
product.product_url |
string | Link to the product on Zepto. | https://www.zepto.com/pn/tender-coconut/pvid/b9fbf0e7-de2d-4a89… |
product.product_variant_id |
string | Identity of the exact product pack or variant. | b9fbf0e7-de2d-4a89-ae74-b12a7c0ab236 |
product.quantity |
integer | Units the store has, as Zepto reports it. | 9 |
product.shelf_life_display |
string | Shelf life as Zepto shows it, such as 4 days. | 3 days |
product.shelf_life_hours |
integer | Shelf life in hours. | 72 |
product.store_product_id |
string | Zepto's ID for the product at this store. | ff391715-6e8b-5a21-9caa-6cd7df7ccc02 |
product.unit_of_measure |
string | The pack's unit, such as GRAM. | PIECE |
product.weight_in_gms |
integer | Pack weight in grams. | 58 |
What to know
- Use the whole-paise fields for price sums. A real price wins over a placeholder zero; a genuine zero stays zero, and missing values stay missing.
- In stock and out of stock are kept apart from unknown. Descriptions, ratings, seller and compliance details, attributes, badges and promotions come when Zepto has them for that product.
- Related products and pack families are not returned. The variant ID names the one pack returned; do not build a family from it.
If a call fails
A failed call costs nothing. The response carries an error.code you can branch on; Errors and retries lists every code and which ones to retry.
Other Zepto endpoints
zepto.adsAdszepto.catalogStore catalogzepto.catalog.multi_locationMulti-location catalogzepto.categoriesCategorieszepto.category.productsCategory productszepto.etaETAzepto.healthHealth checkzepto.locationResolve locationzepto.place.autocompletePlace autocompletezepto.place.detailsPlace detailszepto.place.resolveResolve placezepto.searchProducts searchzepto.search.facetsSummarize search facetszepto.search.multi_locationMulti-location search
Something missing or unclear? Ask the team that builds the Zepto endpoints.