# Shopsy Scraper: Flipkart Value Marketplace Data (`getascraper/shopsy-scraper`) Actor

Scrape product listings from Shopsy, Flipkart's value marketplace in India. Get titles, brand, price, MRP, discount, rating, review counts, stock state, and high-resolution images. Filter by price and sort order, then export to Excel, Google Sheets, CSV, or JSON.

- **URL**: https://apify.com/getascraper/shopsy-scraper.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** E-commerce, Automation
- **Stats:** 1 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: 4.67 out of 5 stars

## Pricing

from $0.74 / 1,000 product records

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

## 🛍️ Shopsy Products Scraper

<table width="100%" style="display:table;width:100%;border-collapse:collapse">
<tr>
<td style="background:#EAF2FF;border:1px solid #B9D4FF;border-left:5px solid #2874F0;border-radius:12px;padding:24px">
<strong style="color:#102A56;font-size:24px">Turn public Shopsy listings into product intelligence your team can use.</strong><br><br>
<span style="color:#24466F;font-size:16px">Collect clean prices, MRP, discounts, ratings, stock state, and media. Add public listing or seller detail only when your workflow needs it.</span>
</td>
</tr>
</table>

<table width="100%" style="display:table;width:100%;border-collapse:collapse;table-layout:fixed">
<tr>
<td width="25%" style="background:#FFFFFF;border:1px solid #B9D4FF;padding:16px;vertical-align:top"><strong style="color:#102A56">📈 Compare prices</strong><br><span style="color:#24466F">Track selling price, MRP, and discounts in one row.</span></td>
<td width="25%" style="background:#F4F8FF;border:1px solid #B9D4FF;padding:16px;vertical-align:top"><strong style="color:#102A56">🏷️ Keep clean IDs</strong><br><span style="color:#24466F">Add published product and listing identifiers when needed.</span></td>
<td width="25%" style="background:#FFFFFF;border:1px solid #B9D4FF;padding:16px;vertical-align:top"><strong style="color:#102A56">🧾 Check details</strong><br><span style="color:#24466F">Optionally collect seller, offers, and specifications.</span></td>
<td width="25%" style="background:#F4F8FF;border:1px solid #B9D4FF;padding:16px;vertical-align:top"><strong style="color:#102A56">⭐ Understand feedback</strong><br><span style="color:#24466F">Add public rating totals and feedback aspects on request.</span></td>
</tr>
</table>

Shopsy is Flipkart's value marketplace for India. This Actor turns public Shopsy result pages into flat, spreadsheet-ready product records for price tracking, catalog research, and market analysis.

### 🔍 What does Shopsy Products Scraper do?

Start with a keyword or a public Shopsy result URL. Each standard row keeps the useful columns together: product title, brand, price, MRP, discount, ratings, availability, and product media.

Need more context? Turn on source metadata to add published listing identifiers, buying state, grade, tags, flags, order limits, and media links. Product details remain optional and bounded, so a normal catalog run stays focused.

### 💡 Who uses this Shopsy product data?

- **Price-monitoring teams** compare Shopsy selling prices and discounts against their own catalog.
- **Marketplace analysts** measure brand visibility, product ratings, and stock signals across budget categories.
- **Retail researchers** build a clean India ecommerce dataset without reformatting every result page.
- **Sourcing teams** inspect public seller, offer, and specification data for a focused set of products.

### 🚀 How it works

<table width="100%" style="display:table;width:100%;border-collapse:collapse;table-layout:fixed">
<tr>
<td width="33%" style="background:#EAF2FF;border:1px solid #B9D4FF;padding:16px;vertical-align:top"><strong style="color:#102A56">1. Choose a source</strong><br><span style="color:#24466F">Enter a keyword or paste public Shopsy result URLs.</span></td>
<td width="33%" style="background:#FFFFFF;border:1px solid #B9D4FF;padding:16px;vertical-align:top"><strong style="color:#102A56">2. Select the depth</strong><br><span style="color:#24466F">Keep normalized rows, then opt into metadata or details.</span></td>
<td width="33%" style="background:#EAF2FF;border:1px solid #B9D4FF;padding:16px;vertical-align:top"><strong style="color:#102A56">3. Use the dataset</strong><br><span style="color:#24466F">Export product records to the tools your team already uses.</span></td>
</tr>
</table>

### ⚙️ Input

| Field                   | Type          | Required | Description                                                                               |
| ----------------------- | ------------- | -------- | ----------------------------------------------------------------------------------------- |
| `startUrls`             | array of URLs | No       | Public Shopsy search, category, or brand result URLs. These take priority over a keyword. |
| `query`                 | string        | No       | Keyword used when no URL is supplied.                                                     |
| `sortBy`                | enum          | No       | Public source order for keyword searches.                                                 |
| `minPrice`              | integer       | No       | Minimum keyword-search price in INR.                                                      |
| `maxPrice`              | integer       | No       | Maximum keyword-search price in INR.                                                      |
| `includeSourceMetadata` | boolean       | No       | Adds public listing IDs, buying state, grade, tags, flags, order limits, and media URLs.  |
| `fetchDetails`          | boolean       | No       | Adds public seller, return policy, offer, specification, and variant fields.              |
| `includeReviewInsights` | boolean       | No       | Adds public rating totals and feedback aspects. It also fetches product details.          |
| `maxItems`              | integer       | No       | Maximum normalized product rows across the entire run.                                    |
| `maxDetailItems`        | integer       | No       | Maximum rows enriched with product details or review insights.                            |
| `proxyConfiguration`    | object        | No       | Optional connection settings for the run.                                                 |

### 📦 Data table

One row is one Shopsy product. Empty or unavailable source values are omitted rather than guessed.

| Field                     | Type   | Description                                                           |
| ------------------------- | ------ | --------------------------------------------------------------------- |
| `product_id`              | string | Stable public product identifier.                                     |
| `listing_id`              | string | Public listing identifier, included with source metadata.             |
| `title`                   | string | Product title shown by Shopsy.                                        |
| `brand`                   | string | Published product brand.                                              |
| `price`                   | number | Current published selling price in INR.                               |
| `mrp`                     | number | Published maximum retail price in INR.                                |
| `discount_percent`        | number | Published discount percentage.                                        |
| `rating`                  | number | Published product rating.                                             |
| `review_count`            | number | Published written-review total.                                       |
| `availability`            | string | Published availability state.                                         |
| `source_media_urls`       | array  | Public media URLs, included with source metadata.                     |
| `seller_name`             | string | Public seller name, included with product details when published.     |
| `product_specifications`  | array  | Public product specification groups, included with product details.   |
| `variants`                | array  | Public variant product IDs, selected attributes, availability, and links. |
| `variant_count` / `available_variant_count` | number | Total published variants and those currently marked available. |
| `detail_status`           | string | Whether optional product detail was available for that row.           |
| `detail_failure_reason`   | string | Plain-language reason when optional detail was unavailable.           |
| `review_positive_aspects` | array  | Public feedback aspects, included when review insights are requested. |
| `product_url`             | string | Direct public product page URL.                                       |

### 💰 Pricing

Pricing is pay per result. You are billed for product rows saved to your dataset. Empty runs cost nothing, and there are no subscriptions.

### ⭐ Enjoying Shopsy Products Scraper?

<table width="100%" style="display:table;width:100%;border-collapse:collapse">
<tr>
<td style="background:#EAF2FF;border:1px solid #B9D4FF;border-left:5px solid #2874F0;border-radius:12px 12px 0 0;padding:20px 24px 14px">
<span style="color:#102A56;font-size:20px;letter-spacing:4px">⭐ ⭐ ⭐ ⭐ ⭐</span><br>
<strong style="color:#102A56;font-size:17px">Did the product data save your team time?</strong><br>
<span style="color:#24466F;font-size:14px">A review helps other price-monitoring and market-research teams find the right Shopsy workflow.</span>
</td>
</tr>
<tr>
<td style="background:#2874F0;border:1px solid #2874F0;border-radius:0 0 12px 12px;padding:0;text-align:center">
<a href="https://apify.com/getascraper/shopsy-scraper/reviews" style="display:block;padding:13px 16px;color:#FFFFFF;text-decoration:none;font-weight:800;font-size:15px">★&nbsp;&nbsp;Share your experience on Apify</a>
</td>
</tr>
</table>

### ❓ Frequently asked questions

##### Can I use a Shopsy category URL instead of a keyword?

Yes. Paste a public Shopsy search, category, or brand result URL. The Actor uses that result collection as provided.

##### Does detail mode return every product detail page?

No. Detail mode is intentionally bounded by your maximum detail setting. This keeps a broad catalog run focused while you enrich a selected set of rows.

##### Does review insights include review text?

No. It returns only public rating totals and available feedback aspects. It does not invent missing reviews or extract private account information.

##### What happens when one product detail page is unavailable?

The normalized product row is still returned. Its detail status explains that optional detail was unavailable, and the run summary records the affected URL.

### 🔗 Other actors

- [ShopClues Products Scraper](https://apify.com/getascraper/shopclues-scraper) ↗ - collect public ShopClues prices, discounts, and ratings.
- [Cashify Quote History and Arbitrage Monitor](https://apify.com/getascraper/cashify-scraper) ↗ - compare used-device quotes and market signals in India.
- [Lenskart Scraper: Eyewear Prices, Specs & Variants](https://apify.com/getascraper/lenskart-scraper) ↗ - collect eyewear prices, specifications, and variants.
- [Ubuy Global Scraper: Cross-Border Prices & Specs](https://apify.com/getascraper/ubuy-com-scraper) ↗ - compare cross-border product prices and specifications.

# Actor input Schema

## `startUrls` (type: `array`):

Paste public Shopsy search, category, or brand result URLs. These take priority over a keyword.

## `query` (type: `string`):

Use when no URL is supplied, for example kurti, saree, or bluetooth speaker.

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

Choose the order supplied by the public Shopsy result page.

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

Only return keyword-search products at or above this price in INR. Use 0 for no minimum.

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

Only return keyword-search products at or below this price in INR. Use 0 for no maximum.

## `includeSourceMetadata` (type: `boolean`):

Add listing ID, buying state, grade, source tags, source flags, order limit, and media URLs when published.

## `fetchDetails` (type: `boolean`):

Add published seller, return policy, offer, and specification fields for a bounded set of products.

## `includeReviewInsights` (type: `boolean`):

Add public rating totals and product feedback aspects. This also fetches product details.

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

The most normalized product rows returned across the whole run.

## `maxDetailItems` (type: `integer`):

Limit the optional detail or review enrichment to the first products found. It never exceeds the product limit.

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

Optional connection settings. The default is set up for public Shopsy listings in India.

## Actor input object example

```json
{
  "startUrls": [],
  "query": "kurti",
  "sortBy": "popularity",
  "minPrice": 0,
  "maxPrice": 0,
  "includeSourceMetadata": false,
  "fetchDetails": false,
  "includeReviewInsights": false,
  "maxItems": 10,
  "maxDetailItems": 10,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "IN"
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

## `runSummary` (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 = {
    "startUrls": [],
    "query": "kurti",
    "sortBy": "popularity",
    "minPrice": 0,
    "maxPrice": 0,
    "includeSourceMetadata": false,
    "fetchDetails": false,
    "includeReviewInsights": false,
    "maxItems": 10,
    "maxDetailItems": 10,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "IN"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/shopsy-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 = {
    "startUrls": [],
    "query": "kurti",
    "sortBy": "popularity",
    "minPrice": 0,
    "maxPrice": 0,
    "includeSourceMetadata": False,
    "fetchDetails": False,
    "includeReviewInsights": False,
    "maxItems": 10,
    "maxDetailItems": 10,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "IN",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/shopsy-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 '{
  "startUrls": [],
  "query": "kurti",
  "sortBy": "popularity",
  "minPrice": 0,
  "maxPrice": 0,
  "includeSourceMetadata": false,
  "fetchDetails": false,
  "includeReviewInsights": false,
  "maxItems": 10,
  "maxDetailItems": 10,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "IN"
  }
}' |
apify call getascraper/shopsy-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,getascraper/shopsy-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/S8DXW6wqpKdue8WaA/builds/AtAsaJXpQj6YyaSp1/openapi.json
