Instamart Keyword Rank Tracker avatar

Instamart Keyword Rank Tracker

Pricing

from $4.00 / 1,000 results

Go to Apify Store
Instamart Keyword Rank Tracker

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

AtTheRate AI

Maintained by Community

Actor 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_stock and inventory.
  • is_sponsored on paid slots, read from the ad tracking Instamart attaches to a paid tile, with ad_campaign_id carrying that identifier.
  • Full location context on every row: location_label, pincode and store_id, so ranks from different cities never get mixed up.
  • captured_at on 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, position and location_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 brand across the whole ranked slate.
  • Price and MRP monitoring at rank, pairing position with price and mrp.
  • Availability alerts from in_stock and inventory, 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 pages has 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.