BigBasket APIbigbasket.com ↗
Access BigBasket's grocery catalog via API. Search products, browse categories, check stock availability, get delivery times, and retrieve city coverage data.
What is the BigBasket 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.
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'
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 bigbasket-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.
from parse_apis.bigbasket_api import BigBasket, Product, Category, City, SearchSuggestion, HomepageContent, HomepageSection
bb = BigBasket()
# Search for products by keyword
for product in bb.products.search(query="milk"):
print(product.name, product.brand, product.mrp, product.selling_price)
break
# Browse a category by constructing it from its slug
fruits = bb.category("fruits-vegetables")
for item in fruits.products():
print(item.name, item.weight, item.discount_text)
break
# Get autocomplete suggestions
suggestions = bb.searchsuggestions.get(term="rice")
print(suggestions.query_term)
# List all top-level categories
for cat in bb.categories.list():
print(cat.name, cat.slug, cat.level)
break
# Check product availability
for p in bb.products.search(query="rice"):
avail = p.check_availability(product_slug="bb-royal-sona-masoori-rice-raw-rice-super-premium-10-kg")
print(avail.product_name, avail.is_in_stock, avail.delivery_time)
break
# List cities served
for city in bb.cities.list():
print(city.name, city.slug, city.active, city.support_time)
break
# Get homepage promotional content
homepage = bb.homepagecontents.get()
for section in homepage.sections:
print(section.title, section.type)
break
Full-text search over BigBasket's product catalog by keyword. Returns paginated product listings with pricing, availability, applicable filters, and sort options. Each result includes a product ID and slug usable in get_product_details and get_product_availability. Paginated via integer page number; each page returns up to 40 products.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination (1-based). |
| 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 (categories, brands, price ranges)",
"products": "array of product objects with id, name, brand, weight, pack_desc, mrp, selling_price, discount_text, availability, url, image",
"sort_options": "array of sort option objects with display_name and value",
"total_products": "integer total count of matching products"
},
"sample": {
"data": {
"filters": [
{
"name": "Categories",
"type": "category",
"values": [
{
"id": 367,
"name": "Bakery, Cakes & Dairy",
"slug": "bakery-cakes-dairy"
}
],
"multi_select": true
}
],
"products": [
{
"id": "40147597",
"mrp": "32",
"url": "/pd/40147597/heritage-daily-health-toned-milk-500-ml-pouch/",
"name": "Daily Health Toned Milk",
"brand": "Heritage",
"image": "https://www.bbassets.com/media/uploads/p/s/40147597_9-heritage-daily-health-toned-milk.jpg",
"weight": "500 ml",
"pack_desc": "Pouch",
"availability": "10 mins",
"discount_text": "",
"selling_price": "32"
}
],
"sort_options": [
{
"value": "relevance",
"is_selected": true,
"display_name": "Relevance"
}
],
"total_products": 688
},
"status": "success"
}
}About the BigBasket API
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.
The BigBasket API is a managed, monitored endpoint for bigbasket.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when bigbasket.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 bigbasket.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 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 | 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 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.