# Meesho Reviews Scraper — Ratings, Comments, Photos & Authors (`haketa/meesho-reviews-scraper`) Actor

Scrape Meesho product reviews & ratings: star rating, review text, reviewer name, review photos, helpful votes, date, plus product average rating, total ratings & full star distribution. Search by keyword or paste product URLs. Export to JSON, CSV or Excel.

- **URL**: https://apify.com/haketa/meesho-reviews-scraper.md
- **Developed by:** [Haketa](https://apify.com/haketa) (community)
- **Categories:** E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.75 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Meesho Reviews Scraper — Ratings, Comments, Photos & Authors

Collect **Meesho product reviews and ratings** as clean, structured data. Search by keyword or paste product URLs — every matching product comes back with its full review list and rating summary: star rating, review text, reviewer name, **review photos**, helpful votes, date, plus the product's **average rating, total ratings and full star distribution**.

Built for **Meesho sellers, brands, agencies, product researchers and market analysts** who need review and rating data in JSON, CSV or Excel instead of scrolling through product pages by hand.

***

### ✨ Why use this scraper

- **Every review, not just the first page** — paginates through a product's reviews so you get the full picture, not a sample.
- **Rating summary included** — average rating, total number of ratings, number of text reviews, and the complete 1–5 star distribution for each product.
- **Review photos** — the image URLs buyers attach to their reviews, so you can see the product as customers received it.
- **Rich review detail** — star rating, full comment text (emojis and all), reviewer name, reviewer level, helpful‑vote count and the review date.
- **Two ways to target products** — free‑text keyword search, or a direct list of product URLs.
- **Clean, typed output** — ratings as numbers, dates as text, images as arrays — ready for spreadsheets, dashboards and sentiment analysis.
- **Export anywhere** — JSON, CSV, Excel, HTML or via the Apify API and integrations.

***

### 🚀 Quick start

1. Enter one or more **search keywords** (for example `kurti`, `bluetooth earbuds`, `kids shoes`).
2. *(Optional)* Or paste specific **product URLs**.
3. Set **Products per keyword**, **Max reviews per product** and the overall **Maximum reviews**.
4. Click **Start**.

The scraper finds the matching products and returns one row per review, each carrying the product's rating summary alongside the individual review.

***

### 📥 Input

| Field | Type | Description |
|---|---|---|
| **Search keywords** (`searchQueries`) | array | Product keywords to search. The top products for each keyword are scraped for reviews. |
| **Product URLs** (`productUrls`) | array | Meesho product URLs (or product IDs) to scrape reviews from directly. |
| **Products per keyword** (`maxProductsPerQuery`) | integer | How many of the top products from each keyword to collect reviews for. |
| **Max reviews per product** (`maxReviewsPerProduct`) | integer | Maximum reviews collected per product. |
| **Maximum reviews (total)** (`maxItems`) | integer | Overall cap on review records saved. |
| **Concurrent products** (`maxConcurrency`) | integer | How many products to process in parallel. Recommended 2–5. |
| **Proxy configuration** (`proxyConfiguration`) | object | Indian residential proxies are recommended for reliable access. |

#### Example 1 — reviews for a keyword

```json
{
  "searchQueries": ["kurti"],
  "maxProductsPerQuery": 10,
  "maxReviewsPerProduct": 200
}
```

#### Example 2 — several categories

```json
{
  "searchQueries": ["bluetooth earbuds", "smart watch", "phone case"],
  "maxProductsPerQuery": 20,
  "maxReviewsPerProduct": 100,
  "maxItems": 5000
}
```

#### Example 3 — specific products

```json
{
  "productUrls": [
    "https://www.meesho.com/gown-party-wear-long-kurti/p/8bhiji",
    "https://www.meesho.com/mens-running-shoes/p/1a2b3c"
  ],
  "maxReviewsPerProduct": 500
}
```

***

### 📤 Output

Each **review** is one dataset item, carrying the product's rating summary alongside it. Example:

```json
{
  "productId": "8bhiji",
  "productName": "Adrika Graceful Kurtis",
  "productUrl": "https://www.meesho.com/gown-party-wear-long-kurti/p/8bhiji",
  "productPrice": 291,
  "productImage": "https://images.meesho.com/images/catalogs/165189236/cover/1/2/....jpg",
  "averageRating": 3.9,
  "ratingCount": 177,
  "reviewCount": 34,
  "ratingScale": 5,
  "ratingDistribution": { "1": 29, "2": 9, "3": 17, "4": 23, "5": 99 },
  "totalMediaCount": 12,
  "reviewId": 1636120246,
  "rating": 5,
  "comment": "Good product very light weight and comfortable 🥰",
  "reviewDate": "2026-04-26 11:44:45",
  "helpfulCount": 6,
  "authorName": "Meesho User",
  "authorLevel": "Beginner",
  "authorFollowers": 0,
  "images": [
    "https://images.meesho.com/images/ratings_reviews/7955961468/7995538579/..._0b4dbe50efec7.jpeg",
    "https://images.meesho.com/images/ratings_reviews/7955961468/7995538579/..._8e0e91f270c70.jpeg"
  ],
  "imageCount": 2,
  "videoCount": 0,
  "hasMedia": true,
  "scrapedAt": "2026-08-24T11:03:01.000Z"
}
```

#### Field reference

**Product context**

| Field | Description |
|---|---|
| `productId` | Meesho product identifier. |
| `productName` | Product name. |
| `productUrl` | Product page URL. |
| `productPrice` | Product price (INR). |
| `productImage` | Product cover image. |

**Rating summary (per product)**

| Field | Description |
|---|---|
| `averageRating` | Average star rating. |
| `ratingCount` | Total number of ratings. |
| `reviewCount` | Number of written reviews. |
| `ratingScale` | Rating scale (usually 5). |
| `ratingDistribution` | Count of ratings per star, 1–5. |
| `totalMediaCount` | Number of review photos/videos on the product. |

**Review**

| Field | Description |
|---|---|
| `reviewId` | Unique review identifier. |
| `rating` | Star rating of this review (1–5). |
| `comment` | Review text. |
| `reviewDate` | When the review was posted. |
| `helpfulCount` | Number of helpful votes. |
| `authorName` | Reviewer display name. |
| `authorLevel` | Reviewer gamification level, when available. |
| `authorFollowers` | Reviewer follower count, when available. |
| `images` | Array of review photo URLs. |
| `imageCount` | Number of photos on the review. |
| `videoCount` | Number of videos on the review. |
| `hasMedia` | Whether the review has any photo or video. |
| `scrapedAt` | ISO timestamp of the scrape. |

***

### 💡 Use cases

- **Meesho sellers** — monitor reviews on your own catalog and your competitors', spot recurring complaints, and act on quality issues fast.
- **Brands & manufacturers** — measure how your products are received on Meesho, track average rating over time, and gather voice‑of‑customer feedback.
- **Product research** — before sourcing or launching a product, read what buyers say about similar items and where they fall short.
- **Sentiment analysis** — feed review text into NLP models to quantify sentiment, extract themes, and surface feature requests.
- **Quality & returns analysis** — correlate low ratings and review photos with sizing, material or delivery problems.
- **Market & category research** — compare rating distributions across products and categories to find gaps and opportunities.
- **Competitor monitoring** — watch competitor listings' ratings and complaints and benchmark against your own.

***

### 🎯 Tips for best results

- **Search vs. URLs.** Use keywords to discover the top products in a category, or paste product URLs when you already know exactly which items you want.
- **Tune the caps.** `maxProductsPerQuery` controls breadth (how many products per keyword) and `maxReviewsPerProduct` controls depth (how many reviews each). `maxItems` is the overall stop.
- **Go deep on a few, or wide on many.** For a detailed study of one product, set a high `maxReviewsPerProduct`. For a category overview, set more products and fewer reviews each.
- **Analyse the distribution.** `ratingDistribution` tells you the shape of a product's ratings at a glance — a high average can still hide a cluster of angry 1‑star reviews.
- **Use the photos.** `images` links show the product as customers actually received it — invaluable for spotting quality and expectation gaps.
- **Filter after export.** Pull the reviews, then filter on `rating`, `helpfulCount`, `hasMedia` or `reviewDate` in your spreadsheet or database.

***

### 📈 Getting more results

- Increase **Max reviews per product** to go deeper on each product (the scraper paginates through all available reviews up to your cap).
- Increase **Products per keyword** to cover more of a category.
- Add **more keywords** to widen coverage across categories.
- Combine **search keywords** and **product URLs** in one run.

***

### 🛍️ Popular categories to scrape

Meesho spans a huge range of budget categories. Use any of these as **search keywords** — or combine them with a specific term (`cotton kurti`, `wireless earbuds`) to narrow the results.

**Women's fashion**

- `kurti`, `saree`, `kurta set`, `dress`, `top`, `leggings`, `nighty`, `dupatta`
- `ethnic wear`, `western wear`, `gown`, `palazzo`, `jeans`

**Men's fashion**

- `men t shirt`, `men shirt`, `men jeans`, `track pants`, `kurta`, `innerwear`

**Footwear & accessories**

- `sandals`, `sports shoes`, `heels`, `slippers`, `handbag`, `wallet`, `watch`, `sunglasses`

**Electronics & gadgets**

- `bluetooth earbuds`, `neckband`, `smart watch`, `phone case`, `charger`, `power bank`, `data cable`

**Home & kitchen**

- `bedsheet`, `curtains`, `door mat`, `kitchen organizer`, `containers`, `water bottle`, `wall clock`

**Beauty & personal care**

- `lipstick`, `kajal`, `face wash`, `hair oil`, `perfume`, `makeup kit`

**Kids & toys**

- `kids wear`, `baby dress`, `toys`, `kids shoes`, `school bag`

> Tip: pair a category with a quality or material term (`kurti cotton`, `earbuds gaming`) to focus the reviews on the exact kind of product you care about.

***

### 🧩 What you can build with the data

- **A rating tracker** — schedule the run and watch `averageRating` and `ratingDistribution` move over days and weeks for your products or your competitors'.
- **A complaint miner** — filter reviews to 1‑ and 2‑star, run the text through keyword extraction, and rank the top recurring issues.
- **A photo wall** — collect review `images` to see how a product actually arrives to customers, and catch mismatches with the listing photos.
- **A category benchmark** — compare average ratings and review volumes across dozens of products to find under‑served, high‑demand niches.
- **A voice‑of‑customer dashboard** — aggregate review text and sentiment by product and category for your team.
- **A pre‑sourcing check** — before buying stock, read the real reviews on comparable products and quantify the return‑risk signals.

***

### 🔌 Run it your way

- **Apify Console** — fill in the form and click Start.
- **API** — start runs and pull the dataset programmatically.
- **Scheduler** — run daily or weekly to track how ratings and reviews change over time.
- **Integrations** — push results to Google Sheets, Zapier, Make, webhooks, Slack, S3 and more.

***

### 📊 Reading the review data

A few quick ways to turn the raw output into insight:

- **True average vs. headline average.** `averageRating` is Meesho's figure. You can recompute a weighted average yourself from `ratingDistribution` to double‑check it and to weight recent reviews differently:
  `(1×n1 + 2×n2 + 3×n3 + 4×n4 + 5×n5) / (n1+n2+n3+n4+n5)`.
- **Polarisation.** A product with lots of 5‑star **and** lots of 1‑star ratings is polarising — average alone hides that. Look at `ratingDistribution` for a U‑shape.
- **Negative share.** `(n1 + n2) / ratingCount` is the share of unhappy buyers — a cleaner quality signal than the average for return‑risk analysis.
- **Engagement.** `helpfulCount` shows which reviews other shoppers found useful; sort by it to surface the most influential feedback.
- **Photo proof.** Filter `hasMedia = true` to read only reviews with photos — the most trustworthy signal of what actually ships.
- **Text mining.** Concatenate `comment` across a product or category and run keyword/topic extraction to rank recurring themes (sizing, fabric, delivery, packaging …).

#### Field types at a glance

| Field | Type | Notes |
|---|---|---|
| `rating`, `helpfulCount`, `imageCount`, `videoCount` | number | Integers. |
| `averageRating` | number | Decimal, e.g. 3.9. |
| `ratingCount`, `reviewCount` | number | Totals for the product. |
| `ratingDistribution` | object | Keys `1`–`5`, values are counts. |
| `comment`, `authorName`, `reviewDate`, `productName` | string | Text; `comment` may be empty for rating‑only reviews. |
| `images` | array | List of photo URLs. |
| `hasMedia` | boolean | True when the review has a photo or video. |
| `scrapedAt` | string | ISO 8601 timestamp. |

***

### ❓ FAQ

**How many reviews can I collect?**
As many as the products have, up to your `maxReviewsPerProduct` and `maxItems` caps. The scraper paginates through a product's full review list.

**Do I get the rating breakdown?**
Yes. Every row includes the product's `averageRating`, `ratingCount`, `reviewCount` and the full `ratingDistribution` (how many 1‑, 2‑, 3‑, 4‑ and 5‑star ratings).

**Do reviews include photos?**
Yes. When a reviewer attaches photos, their URLs are returned in `images`, with `imageCount` and `hasMedia` flags.

**Can I scrape reviews for a specific product only?**
Yes. Paste its product URL (or ID) into **Product URLs**.

**Which market does this cover?**
Meesho is an Indian marketplace. Indian residential proxies (the default) give the most reliable results.

**Are reviewer names real?**
Meesho shows the display name the reviewer chose; many appear as a generic "Meesho User". The scraper returns exactly what is publicly shown.

**In what format is the data?**
Structured JSON by default, exportable to CSV, Excel, HTML and more.

**Can I get only reviews with photos, or only low ratings?**
The scraper returns all reviews with `rating`, `hasMedia` and `imageCount` fields — filter the exported dataset on those to keep only what you need (for example `rating <= 2` or `hasMedia = true`).

**How is a product's review list ordered?**
Reviews are returned in the order Meesho serves them (most relevant/recent first), and the scraper pages through them until it reaches your cap or the end of the list.

**Can I track the same products over time?**
Yes. Keep the `productUrl` or `productId` of the products you follow and re‑run on a schedule — each run stamps `scrapedAt`, so you can build a time series of rating and review changes.

**Will it duplicate reviews across pages?**
No. Reviews are de‑duplicated by `reviewId` within each product, so paging never repeats a review.

**Can I run this on a schedule?**
Yes — use the Apify Scheduler for recurring runs, or start runs through the Apify API and its integrations to track ratings over time.

***

### ⚖️ Legal & responsible use

This tool collects **publicly available** review and rating information for legitimate business use such as market research, product quality analysis and competitor benchmarking. You are responsible for how you use the data and for complying with all applicable laws and regulations, the website's terms, and data‑protection rules (including GDPR and India's DPDP Act where relevant). Do not use the output to infringe intellectual‑property rights, to identify individuals, or for any unlawful purpose. This scraper is not affiliated with, endorsed by, or connected to Meesho; all trademarks belong to their respective owners.

***

#### Tags

`meesho` · `meesho scraper` · `meesho reviews` · `product reviews` · `review scraper` · `ratings scraper` · `ecommerce reviews` · `india ecommerce` · `sentiment analysis` · `customer reviews` · `star ratings` · `review photos` · `voice of customer` · `product research` · `competitor analysis`

# Actor input Schema

## `searchQueries` (type: `array`):

Product keywords to search on Meesho. The top products for each keyword are scraped for reviews. Example: kurti, bluetooth earbuds, kids shoes.

## `productUrls` (type: `array`):

Meesho product URLs (or product IDs) to scrape reviews from directly. Example: https://www.meesho.com/some-product/p/8bhiji

## `maxProductsPerQuery` (type: `integer`):

How many of the top products from each search keyword to collect reviews for.

## `maxReviewsPerProduct` (type: `integer`):

Maximum number of reviews to collect for each product.

## `maxItems` (type: `integer`):

Overall cap on the number of review records saved across all products.

## `maxConcurrency` (type: `integer`):

How many products to collect reviews for in parallel. Recommended 2–5.

## `proxyConfiguration` (type: `object`):

Indian residential proxies are recommended for reliable access to Meesho.

## Actor input object example

```json
{
  "searchQueries": [
    "kurti",
    "bluetooth earbuds"
  ],
  "productUrls": [
    "https://www.meesho.com/gown-party-wear-long-kurti/p/8bhiji"
  ],
  "maxProductsPerQuery": 2,
  "maxReviewsPerProduct": 15,
  "maxItems": 25,
  "maxConcurrency": 4,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "IN"
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchQueries": [
        "kurti"
    ],
    "productUrls": [],
    "maxProductsPerQuery": 2,
    "maxReviewsPerProduct": 15,
    "maxItems": 25,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "IN"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("haketa/meesho-reviews-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "searchQueries": ["kurti"],
    "productUrls": [],
    "maxProductsPerQuery": 2,
    "maxReviewsPerProduct": 15,
    "maxItems": 25,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "IN",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("haketa/meesho-reviews-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchQueries": [
    "kurti"
  ],
  "productUrls": [],
  "maxProductsPerQuery": 2,
  "maxReviewsPerProduct": 15,
  "maxItems": 25,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "IN"
  }
}' |
apify call haketa/meesho-reviews-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,haketa/meesho-reviews-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/QO7hbu61KRnoghxNr/builds/l8dPZH4yNMEihyWWl/openapi.json
