Blinkit Categories API
Get the local department and shelf IDs you need to move through Blinkit’s category structure.
- 1 credit per call
- Failed calls are free
- Updated
- blinkit.categories
{ "count": 306, "departments": [ { "category_id": 231389, "category_name": "Bath & Body", "default_subcategory_id": "3075" }, { "category_id": 102133, "category_name": "Hair", "default_subcategory_id": "2447" } ], "groups": [ { "display_name": "Beauty & Personal Care", "group_name": "beauty-personal-care", "rank": 1, "categories": [ { "category_id": 231389, "category_name": "Bath & Body", "image_url": "http://cdn.grofers.com/app/images/category/cms_images/rc-upload-1710493128352-7", "rank": 1, "subcategory_id": "3075", "subcategory_name": "Bathing Soaps" }, { "category_id": 231389, "category_name": "Bath & Body", "image_url": "http://cdn.grofers.com/app/images/category/cms_images/rc-upload-1710499616480-3", "rank": 2, "subcategory_id": "3076", "subcategory_name": "Shower Gels & Scrubs" } ] }, { "display_name": "Grocery & Kitchen", "group_name": "grocery-kitchen", "rank": 2, "categories": [ { "category_id": 10255, "category_name": "Vegetables & Fruits", "image_url": "https://cdn.grofers.com/app/images/collections/groupings/grouping_asset_All-1_(1)_1724518393986", "rank": 86, "subcategory_id": "3989", "subcategory_name": "All" }, { "category_id": 10255, "category_name": "Vegetables & Fruits", "image_url": "https://cdn.grofers.com/app/images/collections/groupings/grouping_asset_fresh_vegetables_1776063647446", "rank": 87, "subcategory_id": "1489", "subcategory_name": "Fresh Vegetables" } ] } ], "results": [ { "category_id": 231389, "category_name": "Bath & Body", "image_url": "http://cdn.grofers.com/app/images/category/cms_images/rc-upload-1710493128352-7", "rank": 1, "subcategory_id": "3075", "subcategory_name": "Bathing Soaps" }, { "category_id": 231389, "category_name": "Bath & Body", "image_url": "http://cdn.grofers.com/app/images/category/cms_images/rc-upload-1710499616480-3", "rank": 2, "subcategory_id": "3076", "subcategory_name": "Shower Gels & Scrubs" } ]}
| # | Department | Department ID | Rank | Subcategory name | Image url | Subcategory id |
|---|---|---|---|---|---|---|
| 1 | Bath & Body | 231389 | 1 | Bathing Soaps | http://cdn.grofers.com/app/images/category/cms_images/rc-upload… | 3075 |
| 2 | Bath & Body | 231389 | 2 | Shower Gels & Scrubs | http://cdn.grofers.com/app/images/category/cms_images/rc-upload… | 3076 |
| 3 | Bath & Body | 231389 | 3 | Oral Care | http://cdn.grofers.com/app/images/collections/groupings/groupin… | 722 |
| 4 | Bath & Body | 231389 | 4 | Handwash | http://cdn.grofers.com/app/images/collections/groupings/groupin… | 699 |
| 5 | Bath & Body | 231389 | 5 | Fragrance & Talc | http://cdn.grofers.com/app/images/category/cms_images/rc-upload… | 3072 |
| 6 | Bath & Body | 231389 | 6 | Bath Accessories | http://cdn.grofers.com/app/images/collections/groupings/groupin… | 2460 |
| 7 | Bath & Body | 231389 | 7 | Shampoo | http://cdn.grofers.com/app/images/collections/groupings/groupin… | 2447 |
| 8 | Bath & Body | 231389 | 8 | Conditioner | http://cdn.grofers.com/app/images/collections/groupings/groupin… | 2448 |
| 9 | Bath & Body | 231389 | 9 | Face Cleaning | http://cdn.grofers.com/app/images/collections/groupings/groupin… | 1117 |
| 10 | Bath & Body | 231389 | 10 | Body Lotions & Oils | http://cdn.grofers.com/app/images/collections/groupings/groupin… | 6871 |
What you send
The input
object of the request, with every field the endpoint accepts.
- Send one kind of location: a six-digit pincode, a place name in location_query, or latitude and longitude together, not a mix. A pincode stands for one delivery point, not every address in the area.
- To list the shelves of one department only, send that department's ID in category_id. Use the shelf IDs it returns as subcategory_id in category product requests.
| Field | Type | Required | What it does | Example |
|---|---|---|---|---|
| latitude | number | one of | Latitude of the delivery address. From -90 to 90. | |
| location_query | string | one of | Free-text Indian location resolved before fetching location-dependent Blinkit data. | |
| longitude | number | one of | Longitude of the delivery address. From -180 to 180. | |
| pincode | string | one of | Six-digit Indian pincode; surrounding whitespace is allowed and trimmed. Do not combine with coordinates. | 560102 |
| category_id | integer | no | Current department ID returned by blinkit.categories; limits the response to that department’s shelves. These IDs differ from legacy /cn department-link IDs. At least 1. |
Fields it returns
What each record in the response holds, with the values from the sample above.
| Field | Type | What it is | Example |
|---|---|---|---|
| results[].category_name | string | Department name as Blinkit shows it. | Bath & Body |
| results[].category_id | integer | Department ID. Pass it to category products or categories. | 231,389 |
| results[].image_url | string | Blinkit CDN image for this product. | http://cdn.grofers.com/app/images/category/cms_images/rc-upload… |
| results[].rank | integer | Position in the returned list. Sponsored placements are flagged separately. | 1 |
| results[].subcategory_id | string | Blinkit's ID for the subcategory. | 3075 |
| results[].subcategory_name | string | The subcategory name, such as Bathing Soaps. | Bathing Soaps |
| count | integer | How many results this response holds. | 306 |
| departments | array | Blinkit's departments. | 28 records |
| departments[].category_id | integer | Department ID. Pass it to category products or categories. | 231,389 |
| departments[].category_name | string | Department name as Blinkit shows it. | Bath & Body |
| departments[].default_subcategory_id | string | The shelf a department opens on. | 3075 |
| groups | array | Groups of departments, such as Beauty & Personal Care. | 4 records |
| groups[].categories | array | The shelves inside this group. | 85 records |
| groups[].categories[].category_id | integer | 231,389 | |
| groups[].categories[].category_name | string | Bath & Body | |
| groups[].categories[].image_url | string | http://cdn.grofers.com/app/images/category/cms_images/rc-upload… | |
| groups[].categories[].rank | integer | 1 | |
| groups[].categories[].subcategory_id | string | 3075 | |
| groups[].categories[].subcategory_name | string | Bathing Soaps | |
| groups[].display_name | string | The group name as Blinkit shows it. | Beauty & Personal Care |
| groups[].group_name | string | The group's short name. | beauty-personal-care |
| groups[].rank | integer | Position in the returned list. Sponsored placements are flagged separately. | 1 |
| results | array | The results returned. | 306 records |
What this endpoint covers
- Departments and shelves are location-specific. Use the returned identifiers rather than assuming IDs from a copied legacy link are interchangeable.
Call it from your code, or ask your agent
Set UPSCRAPE_API_KEY to your key and copy a working request.
curl --request POST \ --url https://data.upscrape.com/execute \ --header "Authorization: Bearer $UPSCRAPE_API_KEY" \ --header "Content-Type: application/json" \ --header "Prefer: wait=30" \ --data '{ "capability": "blinkit.categories", "input": { "pincode": "560102" }}'
import jsonimport osimport requestspayload = json.loads(r'''{ "capability": "blinkit.categories", "input": { "pincode": "560102" }}''')response = requests.post( "https://data.upscrape.com/execute", headers={ "Authorization": f"Bearer {os.environ['UPSCRAPE_API_KEY']}", "Content-Type": "application/json", "Prefer": "wait=30", }, json=payload,)response.raise_for_status()print(json.dumps(response.json(), indent=2))
const response = await fetch("https://data.upscrape.com/execute", { method: "POST", headers: { "Authorization": `Bearer ${process.env.UPSCRAPE_API_KEY}`, "Content-Type": "application/json", "Prefer": "wait=30", }, body: JSON.stringify({ "capability": "blinkit.categories", "input": { "pincode": "560102" }}),});if (!response.ok) { throw new Error(`Upscrape request failed: ${response.status}`);}console.log(JSON.stringify(await response.json(), null, 2));
https://data.upscrape.com/mcp
With Upscrape, get the Blinkit categories for pincode "560102". Tell me what it costs before you run it, then show the results as a table.
More from the Blinkit API
The same data from other platforms
Blinkit Categories API FAQ
The short answers. The docs have the long ones.
How much does the Blinkit Categories API cost?
1 credit per successful call, shown before it runs. You buy credits once, and paid credits never expire.
What do I send?
Every input is optional; the input fields below list what each one does.
Do I need a Blinkit login?
No. It reads public Blinkit data; nothing runs on your account.
Can my AI agent call it?
Yes, over MCP: the agent finds blinkit.categories, checks its price and runs it with the same credits as the REST API.
Your first Blinkit call is free.
Up to 100 free credits to start, no card needed.