Skip to main content
Thirdwatchthirdwatch
E-commerce & products

Monitor Snapdeal vs Flipkart India Pricing for the Same SKUs

Run side-by-side price diffs across Snapdeal and Flipkart with Thirdwatch — daily snapshots, INR normalisation, fuzzy SKU matching, cross-marketplace deltas.

May 12, 2026 · 6 min read · 1,299 words
See the scraper →

Thirdwatch's Snapdeal Scraper and Flipkart Scraper let growth and ops teams run side-by-side price diffs across India's value and premium marketplaces. This guide walks the full pattern: parallel keyword sweeps, fuzzy SKU matching, and cross-marketplace delta alerting.

Why monitor Snapdeal vs Flipkart for the same SKUs

Snapdeal and Flipkart sit on opposite ends of the Indian e-commerce price spectrum. Flipkart is the premium-leaning marketplace — branded SKUs, fashion forward, electronics-heavy, with 40%+ India market share by GMV per Walmart's 2024 annual report. Snapdeal is the value-segment marketplace — unbranded apparel, generic kitchenware, Tier 2/3 strongholds, with a Bain India E-commerce 2024 report estimating the value segment at over 60% of new shopper growth. For any category that spans both — bedsheets, kitchenware, mobile accessories, basic apparel — the same product type sells at materially different prices on each platform.

The job-to-be-done is structured. A growth team at a private-label brand wants to know how their Flipkart price compares to comparable Snapdeal listings before adjusting their own. A brand-protection team monitors Snapdeal for unauthorised resellers carrying their SKUs at sub-MSRP value prices, leaking margin from their Flipkart channel. An arbitrage operator looks for SKUs where Snapdeal listings are below Flipkart's, sourcing from one and listing on the other. A consulting analyst building an India e-commerce price index needs both marketplaces represented to capture the full distribution. All reduce to parallel keyword sweeps with fuzzy SKU matching downstream.

How does this compare to alternatives?

Approach Reliability Setup time Maintenance
Manual side-by-side browsing Doesn't scale beyond 10-20 SKUs Continuous Analyst time
Roll your own dual-marketplace scraper Snapdeal + Flipkart each have distinct anti-bot patterns 2-4 weeks Two pipelines to maintain
Generic price-monitoring SaaS Usually skips Snapdeal entirely Sales cycle Vendor-managed, India coverage often thin
Thirdwatch Snapdeal + Flipkart Scrapers Production-tested on India residential infrastructure 10 minutes Thirdwatch tracks both marketplaces

Generic Indian retail-monitoring SaaS routinely skips Snapdeal because its value-segment catalog is harder to map. The Snapdeal Scraper and Flipkart Scraper give you both in one consistent interface.

How to monitor Snapdeal vs Flipkart 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. Both actor calls below use the same token:

export APIFY_TOKEN="apify_api_xxxxxxxxxxxxxxxx"

Step 2: How do I pull both marketplaces in one job?

Run the two actors in parallel with the same keyword list. Persist each result set as a separate snapshot.

import os, requests, datetime, json, pathlib, concurrent.futures

TOKEN = os.environ["APIFY_TOKEN"]
KEYWORDS = [
    "cotton bedsheet double bed",
    "kitchen storage container set",
    "mobile back cover redmi note 13",
    "men formal shirt full sleeve",
    "wall clock decorative",
]

def run(actor, payload):
    resp = requests.post(
        f"https://api.apify.com/v2/acts/{actor}/run-sync-get-dataset-items",
        params={"token": TOKEN},
        json=payload,
        timeout=900,
    )
    return resp.json()

with concurrent.futures.ThreadPoolExecutor(max_workers=2) as ex:
    fut_sd = ex.submit(run, "thirdwatch~snapdeal-scraper",
                       {"queries": KEYWORDS, "maxResults": 50, "sortBy": "popularity"})
    fut_fk = ex.submit(run, "thirdwatch~flipkart-products-scraper",
                       {"queries": KEYWORDS, "maxResults": 50})
    sd, fk = fut_sd.result(), fut_fk.result()

today = datetime.date.today().isoformat()
pathlib.Path("snapshots").mkdir(exist_ok=True)
pathlib.Path(f"snapshots/snapdeal-{today}.json").write_text(json.dumps(sd))
pathlib.Path(f"snapshots/flipkart-{today}.json").write_text(json.dumps(fk))
print(f"Snapdeal: {len(sd)}, Flipkart: {len(fk)}")

5 keywords × ~50 results × 2 marketplaces = ~500 records per day. Both pulls run in parallel and finish in roughly the same wall-clock time as a single one.

Step 3: How do I match the same SKU across both marketplaces?

URLs are not portable across marketplaces, so use fuzzy product-name matching with rapidfuzz. Normalise titles aggressively — lowercase, strip punctuation, collapse whitespace — before scoring.

import pandas as pd, re
from rapidfuzz import process, fuzz

def parse_inr(s):
    if s is None: return None
    digits = re.sub(r"[^\d]", "", str(s))
    return int(digits) if digits else None

def normalize(s):
    s = (s or "").lower()
    s = re.sub(r"[^a-z0-9 ]", " ", s)
    return re.sub(r"\s+", " ", s).strip()

sd_df = pd.DataFrame(sd)
fk_df = pd.DataFrame(fk)
sd_df["price_num"] = sd_df.price
fk_df["price_num"] = fk_df.price.apply(parse_inr)
sd_df["name_norm"] = sd_df.product_name.apply(normalize)
fk_df["name_norm"] = fk_df.title.apply(normalize)

matches = []
fk_index = fk_df.name_norm.tolist()
for _, sd_row in sd_df.iterrows():
    best = process.extractOne(sd_row.name_norm, fk_index, scorer=fuzz.token_set_ratio)
    if best and best[1] >= 80:
        fk_row = fk_df.iloc[best[2]]
        matches.append({
            "sd_title": sd_row.product_name, "fk_title": fk_row.title,
            "sd_price": sd_row.price_num, "fk_price": fk_row.price_num,
            "match_score": best[1],
        })

matched = pd.DataFrame(matches).dropna(subset=["sd_price", "fk_price"])
print(f"{len(matched)} fuzzy matches at 80+ token-set ratio")

A token-set ratio of 80+ is the canonical threshold for "almost certainly the same product type" — high enough to filter false positives, low enough to handle the marketing-copy variability between marketplaces.

Step 4: How do I compute the cross-marketplace price delta and alert on arbitrage?

For each matched pair, compute the relative gap and alert when Snapdeal is materially cheaper than Flipkart (or vice versa).

import requests as r

matched["delta_pct"] = (matched.sd_price - matched.fk_price) / matched.fk_price
matched["abs_delta"] = matched.fk_price - matched.sd_price

# Snapdeal materially cheaper than Flipkart (arbitrage opportunity)
sd_cheaper = matched[matched.delta_pct <= -0.25].sort_values("delta_pct")

for _, row in sd_cheaper.head(10).iterrows():
    r.post("https://hooks.slack.com/services/.../...",
           json={"text": (f"Snapdeal cheaper by {abs(row.delta_pct)*100:.0f}%: "
                          f"*{row.sd_title[:60]}* "
                          f"₹{int(row.sd_price):,} vs Flipkart ₹{int(row.fk_price):,}")},
           timeout=10)

# Flipkart cheaper than Snapdeal (unusual, worth investigating)
fk_cheaper = matched[matched.delta_pct >= 0.25]
print(f"{len(sd_cheaper)} SKUs where Snapdeal is 25%+ cheaper")
print(f"{len(fk_cheaper)} SKUs where Flipkart is 25%+ cheaper (unusual)")

A 25%+ gap is the canonical arbitrage threshold — wide enough to absorb shipping, return-rate friction, and seller-reliability discount, narrow enough to surface in volume. For categories where Flipkart is unexpectedly cheaper, that's usually a Flipkart Big Billion Days promo undercutting Snapdeal's steady-state pricing, which is itself a useful signal for promotion-cycle timing.

Sample output

A matched-pair record after the diff looks like this:

[
  {
    "sd_title": "Cotton Double Bedsheet with 2 Pillow Covers",
    "fk_title": "Cotton Double Bed Sheet With 2 Pillow Covers",
    "sd_price": 549,
    "sd_original_price": 2999,
    "fk_price": 899,
    "fk_original_price": 1999,
    "delta_pct": -0.39,
    "match_score": 94,
    "verdict": "snapdeal_cheaper"
  },
  {
    "sd_title": "Redmi Note 13 Pro Mobile Back Cover",
    "fk_title": "Redmi Note 13 Pro Back Cover Case",
    "sd_price": 199,
    "sd_original_price": 999,
    "fk_price": 249,
    "fk_original_price": 599,
    "delta_pct": -0.20,
    "match_score": 88,
    "verdict": "snapdeal_cheaper"
  }
]

The delta_pct is the load-bearing comparison axis — it normalises across price magnitudes so a INR 50 gap on a INR 200 product weighs the same as a INR 250 gap on a INR 1,000 product. The match_score lets you tune precision-recall in your pipeline: bump to 90+ for tighter matches, drop to 70 for broader category-level signals.

Common pitfalls

Three things go wrong in cross-marketplace pipelines. Non-comparable INR formats — Snapdeal prices arrive as integers; Flipkart prices arrive as strings with Indian comma format (₹1,29,999). Normalise both to integer paise or rupees before comparing. Match-score over-tuning — at 95+ ratio you only catch literally identical titles, which under-counts real overlap; at 60 ratio you start matching across product categories. The 80-85 band is the sweet spot for marketplace-marketplace comparison. Shipping and fee leakage — headline price gaps frequently collapse once Snapdeal's sub-INR 500 shipping charge or Flipkart's plus-membership delivery upgrade is factored in. For pure arbitrage analysis, model the all-in cost, not just the displayed price.

Thirdwatch's actors use production-grade anti-bot infrastructure with India residential routing for both marketplaces. The pure-HTTP architecture means a 500-record cross-marketplace sweep completes in a few minutes. Pair the duo with our Amazon Scraper for tri-marketplace coverage and our Meesho Scraper for the social-commerce value adjacent. A fourth subtle issue: brand variance — Flipkart sellers frequently include brand names in titles, Snapdeal value-segment sellers often omit them. For brand-anchored matching, build a brand alias dictionary or fall back to category-attribute matching.

Related use cases

Frequently asked questions

Why monitor Snapdeal and Flipkart together?

The two marketplaces occupy structurally different price tiers. Flipkart skews premium and branded; Snapdeal skews value and unbranded. For categories that span both — bedsheets, kitchenware, mobile accessories — the same SKU type can sell for very different prices on each platform. Growth teams use the diff to find arbitrage; brand teams use it to detect unauthorised resellers carrying their SKUs at Snapdeal value prices.

How do I match the same SKU across two marketplaces?

Exact-URL matching doesn't work because each marketplace uses its own URL scheme. Use fuzzy product-name matching — normalise titles by lowercasing, stripping punctuation, and using a token-set ratio. For branded products, anchor on brand + model + capacity (e.g. samsung galaxy m14 128gb). For unbranded, anchor on category + key attributes (cotton bedsheet double king-size).

Are prices directly comparable across marketplaces?

Yes for the headline INR price, but factor in delivery fees, return policies, and seller reliability before treating a delta as a true arbitrage signal. Snapdeal often shows lower headline prices but charges shipping below INR 500 order value, while Flipkart commonly bundles free delivery above INR 500. A 10% headline gap can collapse once these are normalised.

How often should I run a cross-marketplace diff?

Daily at the same hour for both marketplaces — schedule both sweeps at 6am IST so the snapshot pair is temporally aligned. Cross-marketplace arbitrage windows are usually 24-72 hours during steady-state trading and shrink to a few hours during festival sales. Daily cadence captures most signal; sub-daily is only useful during sale events.

What fields should I use for the comparison?

Anchor on price (selling price in INR) as the primary axis. Secondary signals: original_price (MRP) for headline-discount comparison, rating and rating_count for buyer sentiment, brand and seller for trust. Avoid comparing discount_percent directly — both marketplaces show inflated MRPs at different rates, so percentage discounts aren't apples-to-apples.

What about Amazon India?

Amazon India is the third leg of any complete Indian cross-marketplace view — premium-leaning like Flipkart but with stronger fulfilment and a different seller cohort. Thirdwatch's Amazon Scraper completes the trio. For value-segment research, Snapdeal plus Meesho are the canonical pair; for premium plus mid-tier, Flipkart plus Amazon India. Cross-marketplace work usually combines all four.

Related

Try it yourself

100 free credits, no credit card.

About 30 real searches. Add the MCP to Claude or Cursor in two minutes.