List promotions
Find Blinkit deals on the home feed, in a product search or on a shelf, with discount and price filters.
blinkit.promotions
/execute
Shared execution endpoint
Input parameters
Choose exactly one location: a six-digit pincode, a place name in location_query, or both latitude and longitude. Do not combine location modes. A pincode represents one delivery point, not every address in the area.
Use query for search deals, subcategory_id for shelf deals, or neither for the home feed. Do not combine query and subcategory_id.
Search and shelf scans inspect up to max_scan distinct products: 100 by default, configurable from 1 to 500. max_pages also limits traversal. Discount, price and deal-type filters apply after scanning; the scan bound is not a count of returned deals. max_scan does not affect the home feed.
Use include to request fulfillment details where available.
deal_type
string
optional
Deal classification, or any_promotion for any evidenced deal or explicit offer marker. Allowed values: `percentage_discount`, `amount_discount`, `b1g1`, `free_item`, `flash_offer`, `any_promotion`.
include
array<string>
optional
Optional fields or enrichments to include. Allowed values: `fulfillment`.
latitude
number
optional
Latitude of the delivery address. From -90 to 90.
limit
integer
optional
Maximum promotions returned. From 1 to 100. Default: `20`.
5
location_query
string
optional
Free-text Indian location resolved before fetching location-dependent Blinkit data.
longitude
number
optional
Longitude of the delivery address. From -180 to 180.
max_pages
integer
optional
Maximum pages fetched from the selected source. From 1 to 20. Default: `3`.
3
max_price
integer
optional
Return only product promotions whose normalized selling price is at or below this value. At least 0.
max_scan
integer
optional
Maximum distinct products inspected in search/shelf mode, across at most max_pages pages. Filters are applied after scanning. No effect on the home feed. From 1 to 500. Default: `100`.
60
min_discount_percent
number
optional
Return only promotions with a normalized percentage discount at or above this value. From 0 to 100.
20
offset
integer
optional
Number of deduplicated promotions to skip. From 0 to 10000. Default: `0`.
pincode
string
optional
Six-digit Indian pincode; surrounding whitespace is allowed and trimmed. Do not combine with coordinates.
560102
promotion_type
string
optional
Promotion placement type to return. Allowed values: `all`, `deals`, `banners`, `flash_offers`. Default: `all`.
query
string
optional
Search for product deals. Cannot be combined with subcategory_id.
chips
subcategory_id
string
optional
Scan deals on this shelf. Cannot be combined with query.
Response
Successful output is returned in results[0].data.
Prices, MRP and inventory can be null when Blinkit provides no value. A real zero stays zero. Keep stock_status (in_stock, low_stock, out_of_stock or unknown), available and is_sold_out separate from price. Missing or conflicting availability signals must remain unknown.
Check partial, partial_reason, scanned_products and has_more. An empty bounded scan does not prove there are no matching deals elsewhere.
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 |
|---|---|---|
count |
integer |
5 |
has_more |
boolean |
true |
limit |
integer |
5 |
pages_fetched |
integer |
3 |
partial |
boolean |
true |
partial_reason |
string |
page_limit |
promotion_type |
string |
all |
results |
array |
3 items |
results |
array |
3 items |
scanned_products |
integer |
36 |
source |
string |
search |
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: Blinkit API