Instamart Keyword Rank Tracker
Pricing
from $4.00 / 1,000 results
Instamart Keyword Rank Tracker
Organic + sponsored (ad) rank per keyword x store location on instamart. Dual-mode: the same capture_many() runs in the ATR rank-instamart service on our servers.
Pricing
from $4.00 / 1,000 results
Rating
0.0
(0)
Developer
AtTheRate AI
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Swiggy Instamart Keyword Rank Tracker
Captures the full Swiggy Instamart search results slate for a keyword in a specific Indian location, with every product's rank and the paid slots marked. Quick commerce is store level, so each pincode resolves to the store serving that area and the ranks reflect the local assortment rather than a national average.
What you get
- One row per search result position:
position,product_id,name,brand,price,mrp,in_stockandinventory. is_sponsoredon paid slots, read from the ad tracking Instamart attaches to a paid tile, withad_campaign_idcarrying that identifier.- Full location context on every row:
location_label,pincodeandstore_id, so ranks from different cities never get mixed up. captured_aton every row, so a time series can be built by appending runs.- Ranks for the whole slate, not just one brand, so competitor rank and ad share stay derivable.
Input
Give the keywords and at least one Indian pincode.
{"keywords": ["atta"],"locations": [{"lat": 28.4595,"lon": 77.0266,"label": "Gurgaon-DLF","pincode": "122002"}],"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "IN"},"pages": 1}
keywords(required): search terms to rank. Duplicates are ignored.pincodes: Indian 6-digit pincodes, for example["122002"]. Each is resolved to coordinates and Instamart picks the store serving that point.locations(advanced): exact store targets as{"label","lat","lon","pincode"}.pages: accepted for consistency with the other rank trackers. Instamart returns one slate per keyword, so raising it does not fetch more.proxyConfiguration: egress for the run. An Indian residential proxy is the default and is required.
Output
One dataset row per search result position, per keyword and location.
{"captured_at": "2026-09-11T09:02:02+00:00","platform": "instamart","keyword": "atta","location_label": "Gurgaon-DLF","pincode": "122002","store_id": "1394451","position": 1,"is_sponsored": false,"ad_campaign_id": null,"product_id": "1I5XR52UWP","name": "Aashirvaad Atta High Protein","brand": "Aashirvaad","price": 62,"mrp": 80,"in_stock": true,"inventory": 2}
Live runs of one keyword in Gurgaon returned 32 rows with 13 and 14 of them sponsored. ad_campaign_id is null on organic rows.
Use cases
- Keyword rank tracking for your own SKUs, city by city, from
keyword,positionandlocation_label. - Ad-slot share on a quick-commerce platform where paid density is high: the sponsored share of a 32-row slate is often close to half.
- Competitor share of search, counting
brandacross the whole ranked slate. - Price and MRP monitoring at rank, pairing
positionwithpriceandmrp. - Availability alerts from
in_stockandinventory, per store.
Notes and limits
- An Indian residential proxy is required. From other addresses Instamart serves a degraded page and its search endpoint refuses the request.
- Store resolution succeeds on roughly one exit address in four, so the actor retries a location on fresh sessions before calling it blocked. That is why a capture can take a minute.
- Instamart returns one slate per keyword rather than numbered pages, so
pageshas no effect. A live capture of a common grocery term returned 32 positions. - Sessions degrade after roughly 60 to 70 listing calls regardless of pacing, so the actor rotates before that point and on first degradation.
- A keyword that matches nothing is reported as an empty capture with a warning, never as a clean zero.
- India only.
FAQ
Do I need a proxy? Yes, an Indian residential one, which is the actor default. Other addresses get a degraded page rather than results.
How many results can I get? The full slate Instamart returns for the keyword at that store. Live tests returned 32 positions for a single grocery term.
Does it need a login or an API key? No.
How does a pincode pick a store? The pincode is resolved to coordinates, those coordinates are set as the delivery location before the search, and Instamart selects the serving store. It comes back in store_id.
Can I capture several cities in one run? Yes. Pass several pincodes or several locations, and every row is stamped with the location it came from.