Blinkit Category Listing Scraper API
The Blinkit Category Listing Scraper API walks a whole Blinkit category — what Blinkit calls a collection — one page at a time, and stops when the platform says there is nothing more. Use it instead of search when you want a complete catalogue: a search query overshoots the category it aims at and repeats products across pages, so it cannot be enumerated reliably. Each successful request costs 5 API credits.
Endpoint:
https://api.scrapingdog.com/blinkit/listingAPI Parameters
🔑
Scrapingdog Parameters
api_keyRequiredYour personal API key. Available on your dashboard.
Type: String
🔍
Identifying the Category
collection_uuidOptionalBlinkit’s base64 collection id, for exampleOTg3NjU0MzIxMjM0NTMzNTU=. Pair it withcollection_group_id.
The trailing=is base64 padding and is significant — write it as%3Din a URL. Blinkit answers an unpadded id with a 403, and the padding is easily lost when an id is copied out of a browser URL by hand, so this endpoint restores it for you. Both…NTUand…NTU%3Dwork here.
Type: Stringcollection_group_idOptionalBlinkit’s numeric group id, for example11596. Pair it withcollection_uuid.
Type: StringurlOptionalA Blinkit category URL copied straight from a browser. The two ids above are extracted from it, so you do not need to supply them separately.
Aurlyou pass is validated even when the ids are also given, and in that case the ids win.
Type: Stringnext_page_tokenOptionalReturned by the previous response. Supply it together with your location andapi_keyto fetch the next page.
Supply one of:collection_uuidpluscollection_group_id, orurl, ornext_page_token.
Type: String
📍
Location
pincodeOptionalIndian pincode, resolved to the nearest serviceable Blinkit store. Eitherpincode, or bothlatandlon, is required.
Type: StringlatOptionalLatitude, used instead of a pincode. Pair withlon.
Type: NumberlonOptionalLongitude, used instead of a pincode. Note Blinkit takeslon— Swiggy Instamart takeslng.
Type: Number
📄
Paging and Sorting
sortOptionalSort order for the collection.
Default:bestsellers
A stable sort matters when paging — it is what keeps pages from reshuffling underneath a walk, so change it only when you intend to.
Type: String
⚙
️ Scrapingdog Options
htmlOptionalSet totrueto receive Blinkit’s raw JSON body instead of the parsed response.
Default:false
Type: Boolean
API Examples

Code to Integrate
curl "https://api.scrapingdog.com/blinkit/listing?api_key=APIKEY&collection_uuid=OTg3NjU0MzIxMjM0NTMzNTU%3D&collection_group_id=11596&pincode=302018"
import requests url = "https://api.scrapingdog.com/blinkit/listing" params = { "api_key": "APIKEY", "collection_uuid": "OTg3NjU0MzIxMjM0NTMzNTU%3D", "collection_group_id": "11596", "pincode": "302018" } response = requests.get(url, params=params, timeout=60) if response.status_code == 200: data = response.json() for item in data["products"]: print(item["position"], item["name"]) print("next:", data["next_page_token"]) else: print(f"Request failed with status code: {response.status_code}")
const axios = require('axios'); axios.get('https://api.scrapingdog.com/blinkit/listing', { params: { api_key: 'APIKEY', collection_uuid: 'OTg3NjU0MzIxMjM0NTMzNTU%3D', collection_group_id: '11596', pincode: '302018' } }).then(response => console.log(response.data.products)) .catch(error => console.error(error.message));
<?php $url = 'https://api.scrapingdog.com/blinkit/listing?' . http_build_query([ 'api_key' => 'APIKEY', 'collection_uuid' => 'OTg3NjU0MzIxMjM0NTMzNTU%3D', 'collection_group_id' => '11596', 'pincode' => '302018', ]); echo file_get_contents($url);
require 'net/http' require 'uri' url = URI.parse("https://api.scrapingdog.com/blinkit/listing") url.query = URI.encode_www_form('api_key' => 'APIKEY', 'collection_uuid' => 'OTg3NjU0MzIxMjM0NTMzNTU%3D', 'collection_group_id' => '11596', 'pincode' => '302018') http = Net::HTTP.new(url.host, url.port) http.use_ssl = true puts http.request(Net::HTTP::Get.new(url)).body
import java.io.*; import java.net.*; public class Main { public static void main(String[] args) throws Exception { String apiUrl = "https://api.scrapingdog.com/blinkit/listing?api_key=APIKEY&collection_uuid=OTg3NjU0MzIxMjM0NTMzNTU%3D&collection_group_id=11596&pincode=302018"; URL url = new URL(apiUrl); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); String line; while ((line = reader.readLine()) != null) System.out.println(line); conn.disconnect(); } }
API Response
{
"search_parameters": {
"collection_uuid": "OTg3NjU0MzIxMjM0NTMzNTU=",
"collection_group_id": "11596",
"sort": "bestsellers",
"pincode": "122018",
"lat": 28.4211,
"lon": 77.0469
},
"total_time_taken": 1.65,
"location": {
"store_id": "42750",
"city": "Gurugram",
"district": "Gurgaon Division",
"country": "India",
"is_serviceable": true,
"formatted_address": "TOWER-C, Nirvana Country, Sector 50, Gurugram, Haryana 122018, India"
},
"store_resolved_from": "pincode",
"total_results": 15,
"total_available": 24,
"sponsored_count": 1,
"next_page_token": "/v1/layout/listing_widgets?offset=15&limit=15&...",
"products": [
{
"position": 1,
"product_id": "230658",
"name": "FruBon Low Fat High Protein Paneer",
"brand": "FruBon",
"variant": "200 g",
"unit": "200 g",
"price": 119,
"price_text": "₹119",
"mrp": 130,
"mrp_text": "₹130",
"discount": "8% OFF",
"is_sponsored": true,
"in_stock": true,
"inventory": 30,
"product_state": "available",
"eta": "17 MINS",
"badges": [{ "type": "ETA", "label": "ETA", "text": "17 MINS" }],
"image": "https://cdn.grofers.com/...png",
"variants": [],
"product_url": "https://blinkit.com/prn/..."
},
{
"position": 2,
"product_id": "230671",
"name": "Mother Dairy Paneer",
"brand": "Mother Dairy",
"variant": "200 g",
"price": 100,
"price_text": "₹100",
"mrp": null,
"discount": null,
"is_sponsored": false,
"in_stock": true,
"product_url": "https://blinkit.com/prn/..."
}
]
}