Skip to documentation
Browse documentation

List promotions

Find Blinkit deals on the home feed, in a product search or on a shelf, with discount and price filters.

Capability ID blinkit.promotions
Maximum runtime 60 seconds
View raw

POST /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`.

Available values percentage_discountamount_discountb1g1free_itemflash_offerany_promotion
include array<string> optional

Optional fields or enrichments to include. Allowed values: `fulfillment`.

Available 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`.

Example 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`.

Example 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`.

Example 60
min_discount_percent number optional

Return only promotions with a normalized percentage discount at or above this value. From 0 to 100.

Example 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.

Example 560102
promotion_type string optional

Promotion placement type to return. Allowed values: `all`, `deals`, `banners`, `flash_offers`. Default: `all`.

Available values alldealsbannersflash_offers
query string optional

Search for product deals. Cannot be combined with subcategory_id.

Example 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 sample The example response is shown in the response panel.

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.

PathObserved typeExample
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