bigbasket.com APIbigbasket.com ↗
Access BigBasket's grocery catalog via API. Search products, browse categories, check stock availability, get delivery times, and retrieve city coverage data.
curl -X GET 'https://api.parse.bot/scraper/1d9ca2c5-176c-4bc0-9cf3-db9056850958/search_products?page=1&query=milk' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for products by keyword with optional filtering. Returns paginated product listings with pricing and availability info.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| queryrequired | string | Search keyword (e.g. 'milk', 'rice', 'tomato'). |
| filters | string | Filter string to narrow results (e.g. 'brand:Amul'). Passed to upstream; filtering effectiveness may vary. |
{
"type": "object",
"fields": {
"filters": "array of available filter options returned by upstream",
"products": "array of product objects with id, name, brand, weight, mrp, selling_price, discount_text, availability, url, image",
"sort_options": "array of sort options returned by upstream",
"total_products": "integer total count of matching products"
},
"sample": {
"data": {
"filters": [],
"products": [
{
"id": "40149832",
"mrp": "24",
"url": "/pd/40149832/nandini-pasteurised-toned-milk-500-ml-pouch/",
"name": "Pasteurised Toned Milk",
"brand": "Nandini",
"image": "https://www.bbassets.com/media/uploads/p/s/40149832_1-nandini-pasteurised-toned-milk.jpg",
"weight": "500 ml",
"pack_desc": "Pouch",
"availability": "10 mins",
"discount_text": "",
"selling_price": "24"
}
],
"sort_options": [],
"total_products": 150
},
"status": "success"
}
}About the bigbasket.com API
This API exposes 8 endpoints covering BigBasket's grocery catalog, giving you structured access to product search, detailed product data, category trees, and real-time stock status. The search_products endpoint returns paginated listings with fields like mrp, selling_price, discount_text, and availability for each matched item. Whether you're monitoring prices, mapping grocery coverage, or building a comparison tool, the API gives you the data in clean JSON.
Product Search and Details
The search_products endpoint accepts a query string (e.g. 'milk', 'basmati rice') along with optional filters (e.g. 'brand:Amul') and page for pagination. Each product in the response includes id, name, brand, weight, mrp, selling_price, discount_text, availability, url, and image. The total_products field tells you how many results exist across all pages. For deeper detail on a specific item, get_product_details takes a product_id and product_slug (both available in search results) and returns variant-level data including images, nutritional tabs, breadcrumb, rating info, and a isComboAvailable flag.
Availability and Pricing
The get_product_availability endpoint returns a real-time snapshot for a product: is_in_stock (boolean), availability_status (status code, where '001' means in stock), delivery_time (e.g. '10 mins'), selling_price, mrp, and an offers array containing HTML-formatted product info tabs such as About, How to Use, and Other Product Info. This makes it useful for price-tracking workflows or alerting when an out-of-stock item becomes available.
Categories and Navigation
The get_categories endpoint returns the full three-level category tree. Each node includes id, name, slug, url, level, bannersList, and nested children. Category slugs (e.g. 'fruits-vegetables', 'foodgrains-oil-masala') feed directly into get_category_products, which supports the same filters and page parameters as search and returns the same product object shape.
Discovery and Coverage
get_search_suggestions returns autocomplete matches for a partial term (minimum 2 characters), split into products, brands, and categories objects — useful for building typeahead UI or understanding catalog breadth. get_homepage_sections exposes current promotional carousels, banners, and featured product blocks. get_cities_served returns a list of over 2000 cities with name, slug, active status, state_id, and support_time fields, covering BigBasket's full delivery footprint across India.
- Track price changes on specific grocery items by polling
get_product_availabilityforselling_priceandmrpover time. - Build a grocery comparison tool using
search_productsto pullbrand,weight,mrp, andselling_priceacross keyword queries. - Monitor stock status for high-demand items using the
is_in_stockanddelivery_timefields fromget_product_availability. - Render a category navigation menu using the three-level tree from
get_categorieswithslug,name, andbannersList. - Identify which cities BigBasket serves using
get_cities_servedto filter byactivestatus and mapstate_idto region. - Power a product search typeahead by calling
get_search_suggestionswith partial terms and consuming thebrands,products, andcategoriesresponses. - Analyze promotional strategy by extracting featured sections from
get_homepage_sectionsand tracking which product IDs appear in carousels over time.
| 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 | 250 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 BigBasket have an official public developer API?+
What does `get_product_availability` return beyond stock status?+
is_in_stock (boolean), availability_status (string code, '001' = in stock), delivery_time (e.g. '10 mins'), selling_price, mrp, product_name, and an offers array containing HTML-formatted informational tabs like About and How to Use.How does filtering work in `search_products` and `get_category_products`?+
filters string (e.g. 'brand:Amul'). The filter is passed through to narrow results, but effectiveness may vary by category and query — not all filter combinations are guaranteed to reduce the result set as expected. The filters array in the response lists the filter options BigBasket returns for that query, which you can use to build valid filter strings.Does the API expose user reviews or ratings for products?+
get_product_details response within the children array, but the API does not expose individual user reviews or review text. You can fork this API on Parse and revise it to add an endpoint that retrieves per-product review listings.