# Shopee Seller & Shop Intelligence Scraper (`axlymxp/shopee-seller-scraper`) Actor

Extract rich Shopee seller/shop profiles — ratings, followers, response rate, location, official/verified badges, contact signals and activity — from product URLs, shop URLs, IDs or usernames. Any Shopee region. Structured JSON.

- **URL**: https://apify.com/axlymxp/shopee-seller-scraper.md
- **Developed by:** [axly](https://apify.com/axlymxp) (community)
- **Categories:** E-commerce, Lead generation
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$5.00 / 1,000 dataset items

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/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 Seller & Shop Intelligence Scraper

Turn any Shopee shop link, ID, or username into a **rich seller profile** — ratings
and review counts, follower and listing counts, chat response rate, location,
official/verified badges, account age and contact signals — as clean, structured
JSON. Built for **lead generation**, **seller vetting**, and **marketplace
competitor intelligence**.

Feed it product URLs, shop/storefront URLs, bare shop IDs, or usernames. Works
across **every Shopee region** (Indonesia, Singapore, Malaysia, Thailand, Vietnam,
Philippines, Brazil, Mexico, Taiwan). Uses Shopee's public shop API — **no login,
no CAPTCHA solving, reliable at scale.**

### Who it's for

- **Lead-gen agencies & B2B sales** — build qualified seller lists with followers,
  ratings, response rate, account age and Facebook ID for outreach.
- **Brands & brand-protection teams** — find and vet resellers of your products;
  monitor reputation, official/verified status and activity.
- **Marketplace analysts & researchers** — study the Shopee seller landscape:
  ratings distribution, geography, seller tenure and responsiveness.
- **Dropshippers & sourcing teams** — qualify suppliers by reliability signals
  (cancellation rate, response time, order preparation time).

### What you get — output fields

Each row is one Shopee shop:

| Field | Type | Description |
| --- | --- | --- |
| `shopId` / `userId` | integer | Shop and owner IDs |
| `username` | string | Storefront username |
| `name` | string | Shop display name |
| `description` | string | Shop description (if any) |
| `region` | string | Shopee region (e.g. `co.id`) |
| `shopUrl` | string | Canonical storefront URL |
| `followerCount` | integer | Followers |
| `followingCount` | integer | Accounts the shop follows |
| `itemCount` | integer | Number of live listings |
| `ratingStar` | number | Average rating, 0–5 |
| `ratingCount` | integer | Total ratings (good + neutral + bad) |
| `ratingGood` / `ratingNormal` / `ratingBad` | integer | Rating breakdown |
| `responseRate` | integer | Chat response rate (%) |
| `responseTimeSeconds` | integer | Average chat response time |
| `cancellationRate` | number | Order cancellation rate |
| `preparationTimeSeconds` | integer | Order preparation time |
| `shopLocation` | string | Shop location (city/region) |
| `country` | string | Country code |
| `isOfficialShop` | boolean | Official Shop badge |
| `isShopeeVerified` | boolean | Shopee-verified badge |
| `isPreferredPlusSeller` | boolean | Preferred+ seller badge |
| `isShopeeChoiceShop` | boolean | Shopee Choice badge |
| `isSeller` | boolean | Account is a seller |
| `phoneVerified` / `emailVerified` | boolean | Contact verification signals |
| `facebookId` | string | Linked Facebook ID (when public) |
| `avatarUrl` | string | Shop avatar image URL |
| `sellerAvgStar` | number | Seller average star |
| `createdAt` | string | Shop creation date (UTC) |
| `lastActiveAt` | string | Last active timestamp (UTC) |
| `updatedAt` | string | Profile last-updated (UTC) |
| `status` | integer | Shop status code |
| `onVacation` | boolean | Whether the shop is on vacation |
| `scrapedAt` | string | Scrape timestamp (UTC) |

### High-value use cases

- **Build a seller outreach list** — collect thousands of shops with followers,
  ratings, response rate and Facebook ID, then filter to your ideal partners.
- **Vet a supplier before you buy** — check rating breakdown, cancellation rate,
  response time and account age in seconds instead of clicking through pages.
- **Track competitor sellers** — snapshot follower and listing counts, ratings and
  badges on a schedule to watch who's growing.
- **Brand protection** — monitor which shops carry your brand and whether they hold
  official/verified status.
- **Market research** — quantify seller quality and geography across a whole Shopee
  region for reports and dashboards.

### Input parameters

| Parameter | Type | Default | Description |
| --- | --- | --- | --- |
| `shops` | array of strings | — (required) | Shop identifiers: product URL, shop URL, `/shop/<id>` URL, bare shop ID, or username |
| `region` | enum | `co.id` | Region for bare IDs/usernames (full URLs carry their own host) |
| `maxItems` | integer | `1000` | Stop after this many profiles |
| `proxyConfiguration` | proxy | disabled | Optional Apify proxy (the shop API needs none) |

Each `shops` entry accepts any of:

- `https://shopee.co.id/<slug>-i.88053496.8152544433` (product URL → shop)
- `https://shopee.co.id/shop/88053496`
- `https://shopee.co.id/windowfashionsurabaya` (storefront URL)
- `88053496` (bare shop ID) or `windowfashionsurabaya` (username)

#### Example input

```json
{
    "shops": [
        "windowfashionsurabaya",
        "https://shopee.co.id/shop/125118269",
        "88053496"
    ],
    "region": "co.id",
    "maxItems": 100
}
```

#### Example output row

```json
{
    "shopId": 125118269,
    "userId": 125119527,
    "username": "tittanium1",
    "name": "Titanium",
    "region": "co.id",
    "shopUrl": "https://shopee.co.id/tittanium1",
    "followerCount": 6839,
    "followingCount": 21,
    "itemCount": 413,
    "ratingStar": 4.47,
    "ratingCount": 52642,
    "ratingGood": 44836,
    "ratingNormal": 5517,
    "ratingBad": 2289,
    "responseRate": 82,
    "responseTimeSeconds": 20845,
    "cancellationRate": 1,
    "shopLocation": "KOTA SEMARANG",
    "country": "ID",
    "isOfficialShop": false,
    "isShopeeVerified": true,
    "isPreferredPlusSeller": true,
    "phoneVerified": true,
    "emailVerified": true,
    "facebookId": "109965377397555",
    "createdAt": "2021-05-31T09:12:00+00:00",
    "lastActiveAt": "2026-08-16T12:00:00+00:00",
    "scrapedAt": "2026-08-17T00:00:00+00:00"
}
```

### Scheduling & integrations

- **Schedule** runs (hourly/daily/weekly) from the Apify Console to keep seller
  metrics fresh.
- **Webhooks** can trigger on run completion to push new data downstream.
- **Export** to JSON, CSV, Excel or feed **Google Sheets, Make, Zapier, Airbyte
  or Amazon S3** via the Apify API and integrations.
- Pull results directly from the **dataset API** into your own app or warehouse.

### Use it from an AI agent (MCP)

This actor works with the **Apify MCP server**, so AI assistants (Claude, ChatGPT,
Cursor, VS Code) can call it as a tool — "get the Shopee profile for shop
`windowfashionsurabaya`" — and receive structured seller data back. Point your MCP
client at Apify and enable this actor.

### FAQ

**Which data is included?** Shop/seller profile data only — ratings, review counts,
followers, listings, response and cancellation metrics, location, badges, account
signals and timestamps. Individual product listings and reviews are **not** part of
this actor.

**Do I need a login, cookies, or a proxy?** No. The shop API is public; the actor
runs reliably without credentials or a proxy. A proxy is optional if you want a
specific egress region.

**Which regions are supported?** All Shopee storefronts — Indonesia, Singapore,
Malaysia, Thailand, Vietnam, Philippines, Brazil, Mexico and Taiwan. A full URL
selects its own region; bare IDs/usernames use the `region` input. Indonesia is the
primary, fully-verified market.

**How fresh is the data?** Every run fetches live data at request time, so results
reflect the shop's current state.

**How do I get shop IDs?** From any Shopee product or shop URL — the actor extracts
the shop automatically. You can also paste usernames or numeric shop IDs directly.

**Is it reliable at scale?** Yes. It uses Shopee's open shop endpoints with retries
and graceful per-shop error handling — one bad ID never fails the whole run.

**Is scraping this data legal?** The actor collects publicly available shop
information. You are responsible for using the data in compliance with Shopee's
terms and applicable laws (including data-protection rules for any personal data).

# Actor input Schema

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

One entry per Shopee shop. Each entry can be a product URL (e.g. https://shopee.co.id/xxx-i.88053496.8152544433), a shop/storefront URL (https://shopee.co.id/shop/88053496 or https://shopee.co.id/windowfashionsurabaya), a bare shop ID (88053496), or a username (windowfashionsurabaya). Full URLs carry their own region; bare IDs/usernames use the Region below.

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

Shopee region used for bare shop IDs and usernames (ignored for full URLs, which carry their own host). Indonesia is the primary, fully-verified market.

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

Stop after this many shop profiles.

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

Optional Apify proxy. The Shopee shop API is open and works without a proxy; enable one only if you need a specific egress region or want to distribute requests.

## Actor input object example

```json
{
  "shops": [
    "88053496",
    "https://shopee.co.id/windowfashionsurabaya"
  ],
  "region": "co.id",
  "maxItems": 1000,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `dataset` (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 = {
    "shops": [
        "windowfashionsurabaya",
        "https://shopee.co.id/shop/125118269"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("axlymxp/shopee-seller-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": [
        "windowfashionsurabaya",
        "https://shopee.co.id/shop/125118269",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("axlymxp/shopee-seller-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": [
    "windowfashionsurabaya",
    "https://shopee.co.id/shop/125118269"
  ]
}' |
apify call axlymxp/shopee-seller-scraper --silent --output-dataset

```

## MCP server setup

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