Store catalog
Traverse a Zepto store assortment as a normalized product feed with a bounded call and an opaque continuation cursor.
zepto.catalog
/execute
Shared execution endpoint
Input parameters
For location-specific traversal, provide store_id, a six-digit pincode, or both latitude and longitude. Do not combine pincode with coordinates.
limit accepts 1 to 500 returned products and max_pages accepts 1 to 100 product pages. Use small bounded values for exploratory calls.
When has_more is true, pass the cursor returned by the previous catalogue response unchanged with the same delivery context. Do not manufacture or reuse a cursor from an unrelated capture.
cursor
string
optional
Opaque cursor returned by the previous catalog response.
latitude
number
optional
Latitude in decimal degrees. From -90 to 90.
limit
integer
optional
Maximum number of results to return. From 1 to 500. Default: `100`.
5
longitude
number
optional
Longitude in decimal degrees. From -180 to 180.
max_pages
integer
optional
Maximum number of result pages to fetch. From 1 to 100. Default: `20`.
2
pincode
string
optional
Six-digit Indian pincode. When provided, Upscrape resolves coordinates and the Zepto delivery store automatically.
560067
store_id
string
optional
Store identifier.
Response
Successful output is returned in results[0].data.
The cursor preserves the traversal directory and store context, not a frozen inventory snapshot. Live catalogue changes can cause a continuation to be rejected; restart from a fresh catalogue request when that happens.
Deduplication is per call. Do not treat catalogue traversal across a changing live assortment as a guarantee of globally unique products or complete inventory at one instant.
Keep captured_at, context.store_id and has_more with saved catalogue batches.
Illustrative output fields
Values illustrate one response. Read the guidance above for missing values and limits; fields can vary with the requested operation and the data available.
| Path | Observed type | Example |
|---|---|---|
captured_at |
string |
2026-09-24T09:56:09.101068214Z |
count |
integer |
3 |
cursor |
string |
[redacted:token] |
has_more |
boolean |
true |
location |
object |
9 fields |
location.eta_minutes |
integer |
10 |
location.eta_serviceable |
boolean |
true |
location.latitude |
number |
12.9967012 |
location.longitude |
number |
77.758197 |
location.pincode |
string |
560067 |
location.secondary_store_ids |
array |
1 items |
location.serviceable |
boolean |
true |
location.store_id |
string |
e58fff62-7695-44c2-aba0-6bc96074bc64 |
location.store_ids |
array |
2 items |
results |
array |
3 items |
results |
array |
3 items |
Execution behavior
A 200 response completed inline. A 202 response was queued; poll
GET /jobs/:id until the job reaches completed or
failed.
Overview, pricing and sample data for every endpoint: Zepto API