# Meesho Product Search Scraper (`scrapeai/meesho-product-search-scraper`) Actor

Scrape product listings from Meesho search results. Extract detailed product information including prices, descriptions, ratings, and more.

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

## Pricing

from $2.49 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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 Product Search Scraper

Extract rich, structured product listings and catalog data directly from Meesho search results and category pages. Collect real-time product prices, discounts, MRP, HD images, multi-variant options, ratings, customer review breakdowns, supplier information, and special offer tags.

***

### Key Features

- 🔍 **Dynamic Keyword Search** — Search for any product (e.g., sarees, kurtis, shoes, electronics, home decor, mobile covers).
- 📂 **Category Page Support** — Provide direct category URLs for targeted catalog scraping.
- 💰 **Comprehensive Pricing & Discounts** — Extract current selling price, original MRP, calculated discount percentage, and special offer prices.
- ⭐ **Detailed Rating & Review Breakdown** — Scrape average ratings, total ratings, review counts, and 1-to-5 star rating distributions.
- 🖼️ **High-Resolution Multi-Images** — Extract cover thumbnails and full galleries of high-definition product images.
- 🏷️ **Badges & Promotions** — Capture promotional tags like `NEXT DAY DISPATCH`, `Meesho Assured`, and special offer discount bundles.
- ⚡ **High Concurrency & Anti-Block** — Optimized Puppeteer crawler with built-in stealth evasion and Indian residential proxy support.
- 📊 **Apify Console Ready** — Fully configured with input schemas, dataset views, and output endpoints.

***

### Use Cases

- **E-commerce Market Intelligence** — Monitor competitor catalog breadth, top-selling trends, and category assortment on Meesho.
- **Dynamic Pricing & Repricing** — Track price changes, discount fluctuations, and special bundle deals in real time.
- **Catalog Building & Aggregation** — Aggregate e-commerce product listings with structured titles, descriptions, and high-res imagery.
- **Sentiment & Review Analysis** — Analyze consumer satisfaction trends using rating distributions and review volume.
- **Dropshipping & Supplier Discovery** — Discover wholesale product trends and supplier offerings.

***

### Input Parameters

The scraper accepts the following input parameters:

| Field | Type | Default | Description |
|---|---|---|---|
| `searchQuery` | String | `"saree"` | Product search keyword (e.g., `"kurti"`, `"smartwatch"`, `"lehenga"`, `"shoes"`). |
| `categoryUrl` | String | `""` | Direct Meesho category URL (e.g., `https://www.meesho.com/sarees/pl/37k`). |
| `maxItems` | Integer | `50` | Maximum number of products to scrape (1 – 1,000). |
| `sortBy` | String | `"RELEVANCE"` | Sorting order: `RELEVANCE`, `PRICE_ASC`, `PRICE_DESC`, `POPULARITY`, `NEW_ARRIVALS`. |
| `minPrice` | Integer | `null` | Minimum price filter in INR (₹). |
| `maxPrice` | Integer | `null` | Maximum price filter in INR (₹). |
| `proxyConfiguration` | Object | `{ "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "IN" }` | Proxy settings. Indian Residential proxy is strongly recommended for cloud runs. |

***

### Output Data Structure

Each scraped item contains up to 45 structured fields:

| Field | Type | Description |
|---|---|---|
| `productId` | String | Unique product alphanumeric ID (e.g., `"8vwcy5"`). |
| `catalogId` | String | Internal numeric catalog ID (e.g., `"184162600"`). |
| `heroProductId` | String | Primary hero product ID in the catalog group. |
| `title` | String | Short product title or catalog name. |
| `heroProductName` | String | Full descriptive variant name. |
| `slug` | String | Product URL slug. |
| `url` | String | Direct canonical URL to the product page. |
| `thumbnailUrl` | String | Primary display image URL. |
| `imageUrls` | Array | Full array of high-resolution product images. |
| `price` | Integer | Current selling price in INR (₹). |
| `mrp` | Integer | Maximum retail price / original price in INR (₹). |
| `discountPercentage` | Integer | Percentage discount off MRP. |
| `currency` | String | Currency code (`"INR"`). |
| `description` | String | Short summary description. |
| `fullDetails` | String | Full specifications (fabric, sizes, dispatch time, net quantity). |
| `shareText` | String | Formatted reseller catalog description. |
| `consumerShareText` | String | Consumer promotional share message. |
| `shareUrl` | String | Short share link for the item. |
| `productAttributes` | Array | Key attributes and tags (e.g. `["Net Quantity (N): Single"]`). |
| `categoryName` | String | Sub-category name (e.g. `"Sarees"`). |
| `categoryId` | Integer | Numeric category identifier. |
| `averageRating` | Number | Customer rating score (0.0 to 5.0). |
| `ratingCount` | Integer | Total ratings count. |
| `reviewCount` | Integer | Total reviews count. |
| `ratingBreakdown` | Object | Count of reviews per star level (`1` to `5`). |
| `supplierName` | String | Supplier / seller store name. |
| `supplierId` | String | Supplier identifier. |
| `variationCount` | Integer | Number of design / color variations available. |
| `inStock` | Boolean | Whether product is in stock. |
| `freeDelivery` | Boolean | Free delivery eligibility flag. |
| `shippingCharges` | Integer | Standard shipping fee in INR (₹). |
| `isAssured` | Boolean | Meesho Assured quality badge indicator. |
| `isMallVerified` | Boolean | Meesho Mall verification badge indicator. |
| `valuePropTag` | String | Highlight tag (e.g., `"NEXT DAY DISPATCH"`). |
| `tags` | Array | All applied badge tags. |
| `specialOfferText` | String | Special offer promotional headline. |
| `specialOfferPrice` | Integer | Final price after applying special offers. |
| `specialOfferDiscount` | Integer | Extra discount value from special offers. |
| `stateCode` | String | Supplier dispatch origin state code (e.g. `"GJ"`). |
| `gstType` | String | Supplier GST registration type (e.g. `"GSTIN"`). |
| `createdIso` | String | Product creation timestamp in ISO 8601 format. |
| `activatedIso` | String | Product activation timestamp in ISO 8601 format. |
| `searchQuery` | String | Search query used to discover this product. |
| `pageNum` | Integer | Search results page number. |
| `scrapedAt` | String | UTC ISO 8601 timestamp of extraction. |

***

### Sample JSON Output

```json
{
  "productId": "8vwcy5",
  "catalogId": "184162600",
  "heroProductId": "537307277",
  "title": "Banita Pretty Sarees",
  "heroProductName": "Women's Kanjivaram Soft Banarasi Silk Saree With Blouse Piece Wine",
  "slug": "womens-kanjivaram-soft-banarasi-silk-saree-with-blouse-piece-wine",
  "url": "https://www.meesho.com/womens-kanjivaram-soft-banarasi-silk-saree-with-blouse-piece-wine/p/8vwcy5",
  "thumbnailUrl": "https://images.meesho.com/images/catalogs/184162600/cover/1/2/ee1850e525aa5c8b68bc822f3719dbcd0d1cdaa53586ddae4b7f496708bf1454b04938f5d02f43e669c78a6ca2383514c9e32165540685d0d3e862eb2bdd8f4b_512.jpg",
  "imageUrls": [
    "https://images.meesho.com/images/catalogs/184162600/cover/1/2/ee1850e525aa5c8b68bc822f3719dbcd0d1cdaa53586ddae4b7f496708bf1454b04938f5d02f43e669c78a6ca2383514c9e32165540685d0d3e862eb2bdd8f4b_512.jpg",
    "https://images.meesho.com/images/products/537307277/cwp5r_512.jpg",
    "https://images.meesho.com/images/products/537307282/w88yr_512.jpg"
  ],
  "price": 391,
  "mrp": 391,
  "discountPercentage": 0,
  "currency": "INR",
  "description": "Banita Pretty Sarees",
  "fullDetails": "Saree Fabric: Banarasi Silk\nBlouse: Running Blouse\nBlouse Fabric: Banarasi Silk\nPattern: Woven Design\nBlouse Pattern: Zari Woven\nNet Quantity (N): Single\nSizes: \nFree Size (Saree Length Size: 5.5 m, Blouse Length Size: 0.8 m) \n\nDispatch: 2-2 Days",
  "shareText": "Catalog Name:*Banita Pretty Sarees*\nSaree Fabric: Banarasi Silk\nBlouse: Running Blouse\nBlouse Fabric: Banarasi Silk\nPattern: Zari Woven\nBlouse Pattern: Product Dependent\nNet Quantity (N): Single\nSizes: \nFree Size (Saree Length Size: 5.5 m, Blouse Length Size: 0.8 m) \n\nDispatch: 1 Day",
  "consumerShareText": "Hey, check out this product on Meesho! Get upto 25% OFF on your first order.",
  "shareUrl": "https://www.meesho.com/s/p/8vwcy5?utm_source=s",
  "productAttributes": [
    "Net Quantity (N): Single"
  ],
  "categoryName": "Sarees",
  "categoryId": 1004,
  "averageRating": 4.0,
  "ratingCount": 9135,
  "reviewCount": 3086,
  "ratingBreakdown": {
    "1": 922,
    "2": 458,
    "3": 994,
    "4": 1623,
    "5": 5138
  },
  "supplierName": "Saree House Surat",
  "supplierId": "sup_55102",
  "variationCount": 10,
  "inStock": true,
  "freeDelivery": true,
  "shippingCharges": 0,
  "isAssured": false,
  "isMallVerified": false,
  "valuePropTag": "NEXT DAY DISPATCH",
  "tags": [
    "NEXT DAY DISPATCH"
  ],
  "specialOfferText": "₹360 with 1 Special Offer",
  "specialOfferPrice": 360,
  "specialOfferDiscount": 31,
  "stateCode": "GJ",
  "gstType": "GSTIN",
  "createdIso": "2025-05-03T19:54:29+0530",
  "activatedIso": "2025-05-04T11:24:08+0530",
  "searchQuery": "saree",
  "pageNum": 1,
  "scrapedAt": "2026-08-25T07:55:50.854Z"
}
```

***

### Proxy & Anti-Scraping Tips

- **Indian Residential Proxy**: Meesho employs Akamai bot detection and regional filtering. For reliable operation on the Apify platform, ensure you use Apify Residential Proxy with the country set to India (`IN`).
- **Rate Limits**: It is recommended to keep `maxItems` between 50 and 500 per run to ensure smooth and stable data delivery.

***

### Integrations

Connect this scraper with your favorite workflows:

- Export data to **Google Sheets**, **Airtable**, **PostgreSQL**, or **BigQuery**.
- Set up automated schedules via **Apify Schedules** to run daily or hourly.
- Trigger webhooks to alert your repricing engine when prices change.

# Actor input Schema

## `searchQuery` (type: `string`):

Product search term (e.g., 'saree', 'kurti', 'mobile cover').

## `categoryUrl` (type: `string`):

Meesho category page URL (e.g., https://www.meesho.com/sarees/pl/5vh). Overrides search query when provided.

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

Maximum number of products to scrape (1–1000).

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

Sort order for search results.

## `minPrice` (type: `integer`):

Minimum price filter in INR.

## `maxPrice` (type: `integer`):

Maximum price filter in INR.

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

Proxy settings. Indian RESIDENTIAL proxy is required for Meesho.

## Actor input object example

```json
{
  "searchQuery": "saree",
  "maxItems": 50,
  "sortBy": "RELEVANCE",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "IN"
  }
}
```

# Actor output Schema

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

Dataset containing all scraped product data

# 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 = {
    "searchQuery": "saree",
    "maxItems": 50,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "IN"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapeai/meesho-product-search-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 = {
    "searchQuery": "saree",
    "maxItems": 50,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "IN",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("scrapeai/meesho-product-search-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 '{
  "searchQuery": "saree",
  "maxItems": 50,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "IN"
  }
}' |
apify call scrapeai/meesho-product-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapeai/meesho-product-search-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/OmnzC8eurnsnR7d3z/builds/F15LOavgtIK43haaX/openapi.json
