# Shopee Scraper - Full Product Detail | 💵$5/1K (`webdata_labs/shopee-scraper`) Actor

\[💵 $5 / 1K, no start fee] Scrape Shopee products in all 11 countries: price, rating, seller, description, brand, attributes, every variant and the full image gallery. Search by keyword, category, shop or link. No account needed.

- **URL**: https://apify.com/webdata\_labs/shopee-scraper.md
- **Developed by:** [WebData Labs](https://apify.com/webdata_labs) (community)
- **Categories:** E-commerce, Lead generation, Automation
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.50 / 1,000 products

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/platform/actors/running/actors-in-store#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

## Shopee Scraper - Full Product Detail

**Get the complete Shopee product - price, rating, seller, description, brand, every variant and the full image gallery - from a keyword, a category or a link, across all 11 Shopee countries.**

Most of the work in Shopee research is not finding products. It is that what you get back is a shop-window card: a name, a picture, a price that may or may not be the real one. Then someone opens 200 tabs by hand to find the description, the brand, the colours and sizes it actually ships in, and who is selling it. This Actor returns all of it in one row, ready for a spreadsheet, so nobody opens tabs.

### ✅ What you get / ❌ what this isn't

| ✅ What you get | ❌ What this isn't |
|---|---|
| **The exact price**, and a real low-to-high range on products sold in several variants | Not a blank price column you have to fill in yourself |
| **Description, brand and product attributes** - material, size, capacity, whatever the category lists | Not a title you have to pick apart with formulas |
| **Every variant** - each colour x size x bundle the listing actually sells | Not one flattened row with the choices hidden |
| **The full image gallery**, not one thumbnail | Not a single picture per product |
| **Rating and review count** for the product *and* for the seller behind it | Not a star rating with no volume behind it |
| **Hundreds of products per keyword**, not the first page and stop | Not a 40-product ceiling |
| **Only rows you can use** - products with no public price are dropped before you are billed | Not padded output |
| **No start fee** - you pay per product returned, nothing to press Start | Not a charge before the first row exists |

### 🔎 Why use this Actor

- **One row per product, complete.** Price, rating, seller, description, brand, attributes, variants and gallery arrive together, so the export is finished when the run is finished.
- **Search that keeps going.** One keyword reaches several hundred distinct products instead of stopping at the first page of results.
- **You are not billed for blanks.** Products Shopee publishes no price for are skipped and replaced, so your bill matches the rows you can actually use.
- **Any Shopee link works.** Product, search, category or shop - paste it in and the Actor works out the country, the currency and what to do with it.
- **One bad link never sinks a run.** A dead product is recorded and the run carries on.
- **Results arrive as they are found.** Rows appear in the dataset while the run is still going, so you always keep what has been scraped.

### 👥 Who it's for

Marketplace sellers, e-commerce teams and analysts working the Shopee markets in Southeast Asia and Latin America.

- Watch what competitors charge across a category, on a schedule.
- Build a product catalogue - descriptions, attributes and images - ready to load into a listing tool.
- Size a niche before you enter it: how many sellers, what they charge, how much demand the reviews show.
- Pull a seller list - shop name, link, rating, followers, location - out of any keyword or category.
- Feed clean product data into a spreadsheet, a dashboard or an AI workflow.

### Example tasks

Ready to run, nothing to fill in. Open one, press Start, change the keyword to yours.

- **[Scrape Shopee products by keyword](https://apify.com/webdata_labs/shopee-scraper/examples/shopee-product-scraper-by-keyword)** - the plain starting point: type a keyword, get products.
- **[Scrape Shopee product details, variants and attributes](https://apify.com/webdata_labs/shopee-scraper/examples/shopee-product-details-variants-attributes)** - the full row, with every variant and the gallery.
- **[Monitor Shopee prices for a product list](https://apify.com/webdata_labs/shopee-scraper/examples/shopee-price-monitoring)** - hand it your product links and schedule it.
- **[Build a Shopee seller lead list from a keyword](https://apify.com/webdata_labs/shopee-scraper/examples/shopee-seller-lead-list)** - who is selling in a niche, with ratings and locations.
- **[Scrape Shopee Mall brand products only](https://apify.com/webdata_labs/shopee-scraper/examples/shopee-mall-brand-products)** - official stores, no resellers.
- **[Raspar produtos da Shopee Brasil por palavra-chave](https://apify.com/webdata_labs/shopee-scraper/examples/shopee-brasil-produtos)** - Shopee Brazil, in BRL.
- **[Cao du lieu san pham Shopee Viet Nam theo tu khoa](https://apify.com/webdata_labs/shopee-scraper/examples/shopee-vietnam-product-scraper)** - Shopee Vietnam, in VND.

### ⚙️ How to scrape Shopee products

1. Type what you are looking for into **Search keywords**, or paste Shopee links into **Shopee URLs**.
2. Pick the **Shopee market** your keywords belong to. Links bring their own country with them.
3. Set **Max products per keyword / URL**. The default of 50 keeps a first run cheap; `0` means no limit.
4. Turn on **Full detail** for attributes, variants, gallery and category path. Leave it off for a quick price-and-rating sweep.
5. Press **Start**. Rows appear in the **Dataset** tab as they are found, and export to CSV, Excel or JSON from there.

#### Track prices week after week

Save the run as a Task and schedule it. Each run writes its own dataset, so comparing two runs shows you exactly what moved, per product, with no extra tooling.

### 📥 Input

```json
{
  "searchQueries": ["laptop gaming", "mouse wireless"],
  "startUrls": ["https://shopee.co.id/Laptop-cat.11044364.11044440"],
  "country": "id",
  "maxItemsPerSource": 50,
  "fullDetail": true,
  "sort": "sales",
  "minPrice": 1000000,
  "includeSellerProfile": true
}
```

- `searchQueries` - what to search for. Every row is tagged with the keyword that found it.
- `startUrls` - any mix of Shopee product, search, category or shop links.
- `country` - which Shopee site your keywords are searched on: `id`, `sg`, `my`, `th`, `ph`, `vn`, `br`, `tw`, `mx`, `co`, `cl`. Default `id`.
- `maxItemsPerSource` - products per keyword or link. Default `50`, `0` for no limit.
- `fullDetail` - adds attributes, variants, gallery, brand and category path. Default `false`.
- `sort` - `relevancy`, `sales`, `latest`, `price_asc` or `price_desc`.
- `minPrice` / `maxPrice` - price bounds in the market's own currency. *Optional.*
- `mallOnly` - official Shopee Mall sellers only. *Optional.*
- `includeSellerProfile` - adds followers, item count, response rate, badges and join date for each shop. *Optional.*
- `includeItemsWithoutPrice` - keep the products that have no public price instead of skipping them. *Advanced.*
- `delayMs` - pause before each request. Leave at `0` unless you are running many keywords. *Advanced.*

### 📤 Output

| title | price | priceMin | priceMax | currency | ratingValue | ratingCount | brand | sellerName | variantCount |
|---|---|---|---|---|---|---|---|---|---|
| LAPTOP ASUS 14 inch INTEL CELERON / AMD | 1400000 | 1400000 | 3700000 | IDR | 4.52 | 1011 | Asus | gudang.laptops | 11 |
| Macbook Pro Core i5 / RAM 8GB / SSD | 2650000 | 2650000 | 2650000 | IDR | 4.79 | 138 |  | Twenty Cell - Laptop | 3 |
| Laptop DELL Latitude Core i7 RAM 16GB | 2200000 | 2200000 | 6400000 | IDR | 4.80 | 638 | Dell | DACIA JAYA KOMPUTER | 8 |

Every row also carries the product link and IDs; availability, condition and stock status; the full `description`; the category path; `attributes` as name/value pairs; `variations` and `models` for every purchasable combination; `images`, `imageCount` and `videoCount`; whether the shop is official, whether the item is pre-order, free shipping and estimated delivery days; the seller columns `sellerName`, `sellerUrl`, `sellerRating`, `sellerRatingCount` and `sellerLocation`, plus a full `shop` profile when you ask for it; and the keyword or link that produced the row, with a timestamp.

### 💵 How much does it cost?

**$5 per 1,000 products**, and nothing to press Start. The default 50-product run costs about 25 cents. You are billed per row in your dataset, so skipped products and failed links are free, and the searching it takes to find your products is included.

### 🔁 Run it on the Apify platform

Schedule it daily or weekly, call it from the API, and export to CSV, Excel, JSON or XML. Results connect to Google Sheets, Make, Zapier and webhooks, so Shopee prices can land in a sheet or a Slack alert without any code.

### ⚠️ Limits and caveats

- **Sold count and stock levels are not returned.** Shopee no longer publishes either one, and we would rather return nothing than a number that is wrong for most rows.
- **A small share of live products have no public price.** They are skipped by default, and free. Switch on `includeItemsWithoutPrice` if you want them anyway.
- **Shop pages show only a handful of products.** Shopee itself exposes about 10-16 per storefront, so shop mode is not a full catalogue dump. For a big seller, run their keywords or category instead and filter by shop.
- **Colombia and Chile are thin.** Searches there often come back with nothing. That is Shopee's own coverage in those two countries.
- **A keyword reaches hundreds of products, not every product on Shopee.** For full coverage of a category, run several related keywords plus the category link.
- **Flash-sale and voucher prices are not included.** The price returned is the public listing price.

### 🧩 Related Actors

- **[1688 Scraper](https://apify.com/webdata_labs/1688-scraper)** - find the supplier behind the Shopee listing you just priced.
- **[eBay Listings Scraper](https://apify.com/webdata_labs/ebay-listings-scraper)** - the same price comparison job on eBay.
- **[Google Shopping Scraper](https://apify.com/webdata_labs/google-shopping-scraper)** - check a Shopee price against what the product costs elsewhere.
- **[Lead List Deduplicator](https://apify.com/webdata_labs/lead-list-deduplicator)** - merge seller lists from several runs into one clean list.

### ❓ FAQ

**Do I need a Shopee account?** No. No login, no cookies, nothing to set up. Type a keyword and press Start.

**Am I charged for products that fail?** No. You pay per row in your dataset. Skipped and failed products produce no row and no charge.

**Why is there a price range on some products?** Products sold in one configuration have one price. Products with variants get a low-to-high range, and every variant is listed in the row.

**Which countries work?** All 11 Shopee markets. Indonesia, Singapore, Malaysia, Thailand, Philippines, Vietnam, Brazil, Taiwan and Mexico return full catalogues; Colombia and Chile are thin on Shopee's side.

**Can I get every product from one shop?** Only the 10-16 Shopee shows publicly per storefront. For a large seller, run their keywords or category and filter by shop.

**How fresh is the data?** It is collected live, at the moment you run it.

### 🛠️ Support

Something wrong or missing? Open an issue on the Issues tab with the run URL, your input and what you expected. Bug reports with a run URL get fixed fastest.

### ⭐ Rate this Actor

If this saved you time, please leave a review on the Reviews tab. Review count is the main trust signal buyers use here, and it decides what gets built next. If something is broken, open an issue first - we would rather fix it than have you rate around it.

# Actor input Schema

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

Shopee keywords to scrape. Each keyword is paged and re-sorted independently until it runs out of new products, and every row is tagged with the keyword it came from.

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

Any mix of Shopee product, search, category or shop URLs. The country is taken from each URL's domain, so a shopee.sg link is scraped against Singapore even when the market below says Indonesia.

## `country` (type: `string`):

Which Shopee country site keywords are searched on. Prices come back in that market's currency.

## `maxItemsPerSource` (type: `integer`):

How many products to return for each keyword or URL. Set 0 for no limit. You are billed per product, so a large number means a large bill.

## `fullDetail` (type: `boolean`):

Adds a second request per product to pull brand ID, product attributes, variant tiers and model list, the full image gallery and the category path. Roughly doubles runtime; price, rating and seller data are returned either way.

## `sort` (type: `string`):

Sort order to start from. Once it stops yielding new products the Actor cycles through the other sort orders, which is how one keyword reaches several hundred products instead of one page.

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

Lower price bound in the market's own currency, applied by Shopee before we scrape. Leave empty for no bound.

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

Upper price bound in the market's own currency, applied by Shopee before we scrape. Leave empty for no bound.

## `mallOnly` (type: `boolean`):

Restrict keyword searches to Shopee Mall (official brand and retailer stores).

## `includeSellerProfile` (type: `boolean`):

Adds follower count, item count, response rate, verification badges and join date for each seller, as a nested shop object. One extra request per unique shop, not per product.

## `includeItemsWithoutPrice` (type: `boolean`):

Shopee serves no public price page for a minority of live products. By default those are skipped and replaced with other products, so you are never billed for a row without a price. Turn this on to receive them anyway with everything except price and rating.

## `delayMs` (type: `integer`):

Optional pause before each request. The Actor already rotates proxy sessions and retries on refusal, so leave this at 0 unless you are running many keywords and want to be gentler.

## Actor input object example

```json
{
  "searchQueries": [
    "laptop"
  ],
  "startUrls": [],
  "country": "id",
  "maxItemsPerSource": 50,
  "fullDetail": false,
  "sort": "relevancy",
  "mallOnly": false,
  "includeSellerProfile": false,
  "includeItemsWithoutPrice": false,
  "delayMs": 0
}
```

# Actor output Schema

## `products` (type: `string`):

No description

## `sellers` (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": [
        "laptop"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("webdata_labs/shopee-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": ["laptop"] }

# Run the Actor and wait for it to finish
run = client.actor("webdata_labs/shopee-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": [
    "laptop"
  ]
}' |
apify call webdata_labs/shopee-scraper --silent --output-dataset

```

## MCP server setup

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