Find Snapdeal Bestsellers by Category for Value Sourcing
Surface Snapdeal's category bestsellers with Thirdwatch — rating, review count, discount, popularity sort. For ops and founders sourcing budget SKUs.

Thirdwatch's Snapdeal Scraper lets ops teams and founders surface category bestsellers across India's value-segment marketplace. This guide walks the bestseller-discovery pattern: category-anchored sweeps, popularity sort, and rating-weighted ranking to identify the SKUs that actually move volume on Snapdeal.
Why scrape Snapdeal bestsellers by category
Snapdeal indexes the Indian value segment — apparel under INR 500, unbranded kitchenware, generic mobile accessories, regional home goods. For founders validating a budget D2C concept, ops teams sourcing private-label SKUs, or analysts mapping Bharat-segment consumption, knowing which products actually move volume on Snapdeal is the load-bearing signal. Per IBEF's 2024 India E-commerce Industry Report, India's value-segment e-commerce GMV crossed USD 60 billion in 2023 and continues to grow at over 25% CAGR, driven almost entirely by Tier 2 and Tier 3 cities. The SKUs that ranked top on Snapdeal in that environment are the canonical reference set for any value-D2C founder.
The job-to-be-done is structured. A founder evaluating a sub-INR 500 kitchenware D2C concept wants the top 100 Snapdeal kitchenware SKUs as a category map. An ops team at an established value brand needs weekly visibility into which subcategories are gaining vs losing momentum. A sourcing manager at a B2B aggregator wants the bestseller list to brief their supplier network. A consulting analyst studying Bharat consumption patterns maps category bestsellers to demographic clusters. All reduce to category-anchored popularity sweeps with momentum-tracking over time.
How does this compare to alternatives?
| Approach | Reliability | Setup time | Maintenance |
|---|---|---|---|
| Manual browsing of Snapdeal category pages | Doesn't scale beyond 20-30 SKUs | Continuous | Analyst time |
| Roll your own scraper | Snapdeal rate-limits foreign IPs; brittle | 1-2 weeks build | Ongoing proxy ops |
| Sourcing-platform reports | Lag-time of weeks, often skip Snapdeal | Sales cycle | Vendor-managed |
| Thirdwatch Snapdeal Scraper | Production-tested on India residential infrastructure | 5 minutes | Thirdwatch tracks Snapdeal changes |
There is no official Snapdeal bestseller API. Sourcing-platform research reports usually focus on Amazon and Flipkart, with thin or stale Snapdeal coverage. The Snapdeal Scraper actor page gives you direct category access at pay-per-result pricing.
How to find Snapdeal bestsellers in 4 steps
Step 1: How do I authenticate against Apify?
Sign in at apify.com (free tier, no credit card), open Settings → Integrations, and copy your personal API token:
export APIFY_TOKEN="apify_api_xxxxxxxxxxxxxxxx"Step 2: How do I pull bestsellers across a category sweep?
Skip queries and use the category input with popularity sort to walk Snapdeal's native category landing pages. The actor maps the category enum to a Snapdeal native slug where available and falls back to a keyword search otherwise.
import os, requests, json, pathlib
ACTOR = "thirdwatch~snapdeal-scraper"
TOKEN = os.environ["APIFY_TOKEN"]
CATEGORIES = [
"men-apparel",
"women-apparel",
"mobiles",
"home-and-kitchen",
"kitchen-appliances",
"beauty-personal-care",
"bags-luggage",
"kids",
]
all_results = {}
for cat in CATEGORIES:
resp = requests.post(
f"https://api.apify.com/v2/acts/{ACTOR}/run-sync-get-dataset-items",
params={"token": TOKEN},
json={
"queries": [],
"category": cat,
"maxResults": 200,
"sortBy": "popularity",
},
timeout=900,
)
records = resp.json()
all_results[cat] = records
print(f"{cat}: {len(records)} products")
pathlib.Path("bestsellers").mkdir(exist_ok=True)
pathlib.Path("bestsellers/snapshot.json").write_text(json.dumps(all_results))8 categories × 200 popularity-sorted results = ~1,600 records covering the bulk of Snapdeal's value catalog. Run this weekly to maintain a fresh category map.
Step 3: How do I rank bestsellers using popularity, rating, and review count together?
Popularity sort is the right anchor, but a composite score combining it with rating and review count surfaces the SKUs that are both popular and well-loved. Use position-in-popularity-sort as the primary signal, weighted by rating × log(rating_count).
import pandas as pd, numpy as np
rows = []
for cat, records in all_results.items():
for pos, r in enumerate(records, 1):
rows.append({**r, "category_input": cat, "pop_rank": pos})
df = pd.DataFrame(rows)
# Composite bestseller score: high pop rank + high rating + many reviews
df["rating_filled"] = df.rating.fillna(0)
df["rc_filled"] = df.rating_count.fillna(0)
df["log_rc"] = np.log1p(df.rc_filled)
# Lower pop_rank is better; invert for score
df["pop_score"] = 1 / df.pop_rank
df["bestseller_score"] = (
df.pop_score * 0.4 +
(df.rating_filled / 5) * 0.3 +
(df.log_rc / df.log_rc.max()) * 0.3
)
top_per_cat = (
df[df.rc_filled >= 500]
.sort_values("bestseller_score", ascending=False)
.groupby("category_input")
.head(20)
)
print(top_per_cat[
["category_input", "product_name", "price", "discount_percent",
"rating", "rating_count", "bestseller_score"]
].to_string(index=False))The 500-review threshold filters out brand-new listings that haven't accumulated buyer signal. The composite score weights popularity 40%, rating 30%, and log review count 30% — a balance that surfaces genuine category leaders without rewarding either pure volume or pure quality alone.
Step 4: How do I detect rising bestsellers week-over-week?
Established bestsellers are useful but rising bestsellers are where opportunity lives. Compare weekly snapshots and track which SKUs are gaining momentum.
import glob, datetime
snapshots = {}
for f in sorted(glob.glob("bestsellers/snapshot-*.json")):
date_str = pathlib.Path(f).stem.replace("snapshot-", "")
snapshots[date_str] = json.loads(pathlib.Path(f).read_text())
dates = sorted(snapshots.keys())
this_week, last_week = dates[-1], dates[-2]
def to_df(snap):
rows = []
for cat, records in snap.items():
for pos, r in enumerate(records, 1):
rows.append({
"url": r.get("url"),
"product_name": r.get("product_name"),
"category_input": cat,
"pop_rank": pos,
"rating_count": r.get("rating_count") or 0,
"price": r.get("price"),
})
return pd.DataFrame(rows)
this_df = to_df(snapshots[this_week]).set_index("url")
last_df = to_df(snapshots[last_week]).set_index("url")
joined = this_df.join(last_df, rsuffix="_last").dropna(subset=["pop_rank_last"])
joined["rank_delta"] = joined.pop_rank_last - joined.pop_rank
joined["rc_growth"] = (joined.rating_count - joined.rating_count_last) / joined.rating_count_last.replace(0, 1)
risers = joined[
(joined.rank_delta >= 20) | (joined.rc_growth >= 0.30)
].sort_values("rank_delta", ascending=False)
print(f"{len(risers)} rising bestsellers (popularity gained 20+ positions or review count grew 30%+)")
print(risers[["product_name", "category_input", "pop_rank", "pop_rank_last", "rc_growth"]].head(20))A 20-position gain in popularity rank or 30%+ growth in review count week-over-week is a meaningful momentum signal — large enough to filter noise, small enough to surface real trend SKUs before they saturate.
Sample output
A bestseller record with derived fields looks like this:
[
{
"product_name": "Stainless Steel Kitchen Storage Container Set of 6",
"price": 449,
"original_price": 1999,
"discount_percent": 77,
"rating": 4.2,
"rating_count": 12450,
"category": "Home & Kitchen > Storage",
"category_input": "home-and-kitchen",
"pop_rank": 3,
"bestseller_score": 0.81,
"url": "https://www.snapdeal.com/product/.../445566778"
},
{
"product_name": "Womens Cotton Printed Kurti Combo Pack of 3",
"price": 599,
"original_price": 2499,
"discount_percent": 76,
"rating": 4.0,
"rating_count": 8920,
"category": "Women's Apparel > Kurtis",
"category_input": "women-apparel",
"pop_rank": 5,
"bestseller_score": 0.76,
"url": "https://www.snapdeal.com/product/.../112233445"
}
]The pop_rank is the position in the popularity-sorted results — rank 1 is Snapdeal's top result for that category. The composite bestseller_score is downstream-derived. The high rating_count (8,000-12,000+) is what separates a genuine bestseller from a high-ranked but low-traction listing — bestseller status requires both visibility and actual buyer engagement.
Common pitfalls
Three things go wrong in bestseller-research pipelines. Popularity is platform-defined, not market-defined — Snapdeal's plrty sort blends purchase velocity, recency, and platform-internal signals; it correlates with bestseller status but isn't a true sales ranking. Treat it as a strong proxy, not ground truth. Review-rate variance across categories — apparel categories have lower reviewer-conversion than electronics (apparel buyers leave fewer reviews per purchase). Don't compare absolute rating_count across categories; rank within each category. Festival-window distortion — Diwali, Republic Day, and Independence Day sales reshuffle the bestseller leaderboard within days. For steady-state research, pull snapshots outside festival windows or explicitly tag them.
Thirdwatch's actor uses production-grade anti-bot infrastructure with India residential routing, recommended for stable category sweeps. A 1,600-record cross-category sweep completes in a few minutes. Pair Snapdeal with our Flipkart Scraper for premium-vs-value bestseller comparison, our Meesho Scraper for social-commerce value adjacent bestsellers, and our Amazon Scraper for the cross-marketplace baseline. A fourth subtle issue: Snapdeal occasionally surfaces sponsored listings in popularity-sorted results without an explicit flag — anchor your bestseller dataset on a 500+ review threshold to filter these out.
Related use cases
Frequently asked questions
What defines a bestseller on Snapdeal?
Snapdeal doesn't publish an official bestseller flag, but the popularity sort (plrty) ranks listings by purchase momentum, recency, and conversion signals. Combined with high rating_count (1,000+ reviews) and consistent 3.5+ rating, popularity-sorted results are a reliable proxy for genuine bestsellers. Filter on these jointly rather than trusting any single signal.
Which categories are best for sourcing research?
Snapdeal's structural strength is the value segment — apparel under INR 500, kitchenware, mobile accessories, home decor, beauty essentials. The actor's category enum covers all major Snapdeal departments: men-apparel, women-apparel, mobiles, home-and-kitchen, beauty-personal-care, and others. For founders validating a budget D2C concept, these are the canonical categories to map first.
How do I find rising bestsellers, not just established ones?
Compare weekly snapshots and track rating_count delta per SKU. A listing whose review count grows 30%+ week-over-week is gaining real momentum, regardless of its absolute position. Filter on this growth signal alongside the popularity sort to surface trend SKUs before they become saturated.
Can I get the actual sales numbers?
No marketplace publishes per-SKU sales numbers, and Snapdeal is no exception. The closest proxies are rating_count (reviews left, typically 1-3% of buyers leave one) and the popularity sort position. Combine these as a relative momentum signal; for absolute volume estimates, multiply rating_count by an industry-standard reviewer-conversion rate of 2%.
How often should I refresh bestseller snapshots?
Weekly is sufficient for category bestseller research — popularity rankings shift slowly outside festival windows. Schedule a Sunday-night sweep so Monday-morning analysis has fresh data. During Diwali, Republic Day, or Independence Day sales, tighten to twice-weekly to catch sale-driven leaderboard reshuffles.
What's the difference between sortBy popularity and sortBy rating?
Popularity (plrty) is Snapdeal's blended momentum signal — purchase velocity, recency, conversion rate. Rating sorts by average customer score, which surfaces highly-loved but possibly low-volume SKUs. For bestseller research, popularity is the right anchor; rating is a quality filter to apply on top, not a substitute for popularity.
Related
100 free credits, no credit card.
About 30 real searches. Add the MCP to Claude or Cursor in two minutes.