# Shopee Shop & Seller Profile Scraper (`incognito_mode/shopee-shop-scraper`) Actor

Scrape Shopee sellers across 11 countries: star ratings with the good/normal/bad split, followers, listing counts, response rate and time, cancellation rate, badges and shop age - plus the shop's featured product with its live price, stock and units sold. Feed it shop URLs, usernames or IDs.

- **URL**: https://apify.com/incognito\_mode/shopee-shop-scraper.md
- **Developed by:** [Elena Vance](https://apify.com/incognito_mode) (community)
- **Categories:** E-commerce, Lead generation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 seller profiles

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## Shopee Shop & Seller Profile Scraper

Turn a list of Shopee sellers into a clean, comparable dataset — across **11
Shopee marketplaces**, with no API key, no login, and no residential proxy.

Give it shop URLs, usernames or numeric IDs. Get back seller size, quality and
responsiveness metrics, badge status, shop age — and the seller's featured
product with its **live price**.

***

### What you get

| Group | Fields |
| --- | --- |
| **Identity** | shop ID, user ID, username, display name, canonical URL, marketplace, country, currency |
| **Size & reach** | active listing count, followers, following |
| **Quality** | star rating, plus the full **good / normal / bad** review split and total — not just the average |
| **Reliability** | cancellation rate, response rate, response time (seconds *and* hours), order preparation time |
| **Status** | Shopee Mall / official store, Preferred Seller, Preferred Plus, cross-border, vacation mode, chat disabled |
| **Age & activity** | shop created, last profile update, seller last active, newest listing added |
| **Campaigns** | flash sale, brand sale, membership programme |
| **Featured product** | name, URL, image, **price**, price before discount, discount %, stock, units sold, historical sold, likes, comments, star rating with a 1–5 star breakdown |

Every timestamp is returned both as a Unix epoch and as ISO-8601 UTC. Prices
are converted out of Shopee's internal micro-currency, so `398000` arrives as
`3.98`.

### Example output

```json
{
  "shopId": 178158839,
  "username": "babykidsfashion.sg",
  "name": "Yienws.sg",
  "shopUrl": "https://shopee.sg/shop/178158839",
  "region": "sg",
  "country": "SG",
  "currency": "SGD",
  "itemCount": 683,
  "followerCount": 16446,
  "ratingStar": 4.860823,
  "ratingGood": 35490,
  "ratingNormal": 988,
  "ratingBad": 210,
  "ratingTotal": 36688,
  "cancellationRate": 0,
  "responseRate": 85,
  "responseTimeSeconds": 8293,
  "responseTimeHours": 2.3,
  "isOfficialShop": false,
  "isCrossBorder": true,
  "onVacation": false,
  "createdAt": "2019-09-10T04:21:23Z",
  "lastActiveAt": "2026-08-26T19:15:13Z",
  "featuredItem": {
    "itemId": 21281807851,
    "name": "3-14 Years Kids Quick Dry Tshirts Boys Girls Short Sleeve T-shirts",
    "url": "https://shopee.sg/product/178158839/21281807851",
    "currency": "SGD",
    "price": 3.98,
    "priceBeforeDiscount": 4.68,
    "discountPercent": 15,
    "stock": 1,
    "historicalSold": 954,
    "ratingStar": 4.384,
    "ratingBreakdown": { "1Star": 27, "2Star": 12, "3Star": 38, "4Star": 51, "5Star": 312, "total": 440 }
  }
}
```

### Input

Five ways to name a shop, mixable in one list:

```json
{
  "shops": [
    "https://shopee.sg/shop/142401765",
    "https://shopee.sg/abbott_official",
    "https://shopee.sg/product/178158839/6192497619",
    "142401765",
    "abbott_official"
  ],
  "region": "sg",
  "includeFeaturedItem": true
}
```

- A **product URL** works too — the Actor reads the shop out of it.
- A URL's **own domain wins**. Drop a `shopee.co.id` link into a run set to
  Singapore and that row is scraped from Indonesia, so one run can cover
  several countries.
- `region` only applies to bare usernames and numeric IDs.

| Option | Default | Notes |
| --- | --- | --- |
| `shops` | — | Required. URLs, usernames or numeric IDs. |
| `region` | `sg` | `sg` `my` `id` `th` `vn` `ph` `tw` `br` `mx` `co` `cl` |
| `includeFeaturedItem` | `true` | One extra request per shop; adds the live-price product. |
| `maxItems` | `100` | Hard cap on stored rows. |
| `proxyConfiguration` | off | Leave off — see below. |

### Marketplaces

Singapore · Malaysia · Indonesia · Thailand · Vietnam · Philippines · Taiwan ·
Brazil · Mexico · Colombia · Chile

Shopee has exited Spain, France, India and Poland, so those are not offered.

### What this Actor does **not** return

Being straight about this up front, because it is a property of Shopee rather
than of this Actor:

- **A full product catalogue per shop.** Shopee's product-listing and search
  endpoints sit behind an anti-fraud signature that cannot be produced outside
  a genuine, human-driven browser session — verified all the way up to a
  headful Chrome instance. What is public is the shop's *featured* listing,
  which is what `featuredItem` returns.
- **Buyer reviews.** Same gate.

Every field this Actor *does* return comes from a genuinely public endpoint, so
runs are fast, cheap and don't break when Shopee tightens its bot defences.

### Speed and cost

A shop is one HTTP request, or two with `includeFeaturedItem`. There is no
browser: **5 shops across 5 countries complete in about 3 seconds** at 256 MB.

No proxy is used unless Shopee actually blocks an IP, and then the Actor
escalates on its own — a datacenter IP first (included in every Apify plan,
free tier included), residential only if your plan has it. You do not need the
residential add-on.

### Use it for

- **Competitor monitoring** — track a rival's listing count, followers, rating
  and cancellation rate over time by scheduling a daily run.
- **Seller vetting** — check response rate, cancellation rate and shop age
  before sourcing from a seller.
- **Cross-border research** — compare the same brand's official stores in SG,
  MY, ID and BR in one run.
- **Lead lists** — enrich a list of seller usernames into a full profile table.

### Related

Pair this with the other Shopee Actors in the family to go from a category, to
its brands, to their sellers, to a product page.

# Actor input Schema

## `shops` (type: `array`):

One entry per seller. Any of these work, and you can mix them freely:

• Shop URL — https://shopee.sg/shop/142401765
• Seller page URL — https://shopee.sg/abbott\_official
• Any product URL — the shop is read from it
• Numeric shop ID — 142401765
• Seller username — abbott\_official

If a URL points at another country's Shopee (shopee.co.id, shopee.com.br …), that country is used for that row regardless of the Marketplace setting below — so a mixed-country list works in one run.

## `region` (type: `string`):

Which Shopee country to use for entries that are NOT full URLs (bare usernames and numeric IDs). Full URLs always use their own domain.

## `includeFeaturedItem` (type: `boolean`):

Adds one extra request per shop and returns the seller's featured listing with its real price, discount, stock, units sold and star breakdown. This is the only public Shopee source that still carries a live price, so leave it on unless you only need seller metrics.

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

Hard cap on how many shops are stored. The run stops as soon as it is reached.

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

Leave off. Every request calls Shopee directly first, which costs nothing. If an IP is blocked the Actor escalates on its own: first to a datacenter proxy (included in every Apify plan, free tier included), then to residential only if your plan has it. No residential add-on is required.

## Actor input object example

```json
{
  "shops": [
    "https://shopee.sg/shop/142401765"
  ],
  "region": "sg",
  "includeFeaturedItem": true,
  "maxItems": 100,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

Dataset containing every scraped shop.

# 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 = {
    "shops": [
        "https://shopee.sg/shop/142401765"
    ],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("incognito_mode/shopee-shop-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 = {
    "shops": ["https://shopee.sg/shop/142401765"],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("incognito_mode/shopee-shop-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 '{
  "shops": [
    "https://shopee.sg/shop/142401765"
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call incognito_mode/shopee-shop-scraper --silent --output-dataset

```

## MCP server setup

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