DataBlue / Docs / Endpoint
POST/v1/data/instamart/products
Instamart Products
Search Swiggy Instamart products or browse a collection and return normalized quick-commerce rows with price, MRP, pack size, stock, category, sponsored flags, ratings when available, and location/store context. DataBlue mints the required session pack internally and replays the decoded HTTP search flow.
Execution Model
Live request
Runtime depends on endpoint, target, pagination, rendering mode, and active plan limits.
Credit Weight
Live catalog
Current weights are managed from the Data API Weights admin table and shown on pricing before use.
Parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
| query / searchQuery | string | REQUIRED | Product search query. Required unless collection_id is supplied. |
| collection_id / collectionId | string | optional | Instamart collection/category id for collection browse mode. |
| num_results / maxResults | number | optional | Maximum products to return (1-200). |
| page | number | optional | Starting Instamart result page (1-5). |
| location_key | string | optional | Fixed launch location. Supported: blr_koramangala, blr_indiranagar, mum_bandra, del_connaught_place. |
| store_id | string | optional | Explicit decoded Instamart store ID for advanced store-specific requests. |
| primary_store_id | string | optional | Explicit primary store ID. Requires store_id. |
| secondary_store_id | string | optional | Comma-separated secondary store IDs for advanced decoded-store replay. |
| latitude / lat | number | optional | Custom delivery latitude. Must be sent with longitude. |
| longitude / lon | number | optional | Custom delivery longitude. Must be sent with latitude. |
| city | string | optional | Optional custom city label. |
| location | string | optional | Optional custom area or address label. |
| timeout_ms | number | optional | Provider timeout in milliseconds (3000-60000). |
Response Fields
| Field | Type | Description |
|---|---|---|
| success | boolean | Whether the Instamart request completed successfully. |
| runtime | string | Current runtime path, usually warm_http_decoded_protocol. |
| query | string | Normalized product query or collection:<id> marker for collection browse mode. |
| location_key | string | Fixed launch location key used for the request. |
| store_id / primary_store_id / secondary_store_id | string | Decoded Instamart store identifiers used for the request when available. |
| pages_fetched | number | Number of Instamart provider pages fetched. |
| products | array | Product rows with product_id, title, brand, image, price, MRP, discount, savings, quantity, category, sponsored flags, rating, rating_count, and availability. |
| search_url | string | Provider URL metadata when available. |
| time_taken | number | API response time in seconds. |
| error | string | Error message when the provider request fails. |
cURL Example
curl -X POST "https://api.datablue.dev/v1/data/instamart/products" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"searchQuery": "coffee",
"location_key": "blr_koramangala",
"maxResults": 5,
"page": 1
}'System Responses
200 OK
Request processed successfully.
401 UNAUTHORIZED
Missing or invalid API key.
429 RATE LIMIT
System capacity exceeded.
500 SYSTEM FAILURE
Internal core exception.
EXAMPLE RESPONSE
{
"success": true,
"source": "instamart",
"runtime": "warm_http_decoded_protocol",
"query": "coffee",
"location_key": "blr_koramangala",
"requested_location": "Koramangala, Bengaluru",
"city": "Bengaluru",
"store_id": "1396284",
"primary_store_id": "1396284",
"page": 1,
"pages_fetched": 1,
"time_taken": 1.21,
"products": [
{
"position": 1,
"product_id": "123456",
"title": "Instant Coffee",
"brand": "Example Brand",
"image_url": "https://media-assets.swiggy.com/...",
"price": 199,
"mrp": 249,
"currency": "INR",
"discount": "20% OFF",
"savings": 50,
"quantity": "100 g",
"category": "Coffee",
"is_sponsored": false,
"inStock": true,
"availability": "in_stock"
}
]
}