# Shopsy Product Scraper with Seller (`trend_wizard/shopsy-product-scraper`) Actor

Collect Shopsy product data at scale with this powerful Apify Actor, designed for research, competitor analysis, price monitoring. Choose your desired product limit. The Actor automatically collects detailed product information.Turn Shopsy product listings into actionable e-commerce intelligence

- **URL**: https://apify.com/trend\_wizard/shopsy-product-scraper.md
- **Developed by:** [Yashwardhan](https://apify.com/trend_wizard) (community)
- **Categories:** Lead generation, E-commerce, Developer tools
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 product scrapeds

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

🛍️ Shopsy Product Scraper

🚀 Turn Shopsy product listings into structured, analysis-readye-commerce intelligence.

A powerful Apify Actor for collecting structured product data fromShopsy search results. Built for e-commerce research, competitoranalysis, price monitoring, catalog building, product discovery, andtrend analysis.

✨ What This Actor Does

Simply enter a Shopsy search keyword and choose how many productsyou want to collect. The Actor automatically:

🔎 Searches Shopsy using your keyword📦 Collects product information🧹 Normalizes and deduplicates product records🏪 Optionally enriches products with seller information📊 Pushes structured records to an Apify Dataset📁 Optionally generates CSV and Excel exports

The scraper uses paginated requests and dynamically calculates the pagesrequired for the requested product count.

🌟 Key Features

Feature                             Description

🔎 Keyword Search               Scrape products using any Shopsysearch keyword

📦 Product Data                 Collect detailed productinformation

💰 Price Tracking               Current price, MRP and discountpercentage

⭐ Ratings                      Rating, rating count and reviewcount

🏷️ Product Details              Title, subtitle, brand andsize/variant

🖼️ Images                       Product image URL and image count

🏪 Seller Intelligence          Optional seller enrichment

📊 Excel Export                 Generate .xlsx files

📄 CSV Export                   Generate .csv files

🚀 Scalable                     Configurable product limits

⚡ Concurrency Control          Control seller-detail requestconcurrency

📍 Pincode Support              Location-aware requests

☁️ Apify Dataset                Ready-to-use structured datasetoutput

🔄 Retry Handling               Handles retryable outbound requests

🎯 Perfect For

💼 Competitor ResearchCompare products, prices, brands and sellers.

📈 Market ResearchBuild datasets for understanding e-commerce markets and productcategories.

💰 Price & Discount AnalysisCollect current prices, MRP and discount information for analysis.

🛒 Product DiscoveryDiscover products and build structured product catalogs.

🏪 Seller AnalysisCollect available seller information and seller-quality metrics.

📊 Trend AnalysisCreate datasets for product and marketplace trend research.

🤖 Data & ML ProjectsUse structured product records as input for analytics, dashboards andmachine-learning workflows.

⚙️ Input Configuration

The Actor accepts the following inputs:

Input                    Type                           Default Description

🔍 keyword             String                        jacket Shopsy searchkeyword

📦 maxItems            Integer                          500 Maximum productsto collect

🏪                       Boolean                         true EnableincludeSellerDetails                                          seller-detailenrichment

📍 pincode             String                        110001 Pincode used forlocation-awarerequests

📄 exportCSV           Boolean                        false Generate CSVexport

📊 exportExcel         Boolean                         true Generate Excelexport

📌 Input Limits

maxItems: 1--20,000

sellerConcurrency: 1--50

These inputs are defined in:

.actor/input\_schema.json

🧪 Example Input

{
"keyword": "jacket",
"maxItems": 100,
"includeSellerDetails": true,
"pincode": "110001",
"exportCSV": false,
"exportExcel": true,
"sellerConcurrency": 10
}

💡 Recommended First Test

For your first run, start small:

{
"keyword": "jacket",
"maxItems": 10,
"includeSellerDetails": true,
"pincode": "110001",
"exportCSV": false,
"exportExcel": true,
"sellerConcurrency": 5
}

✅ Verify the Dataset and exports before increasing the product limit.

📦 Output Data

The Actor pushes normalized product records to the Apify Dataset.

🛍️ Product Fields

productId
itemId
listingId
title
subtitle
size
brand
currentPrice
mrp
discountPercentage
rating
ratingCount
reviewCount
imageUrl
numberOfImages
productUrl
availability
vertical

🏪 Seller Fields

When seller enrichment is enabled, the following fields may beavailable:

sellerName
sellerScore
sellerDescription
sellerSince
productQuality
serviceQuality

ℹ️ Seller information is best-effort. Some Shopsy products may notexpose seller information.

📊 Excel & CSV Exports

When enabled, the Actor creates exports in the run's Key-ValueStore.

For example:

jacket\_products.xlsx
jacket\_products.csv

📊 Excel Workbook

The Excel workbook contains:

🛍️ Products --- normalized product records

📈 Summary --- high-level scraping and product statistics

The Summary can include:

Total products

Average price

Minimum price

Maximum price

Average rating

Average discount

Seller-enrichment statistics

🏪 Seller Enrichment

Enable seller enrichment with:

"includeSellerDetails": true

The Actor identifies seller references and fetches available sellerinformation.

You can control the number of concurrent seller/detail requests with:

"sellerConcurrency": 10

⚡ Concurrency Guidance

Concurrency Recommended Use

```
  `1–5` 🐢 Conservative / testing
 `5–10` ⚖️ Recommended starting range
`10–25` 🚀 Higher throughput
`25–50` ⚠️ Use carefully and monitor requests
```

A lower value can reduce request pressure, while a higher value canimprove throughput depending on the target and proxy capacity.

🧹 Data Quality

The Actor normalizes raw Shopsy product objects into a consistentstructure.

✅ Data-quality behavior

Duplicate products are removed using productId.

Invalid product payloads are skipped.

Missing source data is represented as an empty/null value.

The scraper does not fabricate missing product information.

Some products may naturally have missing ratings, reviews,subtitles, images or seller information.

🚀 Running the Actor

☁️ Run on Apify

Open the Actor in Apify Console.

Enter your desired inputs.

Click Start.

Monitor the run logs.

Open the Dataset to inspect structured records.

Download generated exports from the run's Key-Value Store.

💻 Run Locally

Install dependencies:

npm install

Run the Actor:

node src/main.js

🚀 Deploy to Apify

From the project root:

apify login
apify push

The project uses:

.actor/
├── actor.json
└── input\_schema.json

for Actor configuration and input definition.

🗂️ Project Structure

shopsy-product-dataset/
│
├── .actor/
│   ├── actor.json
│   └── input\_schema.json
│
├── src/
│   ├── main.js
│   ├── normalize.js
│   ├── search.js
│   ├── export.js
│   ├── crawler.js
│   ├── headers.js
│   └── retry.js
│
├── package.json
├── package-lock.json
├── dockerfile
└── README.md

🧪 Recommended Workflow

1️⃣ Start Small

Use:

{
"keyword": "jacket",
"maxItems": 10,
"includeSellerDetails": true,
"pincode": "110001",
"exportCSV": false,
"exportExcel": true,
"sellerConcurrency": 5
}

2️⃣ Check Your Dataset

Verify:

✅ Product count✅ Product IDs✅ Prices✅ Titles & subtitles✅ Ratings✅ Seller information

3️⃣ Check Your Excel Export

Verify that the generated workbook contains the expected product andseller columns.

4️⃣ Scale Up 🚀

Once the small run works correctly, increase:

maxItems
sellerConcurrency

according to your requirements.

🛡️ Responsible Use

Please use this Actor responsibly and respect Shopsy's applicableterms, policies, access restrictions and rate limits, as well asapplicable laws and regulations.

Do not use collected data in ways that violate contractual restrictions,privacy requirements, intellectual-property rights, or applicable law.

❓ Frequently Asked Questions

❓ What is the Shopsy Product Scraper?

It is an Apify Actor that collects structured product information fromShopsy search results and stores the normalized records in an ApifyDataset.

❓ What do I need to provide?

At minimum, provide a search keyword and maxItems. The othersettings control seller enrichment, exports, pincode and concurrency.

❓ Can I scrape different product categories?

Yes. Enter the desired search term in keyword, such as:

jacket
kurti
shoes
t-shirt
saree
backpack

❓ Can I collect seller information?

Yes. Set:

"includeSellerDetails": true

Seller information is best-effort and may not be available for everyproduct.

❓ Can I export the results to Excel?

Yes. Set:

"exportExcel": true

The .xlsx file is generated in the run's Key-Value Store.

❓ Can I export CSV?

Yes. Set:

"exportCSV": true

❓ Where can I find the scraped data?

The normalized product records are available in the Actor's ApifyDataset. Generated Excel and CSV files are available through the run'sKey-Value Store when enabled.

❓ Why are some fields empty?

Shopsy may not provide every field for every listing. Missing sourceinformation is left empty/null rather than being guessed or fabricated.

❓ Why is my seller information missing for some products?

Seller enrichment is best-effort. Some products may not expose sellerreferences or complete seller information, and individual requests mayfail or return incomplete data.

❓ What does sellerConcurrency control?

It controls how many seller/product-detail requests can runconcurrently.

For initial testing, 5 is a good starting point.

❓ How many products can I request?

The current input schema allows:

1–20,000 products

For large jobs, start with a smaller test and scale gradually.

❓ Can I run the Actor locally?

Yes:

npm install
node src/main.js

❓ How do I deploy updates?

From the project directory:

apify push

Apify will build and deploy the updated Actor version.

❓ Does the Actor automatically create an Excel file?

Only when:

"exportExcel": true

The current default is true.

❓ Does the Actor automatically create a CSV file?

Only when:

"exportCSV": true

The current default is false.

❓ Is proxy configuration supported?

The Actor is designed to work with Apify-compatible proxy configuration.For production-scale scraping, configure proxy usage appropriately inyour Apify environment and monitor request success rates.

💬 Need Help?

If a run fails:

🔍 Check the Actor Run Log.

📋 Copy the relevant error message.

⚙️ Note the input configuration used.

📊 Check whether partial Dataset data was produced.

🐛 Reproduce the issue with a small maxItems value.

Providing the run ID, input, error message and affected output fieldmakes troubleshooting much faster.

::: {align="center"}

🛍️ Turn Shopsy Listings Into E-Commerce Intelligence 🚀

Search → Scrape → Normalize → Enrich → Analyze 📊

⭐ Happy Scraping! ⭐

# Actor input Schema

## `keyword` (type: `string`):

Product keyword to search on Shopsy.

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

Maximum number of products to collect.

## `includeSellerDetails` (type: `boolean`):

Fetch seller name, score, description, seller since, product quality, and service quality.

## `pincode` (type: `string`):

Pincode passed to Shopsy requests for location-aware data.

## `exportCSV` (type: `boolean`):

Generate a CSV export.

## `exportExcel` (type: `boolean`):

Generate an Excel (.xlsx) export.

## `sellerConcurrency` (type: `integer`):

Maximum number of seller/product detail requests running concurrently.

## Actor input object example

```json
{
  "keyword": "jacket",
  "maxItems": 500,
  "includeSellerDetails": true,
  "pincode": "110001",
  "exportCSV": false,
  "exportExcel": true,
  "sellerConcurrency": 10
}
```

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("trend_wizard/shopsy-product-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 = {}

# Run the Actor and wait for it to finish
run = client.actor("trend_wizard/shopsy-product-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 '{}' |
apify call trend_wizard/shopsy-product-scraper --silent --output-dataset

```

## MCP server setup

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