Blinkit APIblinkit.com ↗
Search Blinkit products by keyword, browse categories, and retrieve real-time price, stock, and brand data for any delivery location via a structured REST API.
What is the Blinkit API?
The Blinkit API gives developers access to 4 endpoints covering product search, category browsing, product details, and delivery location setup on India's quick-commerce grocery platform. The search_products endpoint returns price, MRP, discount-implied fields, stock status, and ad-vs-organic placement per result. The get_product_details endpoint adds brand, inventory count, and a full image array for any product ID surfaced in search.
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",
"initiates_session": "true"
}'Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace blinkit-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Blinkit grocery API — set location, browse categories, search products, get details."""
from parse_apis.blinkit_api import Blinkit, Product, ProductDetail, Category, Location, NotFoundError
blinkit = Blinkit()
# Set delivery location to check availability in a specific area
location = blinkit.locations.set(query="Mumbai")
print(location.city, location.locality, location.is_serviceable)
# Browse all top-level grocery categories
for category in blinkit.categories.list(limit=5):
print(category.name, category.id)
# Search for milk products
for product in blinkit.products.search(query="milk", limit=3):
print(product.name, product.price, product.unit)
# Drill into full product details from a search result
product = blinkit.products.search(query="bread", limit=1).first()
if product:
try:
detail = product.details.get()
print(detail.name, detail.brand, detail.price, detail.inventory)
except NotFoundError as exc:
print(f"Product not found: {exc}")
print("exercised: locations.set / categories.list / products.search / product.details.get")
Set the delivery location by searching for an area name or pincode. Returns the resolved location with coordinates, city, locality, and serviceability status. Subsequent search and product calls reflect availability for this location. If no location is set, a default location (Gurugram) is used.
| Param | Type | Description |
|---|---|---|
| queryrequired | string | Area name or pincode to search for (e.g. 'Mumbai', 'New Delhi', '110001') |
{
"type": "object",
"fields": {
"city": "string city name",
"locality": "string locality/area name",
"coordinate": "object with lat and lon as floats",
"is_serviceable": "boolean indicating if delivery is available",
"display_address": "object with title, description, and address_line strings"
},
"sample": {
"data": {
"city": "Mumbai",
"locality": "Mumbai Central",
"coordinate": {
"lat": 18.9690247,
"lon": 72.8205292
},
"is_serviceable": true,
"display_address": {
"title": "Mumbai Central",
"description": "Mumbai, Maharashtra, India",
"address_line": "Mumbai Central, Mumbai, Maharashtra, India"
}
},
"status": "success"
}
}About the Blinkit API
Endpoints and Data Coverage
The API exposes four endpoints. set_location accepts an area name or pincode (e.g. '110001' or 'Mumbai') and returns a location object with coordinates, city, locality, display address, and an is_serviceable flag indicating whether Blinkit delivers to that area. Location context flows into subsequent search_products calls, so setting it first ensures results reflect local availability and pricing.
Product Search and Details
search_products accepts a keyword query plus optional limit and offset integers for pagination. Each item in the products array includes product_id, name, unit, price, mrp, and image. The presence of both price and mrp lets you compute the effective discount without extra calls. get_product_details takes a product_id from search results and returns the full record: brand, inventory count, a primary image URL, and an images array for multi-angle views.
Categories
get_categories requires no parameters and returns the top-level category list from the homepage. Each category object carries name, id, deeplink, and image. Category IDs can be used to scope browsing or map Blinkit's taxonomy to an internal catalog. No nested sub-categories are returned by this endpoint; only the top-level hierarchy is exposed.
Location Behavior
All product data — pricing, stock, availability — is location-sensitive on Blinkit. If set_location is not called before a search, results fall back to a default location, which may not match the end user's delivery area. For accurate inventory and pricing, call set_location first and confirm is_serviceable is true before querying products.
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?+
- Track real-time price and MRP changes for grocery SKUs across multiple Blinkit delivery zones
- Check live inventory counts for specific products before surfacing them in a comparison app
- Build a pincode-aware grocery availability checker using
set_locationandsearch_products - Extract brand and unit metadata from
get_product_detailsto enrich a product catalog - Monitor ad-vs-organic placement in Blinkit search results for competitive analysis
- Map Blinkit's top-level category taxonomy to a unified grocery classification system
- Alert users when an out-of-stock product's
inventorycount returns to a positive value
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Blinkit have an official public developer API?+
What does search_products return beyond the product name and price?+
product_id, name, unit, price, mrp, and image. The mrp field is the maximum retail price, so comparing it to price gives you the discount amount. Pagination is controlled with limit and offset parameters.Does the API return sub-category or nested category data?+
get_categories returns only the top-level category list — name, id, deeplink, and image — without nested sub-categories. You can fork this API on Parse and revise it to add an endpoint that retrieves sub-categories for a given category ID.Can I retrieve user reviews or ratings for Blinkit products?+
How does location affect the data returned by search_products?+
search_products without first calling set_location, results use a default location. For location-accurate results, call set_location with a pincode or area name and verify the is_serviceable flag is true before querying products.