Flipkart Products Scraper — India Catalog Search avatar

Flipkart Products Scraper — India Catalog Search

Pricing

from $1.50 / 1,000 products

Go to Apify Store
Flipkart Products Scraper — India Catalog Search

Flipkart Products Scraper — India Catalog Search

Scrape Flipkart India catalog search: title, INR price, MRP, discount %, rating, brand, key specs, product URL. HTTP-only via __INITIAL_STATE__ PRODUCT_SUMMARY. Use Apify RESIDENTIAL + IN — Akamai often blocks bare IPs.

Pricing

from $1.50 / 1,000 products

Rating

0.0

(0)

Developer

Noah Adler

Noah Adler

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Flipkart India catalog search: title, INR price, MRP, discount %, rating, rating count, brand, key specs, product URL and image — one clean Dataset row per listing.

HTTP-only (curl_cffi + Chrome TLS). Parses Flipkart’s public window.__INITIAL_STATE__ / is_script / __NEXT_DATA__ and extracts PRODUCT_SUMMARY widgets.

Proxy: Flipkart sits behind Akamai geo/antibot. Production runs need Apify RESIDENTIAL with country IN. Without it, expect a soft-fail error row (403/challenge) — not fake empty success.

Why this Actor: India B2C catalog · Clean PPE schema · Keyword or search URL · No Playwright · Honest antibot limits · Racimo IN (Naukri + IndiaMART + Flipkart)

Store icon: set the Actor icon in Apify Console (PNG not shipped in this repo).


What this Actor does

StepAction
1Accept query and/or searchUrl, optional sort / maxItems
2Build https://www.flipkart.com/search?q=… (or reuse your URL + page=)
3GET with curl_cffi impersonate chrome124
4Parse __INITIAL_STATE__ → PRODUCT_SUMMARY → product cards
5Normalize price / MRP / discount / rating / brand / specs → Dataset
6Paginate until maxItems or empty page

Input

FieldRequiredDescription
queryOne of query/URLKeyword (e.g. wireless earbuds)
searchUrlOne of query/URLFull Flipkart search/category URL (keeps filters)
sortNorelevance, price_asc, price_desc, popularity, recency_desc
maxItemsNo1–200 (default 40)
proxyConfigurationNoDefault RESIDENTIAL; Actor injects IN if country empty

Example

{
"query": "wireless earbuds",
"sort": "relevance",
"maxItems": 40,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "IN"
}
}

Example with search URL

{
"searchUrl": "https://www.flipkart.com/search?q=iphone+15&sid=tyy%2C4io",
"maxItems": 20
}

Output example

{
"productId": "MOBGTAGPHZXYABC",
"title": "boAt Airdopes 141 Bluetooth Truly Wireless…",
"price": 999.0,
"mrp": 4490.0,
"discountPercent": 77.0,
"currency": "INR",
"rating": 4.1,
"ratingCount": 185432,
"brand": "boAt",
"detailUrl": "https://www.flipkart.com/boat-airdopes-…/p/itm…",
"imageUrl": "https://rukminim2.flixcart.com/image/312/312/…",
"keySpecs": ["Bluetooth 5.0", "Up to 42 Hours Playback"],
"query": "wireless earbuds",
"scrapedAt": "2026-09-22T00:00:00Z",
"error": false,
"errorMessage": null
}

Output fields

FieldNotes
productIdFlipkart product / listing id when present
title, brandFrom titles / brand fields
price, mrp, discountPercentINR; discount from totalDiscount or derived
currencyAlways INR
rating, ratingCountAverage + count
detailUrl, imageUrlAbsolute URLs ({@width} → 312)
keySpecsList of highlight strings (or string fallback)
query, scrapedAt, error, errorMessageRun metadata

Quick start (API)

from apify_client import ApifyClient
client = ApifyClient("<YOUR_TOKEN>")
run = client.actor("noahadler/flipkart-products").call(
run_input={
"query": "wireless earbuds",
"maxItems": 20,
"proxyConfiguration": {
"useApifyProxy": True,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "IN",
},
}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item.get("title"), item.get("price"), item.get("detailUrl"))

Use cases

  • India ecommerce price / discount monitoring
  • Catalog snapshots for PPE pipelines
  • Competitor assortment vs Amazon.in / other IN marketplaces
  • Lead gen for brands / sellers visible on Flipkart search

Limitations

  • Akamai: without RESIDENTIAL IN, runs often soft-fail with a clear error row.
  • SSR layout: Flipkart may change slot IDs; this Actor keys off PRODUCT_SUMMARY, not a fixed slot.
  • Search cards only (v0.1): no deep /p/itm… enrichment, no reviews crawl.
  • Respect Flipkart Terms of Service and applicable laws.

FAQ

Do I need both query and searchUrl?
No — provide either. If both are set, the Actor uses searchUrl for fetching and keeps query as metadata when present.

Why error on first run?
Almost always missing India residential proxy. Enable Apify Proxy → RESIDENTIAL → IN.

Does this use Playwright?
No. HTTP only (curl_cffi + Chrome TLS fingerprint).


Keywords

flipkart scraper, flipkart api, india ecommerce, flipkart product search, INR price mrp discount, flipkart catalog dataset, PPE flipkart, india marketplace scraper, wireless earbuds flipkart