Blinkit APIblinkit.com ↗
Access Blinkit's live grocery catalog by delivery coordinate: search products, browse categories, fetch product details, and scan for deals across any Indian pincode.
What is the Blinkit API?
The Blinkit API exposes 7 endpoints covering location resolution, product search, category and subcategory browsing, product detail lookup, and deal scanning for Blinkit's quick-commerce catalog. Every product record includes numeric price_amount, mrp_amount, discount_amount, discount_percent, inventory, is_sold_out, and the site's offer_tag — all computed for the delivery coordinate you supply. The find_deals endpoint lets you filter across a shelf or search slice by discount threshold, BOGO status, or price ceiling without building your own scan loop.
curl -X POST 'https://api.parse.bot/scraper/99ee22ab-c3b4-4c1b-b96d-b828aac93698/set_location' \
-H 'X-API-Key: $PARSE_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"query": "Mumbai"
}'Resolves a free-text place (city, area/locality name, or Indian 6-digit pincode) to Blinkit's location record: coordinates, city, locality, display address and whether Blinkit delivers there (is_serviceable). The first suggestion the site returns for the text is used and echoed in matched_suggestion. The call does not store anything: every endpoint is stateless, so pass the returned coordinate.lat / coordinate.lon as the lat / lon inputs on each call of search_products, list_subcategories, list_category_products, find_deals and get_product_details to get location-specific catalog, prices and stock (those endpoints echo location.source = 'caller' when they used your coordinate). When the text matches no place the call returns a stale_input (input_not_found) error. One upstream round trip for suggestions plus one for the location record.
| Param | Type | Description |
|---|---|---|
| queryrequired | string | City, area/locality name, or 6-digit Indian pincode to resolve (e.g. 'Mumbai' or '500081'). The site's first suggestion for this text is used. |
{
"type": "object",
"fields": {
"city": "string city name of the resolved place",
"locality": "string locality/area name",
"coordinate": "object {lat, lon} decimal degrees; pass these as lat/lon to the product endpoints",
"is_serviceable": "boolean, true when Blinkit delivers to the resolved place",
"display_address": "object with title, description and address_line strings",
"matched_suggestion": "object {title, subtitle} the site suggestion that was resolved"
},
"sample": {
"data": {
"city": "Hyderabad",
"locality": "Hyderabad",
"coordinate": {
"lat": 17.443357100000004,
"lon": 78.38221109999999
},
"is_serviceable": true,
"display_address": {
"title": "Hyderabad",
"description": "Telangana 500081, India",
"address_line": "Hyderabad, Telangana 500081, India"
},
"matched_suggestion": {
"title": "Hyderabad",
"subtitle": "Telangana 500081, India"
}
},
"status": "success"
}
}About the Blinkit API
Location and Catalog Access
All product endpoints are location-aware. Start with set_location, which accepts a free-text city name, locality, or 6-digit Indian pincode and returns a coordinate object (lat, lon) plus is_serviceable — a boolean indicating whether Blinkit delivers to that place. Pass those coordinates as lat/lon to every subsequent call. Omitting coordinates silently falls back to a default location, so explicit coordinates are recommended whenever you need location-accurate inventory or pricing.
Browsing the Catalog Hierarchy
get_categories returns Blinkit's top-level departments (e.g. Munchies, Dairy & Breakfast), each with an integer id and a default_subcategory_id. Feed those two values into list_subcategories to retrieve the side-rail shelves for that department — each subcategory carries its own id, name, and image. Then call list_category_products with a category_id + subcategory_id pair to page through every product on that shelf in the site's display order. Pages are bounded at 50 products; use offset as multiples of limit and check has_more to continue. total_results reports the site's total count for the shelf at the requested location.
Product Fields and Deal Detection
Both search_products and list_category_products return the same product shape: product_id, name, unit (pack size text), display strings price and mrp, and the numeric price_amount, mrp_amount, discount_amount, discount_percent, offer_tag, inventory, is_sold_out, brand, merchant_id, rating, and product_url. get_product_details adds a full images gallery array and resolves inventory to an integer unit count at the fulfilling store.
find_deals accepts either a shelf source (category_id + subcategory_id) or a keyword query, and applies comma-separated filters from the set price_le_49, price_le_99, discount_ge_20, discount_ge_50, b1g1, and others. Each deal object in the deals array carries the same fields as a search result plus the evidence for its classification. The scanned integer tells you how many products were examined; next_offset lets you continue scanning in a subsequent call up to the max_scan cap of 150 per call.
Coverage Notes
All pricing is in INR. The catalog is India-only; set_location resolves Indian addresses and pincodes. mrp may equal price when no discount applies, and offer_tag may be null. Subcategory browsing requires a valid category_id/subcategory_id pair — use get_categories to bootstrap valid ids.
The Blinkit API is a managed, monitored endpoint for blinkit.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when blinkit.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official blinkit.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Alerting users when a tracked product's
discount_percentcrosses a threshold at their pincode - Building a BOGO deal aggregator using
find_dealswith theb1g1filter across multiple subcategory shelves - Monitoring
inventorycounts for out-of-stock detection on specificproduct_idvalues viaget_product_details - Comparing
price_amountacross multiple delivery coordinates for the same product usingsearch_products - Cataloging Blinkit's full department and shelf hierarchy with
get_categoriesandlist_subcategories - Scanning sub-₹99 grocery items using
find_dealswithprice_le_99to surface budget options by locality - Aggregating
ratingandbranddata across a subcategory shelf for product analytics
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Blinkit offer an official developer API?+
What does `find_deals` actually return, and how does the filtering work?+
find_deals scans a catalog slice — either a subcategory shelf (specified with category_id and subcategory_id) or a keyword search result (specified with query) — and returns only products matching the filters you pass in the filters parameter. Supported filter names include price_le_49, price_le_99, discount_ge_20, discount_ge_50, and b1g1. Each product in the deals array includes the same fields as search_products results plus classification evidence. Use next_offset from the response to continue scanning the remaining slice in subsequent calls.Do product prices and availability vary by location?+
search_products, list_category_products, get_product_details, and find_deals — use the lat/lon coordinates you supply to return pricing, inventory, and availability for the nearest Blinkit fulfillment store. The same product_id may have different price_amount, inventory, or is_sold_out values at different coordinates. Use set_location to resolve a pincode or locality to the correct coordinate pair first.Does the API return order history, cart data, or user account information?+
Is there a limit to how many products can be scanned in one `find_deals` call?+
max_scan parameter caps how many catalog products are examined per call, with a maximum of 150. If the slice contains more products than max_scan, has_more will be true and next_offset will point to where scanning can resume. This means finding all deals in a large subcategory requires multiple calls, incrementing offset by passing back next_offset each time.