Skip to main content
Thirdwatchthirdwatch
E-commerce & products

Scrape Meesho Products for India Social Commerce (2026)

Pull Meesho catalog data with Thirdwatch — product name, price, MRP, discount, rating, review count, image, URL. India Tier 2/3 coverage. Python recipes.

May 12, 2026 · 5 min read · 1,087 words
See the scraper →

Thirdwatch's Meesho Scraper returns Meesho product search and category data — product_name, brand, price, original_price (MRP), discount_percent, rating, rating_count, image, and url. Built for India social-commerce researchers, Tier 2/3 market analysts, brand teams tracking reseller pricing, and dropshippers researching low-cost catalog opportunities.

Why scrape Meesho for India social commerce

Meesho is India's largest social-commerce marketplace, with over 175 million transacting users and the deepest catalog coverage in Tier 2/3 cities — exactly where Flipkart and Amazon India coverage thins out. According to Meesho's DRHP / IPO disclosure and Bain India's How India Shops 2025 report, more than 80% of Meesho's orders originate from non-metro pin codes, and women's ethnic wear, kids, and home goods categories see materially deeper SKU coverage at materially lower price points than competing marketplaces.

For India e-commerce researchers this matters. A pan-India product dataset built only on Flipkart + Amazon misses the Tier 2/3 reseller-driven catalog where most consumer growth is happening. A brand team monitoring unauthorized resale of its inventory has to monitor Meesho — that is where the unauthorized resale concentrates. A dropshipper researching low-CAC product categories needs Meesho price floors to benchmark sourcing economics. All of these reduce to the same operational shape: keyword-driven product pulls returning structured rows.

How does this compare to alternatives?

Three options for getting Meesho product data into a pipeline:

Approach Reliability Setup time Maintenance
Meesho Supplier API Restricted to your own listings Requires seller account Per-API quotas
Manual browsing + spreadsheet Low; doesn't scale Continuous analyst time High
Thirdwatch Meesho Scraper Production-grade, anti-bot handled 5 minutes Thirdwatch tracks Meesho changes

Meesho has no public product-search API, and the Supplier API only covers your own listings. The Meesho Scraper actor page gives you the public catalog at pay-per-result pricing — no application process, no approval gate, no use-case restriction beyond standard public-data norms.

How to scrape Meesho for catalog research 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. Every example below assumes the token is in APIFY_TOKEN:

export APIFY_TOKEN="apify_api_xxxxxxxxxxxxxxxx"

Step 2: How do I pull a multi-category catalog snapshot?

Pass each search term as a queries element, set maxResults, and optionally narrow with category and sortBy.

import os, requests, datetime, json, pathlib

ACTOR = "thirdwatch~meesho-scraper"
TOKEN = os.environ["APIFY_TOKEN"]

QUERIES = [
    "kurti", "saree", "anarkali suit",
    "kids ethnic wear", "kitchen storage",
    "ladies handbag", "cotton bedsheet",
]

resp = requests.post(
    f"https://api.apify.com/v2/acts/{ACTOR}/run-sync-get-dataset-items",
    params={"token": TOKEN},
    json={
        "queries": QUERIES,
        "category": "all",
        "sortBy": "popularity",
        "maxResults": 80,
    },
    timeout=900,
)
records = resp.json()
today = datetime.date.today().isoformat()
pathlib.Path("snapshots").mkdir(exist_ok=True)
pathlib.Path(f"snapshots/meesho-{today}.json").write_text(json.dumps(records))
print(f"{today}: {len(records)} products across {len(QUERIES)} keywords")

7 keywords × ~50 popularity-sorted products each = ~350 records — a useful weekly baseline for India social-commerce research.

Step 3: How do I browse a single category without keywords?

For deep coverage of one Meesho category (e.g. Women's Kurtas), leave queries empty and pull from the category directly.

resp = requests.post(
    f"https://api.apify.com/v2/acts/{ACTOR}/run-sync-get-dataset-items",
    params={"token": TOKEN},
    json={
        "queries": [],
        "category": "women-kurtas",
        "sortBy": "newest",
        "maxResults": 500,
    },
    timeout=900,
)
print(f"{len(resp.json())} kurta SKUs sorted by newest")

category accepts top-level Meesho category slugs (women-ethnic, women-kurtas, home-kitchen, electronics, etc.); sortBy accepts relevance, popularity, priceAsc, priceDesc, rating, newest, discount. Combining category=women-kurtas + sortBy=newest is the canonical "what's freshly listed in this category" query for trend research.

Step 4: How do I filter for the Meesho price floor by category?

Meesho's value proposition is price. Use minPrice and maxPrice to constrain to the social-commerce price band you care about and then aggregate by category.

import pandas as pd

resp = requests.post(
    f"https://api.apify.com/v2/acts/{ACTOR}/run-sync-get-dataset-items",
    params={"token": TOKEN},
    json={
        "queries": ["cotton saree", "georgette saree", "silk saree"],
        "minPrice": 200,
        "maxPrice": 1500,
        "sortBy": "priceAsc",
        "maxResults": 100,
    },
    timeout=600,
)
df = pd.DataFrame(resp.json())

floor = df.groupby("category").price.agg(["min", "median", "count"]).round(0)
print(floor.sort_values("median"))

ratings = df[df.rating_count >= 100].sort_values("rating", ascending=False)
print(ratings[["product_name", "price", "original_price",
               "discount_percent", "rating", "rating_count"]].head(15))

The rating_count >= 100 filter is the canonical "real product" cutoff on Meesho — products with rating counts below this are usually too new to draw conclusions from, and review-bombed outliers get smoothed out at 100+ reviews. The price-floor aggregation by category is the headline metric for any India-vs-elsewhere sourcing study.

Sample output

A single record from the dataset looks like this. A 50-row dump weighs ~30 KB.

[
  {
    "product_name": "Women's Cotton Anarkali Kurti with Palazzo",
    "brand": "Anubhutee",
    "price": 449,
    "original_price": 1299,
    "discount_percent": 65,
    "rating": 4.1,
    "rating_count": 8234,
    "image": "https://images.meesho.com/images/products/...",
    "url": "https://www.meesho.com/womens-cotton-anarkali-kurti-with-palazzo/p/abc123",
    "category": "women-ethnic"
  },
  {
    "product_name": "Kids Cotton Frock Combo Pack of 3",
    "brand": null,
    "price": 299,
    "original_price": 899,
    "discount_percent": 66,
    "rating": 3.9,
    "rating_count": 2104,
    "image": "https://images.meesho.com/images/products/...",
    "url": "https://www.meesho.com/kids-cotton-frock-combo/p/def456",
    "category": "kids"
  }
]

url is the canonical natural key for cross-snapshot dedup. original_price populated means the listing is discounted (and on Meesho almost everything is — 50-70% off the MRP is the norm). brand is frequently null because most Meesho catalog inventory is unbranded reseller-supplied SKUs — that is the social-commerce model. discount_percent is numeric, parsed off the listing.

Common pitfalls

Four things go wrong in production Meesho pipelines. Unbranded SKUsbrand is null on most listings; do not treat null brand as a data-quality bug, it is the structural reality of social commerce. MRP inflation — Meesho MRPs are often deliberately inflated to support high discount percentages; the original_price field reflects what the listing shows, not a true market reference price. For genuine discount analysis, cross-check against the same SKU on Flipkart or Amazon. Duplicate SKUs across resellers — the same physical product is often re-uploaded by multiple resellers at different price points; dedupe by image hash + product_name fuzz, not by url alone, for category-level analysis. Stockouts during sale events — Meesho Mega Blockbuster Sale and similar events cause rapid stockouts and price cycling; schedule hourly during sale windows.

Thirdwatch's actor handles Meesho's anti-bot defenses (the platform aggressively blocks raw HTTP clients) and tracks site changes so your pipeline keeps working. You write the keyword list; the actor returns clean structured rows. Pair Meesho with our Flipkart Scraper for marketplace comparison and our AliExpress Scraper for sourcing-side economics.

Related use cases

Frequently asked questions

Why scrape Meesho instead of Flipkart or Amazon India?

Meesho is the largest social-commerce platform in India and dominates Tier 2/3 cities, where Flipkart and Amazon India coverage thins out. Categories like women's ethnic wear, kids, and home goods have deeper Meesho SKU coverage and materially lower price points — essential for any India-wide e-commerce dataset.

What fields does the Meesho Scraper return?

Each record contains product_name, brand, price (INR, post-discount), original_price (MRP), discount_percent, rating (1-5), rating_count, image, url, and category. Prices and MRP are numeric. The url is the canonical natural key for cross-snapshot dedup and product-page navigation.

How fresh is Meesho data?

Every run pulls live from meesho.com at request time. Meesho prices change daily across categories as resellers rebalance margins. For active price-monitoring, schedule the actor at daily cadence; for trend research weekly is sufficient. There is no caching layer between the actor and the live catalog.

Does Meesho have an official API?

Meesho does not offer a public product-search API. Its Supplier API only covers your own listings if you are a seller on the platform, and Meesho Partner programs are restricted to logistics and ad partners. For catalog research the public product pages are the only access path, which is what the actor scrapes.

How many products can I pull per run?

Up to 1,000 products per query, multiple queries per run. A typical catalog-research sweep pulls 30-100 products across 10-20 keywords. Larger sweeps (500+ per keyword) are supported and used for category-trend research. Pricing is per result so cost scales linearly with volume.

Related

Try it yourself

100 free credits, no credit card.

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