Blinkit Categories
blinkit.categories
Get the local department and shelf IDs you need to move through Blinkit’s category structure.
At a glance
- Endpoint ID
blinkit.categories- Price
- 1 credit per call; failed calls are free
- Runs for up to
- 30 seconds
Request
Send the endpoint ID as capability and its fields as input. Set UPSCRAPE_API_KEY to your key first.
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));
Input
- 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. |
Response
A finished call answers with HTTP 200; the data is in results[0].data, and billing.credits_charged is what it cost. A call still running after the wait answers 202: see jobs and results.
This is results[0].data from a real run:
{ "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" } ]}
Fields
| 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 to know
- Departments and shelves are location-specific. Use the returned identifiers rather than assuming IDs from a copied legacy link are interchangeable.
If a call fails
A failed call costs nothing. The response carries an error.code you can branch on; Errors and retries lists every code and which ones to retry.
Other Blinkit endpoints
Something missing or unclear? Ask the team that builds the Blinkit endpoints.