# Myntra Reviews Extractor (`kawsar/myntra-reviews-extractor`) Actor

Myntra Reviews Extractor pulls customer reviews, star ratings, sizes bought, and rating breakdowns from any Myntra product, so you can track feedback and benchmark competitors without copy and paste.

- **URL**: https://apify.com/kawsar/myntra-reviews-extractor.md
- **Developed by:** [Kawsar](https://apify.com/kawsar) (community)
- **Categories:** E-commerce, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.99 / 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

## Myntra Reviews Extractor

Myntra Reviews Extractor pulls customer reviews from any Myntra product and returns them as clean, structured data. Give it a product URL or a product ID and it collects every review it can reach, complete with the star rating, reviewer name, full review text, the size the shopper bought, review photos and videos, helpful votes, and the date the review was posted.

Each run also returns product level rating data: the average rating, the total number of ratings, the written review count, and the full one to five star breakdown. That means you get both the individual voices and the big picture in a single dataset.

Unlike a quick page grab that only sees the first handful of reviews, this actor pages through the reviews for each product until it reaches the limit you set. Ask for 100 reviews and it collects up to 100. Ask for 500 and it keeps going.

### Why use it

- **Track your own listings.** Watch ratings and complaints on the products you sell and catch problems while they are small.
- **Sizing and fit insights.** Every review carries the size the shopper bought, so you can spot patterns like "runs small" before they cost you returns.
- **Competitor research.** Pull reviews for competing products and compare sentiment, common praise, and common complaints side by side.
- **Feed your own tools.** Export structured review data straight into dashboards, spreadsheets, BI tools, or a sentiment model.
- **Market and product research.** Build review datasets across a category to understand what shoppers actually care about.

### How it works

1. You paste one or more Myntra products (a full `myntra.com` URL or just the numeric product ID).
2. The actor reads the product ID and requests reviews page by page.
3. It keeps collecting until it reaches your `maxItems` limit or runs out of reviews for that product.
4. Every review becomes one row in the dataset, enriched with the product name, brand, and overall rating stats.

No login, no browser extension, no copy and paste.

### Input

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `productUrls` | array of strings | yes | Myntra products to collect reviews from. One URL or ID per line. |
| `sortBy` | string | no | Order reviews are collected in: `recent`, `helpful`, `positive`, or `negative`. Default `recent`. |
| `maxItems` | integer | no | Maximum reviews to collect **per product**. Default 20, maximum 1000. |
| `requestTimeoutSecs` | integer | no | Per request timeout in seconds. Default 30. |

Both `https://www.myntra.com/reviews/27950524` and the bare ID `27950524` are accepted. Product page URLs work too, since the actor reads the numeric ID from whatever you paste.

#### Example input

```json
{
    "productUrls": [
        "https://www.myntra.com/reviews/27950524",
        "27950524"
    ],
    "sortBy": "recent",
    "maxItems": 200
}
```

### Output

The actor returns one row per review. Each row combines the review itself with product level context, so every row stands on its own.

#### Example output row

```json
{
    "productId": "27950524",
    "productName": "Sangria Embroidered Boat-Neck Kurta With Trousers & Dupatta",
    "brand": "Sangria",
    "articleType": "Kurta Sets",
    "productAvgRating": 4.15,
    "productTotalRatings": 20516,
    "productReviewCount": 3687,
    "productImageCount": 2206,
    "ratingDistribution": { "1": 2068, "2": 883, "3": 1524, "4": 3487, "5": 12554 },
    "reviewId": "e8a65f7e-03bc-4917-9e8e-f8f7a1c68284",
    "rating": 5,
    "reviewText": "Excellent quality, elegant design, and outstanding comfort...",
    "reviewerName": "Kashti",
    "sizeBought": "XS",
    "upvotes": 12,
    "downvotes": 0,
    "reviewImages": ["https://assets.myntassets.com/.../review.jpg"],
    "reviewVideos": [],
    "reviewStatus": "ACTIVE",
    "reviewDate": "2026-07-13T19:09:36+00:00",
    "reviewUrl": "https://www.myntra.com/reviews/27950524",
    "scrapedAt": "2026-08-19T09:22:10+00:00"
}
```

### Output fields

| Field | Type | Description |
|-------|------|-------------|
| `productId` | string | Numeric Myntra product ID |
| `productName` | string | Product name. Omitted when it cannot be read for the product. |
| `brand` | string | Brand name. Omitted when it cannot be read for the product. |
| `articleType` | string | Product category, for example Kurta Sets |
| `productAvgRating` | number | Average rating across all shoppers |
| `productTotalRatings` | integer | Total number of ratings |
| `productReviewCount` | integer | Total number of written reviews on Myntra |
| `productImageCount` | integer | Total number of review images on Myntra |
| `ratingDistribution` | object | Count of ratings for each star level, 1 to 5 |
| `reviewId` | string | Unique review ID |
| `rating` | integer | Star rating the reviewer gave, 1 to 5 |
| `reviewText` | string | Full text of the review |
| `reviewerName` | string | Display name of the reviewer |
| `sizeBought` | string | Size the reviewer purchased |
| `upvotes` | integer | Helpful votes on the review |
| `downvotes` | integer | Downvotes on the review |
| `reviewImages` | array | Image URLs attached to the review |
| `reviewVideos` | array | Video URLs attached to the review |
| `reviewStatus` | string | Review status, for example ACTIVE |
| `reviewDate` | string | When the review was posted, ISO 8601 |
| `reviewUrl` | string | The reviews page the data came from |
| `scrapedAt` | string | When the row was collected, ISO 8601 |

### Export options

Results are stored in a standard Apify dataset. Export to JSON, CSV, Excel, or HTML from the Apify Console, or pull the data through the Apify API and integrate it into your own workflow.

### Run it with the API

You can start a run and read the results programmatically. Replace `YOUR_TOKEN` with your Apify API token.

```bash
curl -X POST "https://api.apify.com/v2/acts/YOUR_USERNAME~myntra-reviews-extractor/runs?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
        "productUrls": ["https://www.myntra.com/reviews/27950524"],
        "maxItems": 200
      }'
```

### Tips

- Set `maxItems` to match how deep you want to go. A product may have thousands of reviews, so a higher limit means a longer run.
- Use `sortBy` to focus a run. `negative` surfaces complaints fast, `positive` surfaces the best feedback, `helpful` brings the most upvoted reviews to the top.
- Pass many products in `productUrls` to build a category wide dataset in one run.

### Frequently asked questions

**How many reviews can I get per product?**
Up to 1000 per product, capped by `maxItems`. The actor stops early if a product has fewer reviews than your limit.

**Can I scrape several products at once?**
Yes. Add each product to `productUrls`, one per line, as a URL or an ID.

**What if a product has no written reviews?**
You still get a row with the product level rating stats and a short note that no individual reviews were available.

**Does it need any credentials from me?**
No. You only provide the products you want reviews for.

### Notes

- Use the data responsibly and in line with Myntra's terms of service.
- Rating totals reflect what Myntra reports on the public reviews page at the time of the run.

# Actor input Schema

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

Myntra products to collect reviews from. Add a myntra.com URL or a numeric product ID on each line.

## `sortBy` (type: `string`):

Order in which reviews are collected from each product.

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

Maximum number of reviews to collect for each product. The actor pages through the reviews until it reaches this number or runs out of reviews.

## `requestTimeoutSecs` (type: `integer`):

Per-request timeout in seconds.

## Actor input object example

```json
{
  "productUrls": [
    "https://www.myntra.com/reviews/27950524"
  ],
  "sortBy": "recent",
  "maxItems": 20,
  "requestTimeoutSecs": 30
}
```

# Actor output Schema

## `reviews` (type: `string`):

Extract Myntra product reviews, star ratings, reviewer names, sizes bought, and rating distribution from any Myntra product.

# 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 = {
    "productUrls": [
        "https://www.myntra.com/reviews/27950524"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("kawsar/myntra-reviews-extractor").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 = { "productUrls": ["https://www.myntra.com/reviews/27950524"] }

# Run the Actor and wait for it to finish
run = client.actor("kawsar/myntra-reviews-extractor").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 '{
  "productUrls": [
    "https://www.myntra.com/reviews/27950524"
  ]
}' |
apify call kawsar/myntra-reviews-extractor --silent --output-dataset

```

## MCP server setup

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

```

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/0ApoNDZb9HaDN4WD4/builds/yac7VQ2jeYc6895IU/openapi.json
