# Shopee Reviews Scraper: Ratings, Photos, Seller Replies (`themineworks/shopee-reviews-scraper`) Actor

Scrape Shopee product reviews by product link or shop and item id in 8 markets (SG, MY, TH, PH, VN, TW, ID, BR): star rating, text, date, reviewer name, variant bought, photos, video, sub ratings and seller reply, plus a free rating count row per product. Filter by stars, media or date. No login.

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

## Pricing

from $2.69 / 1,000 reviews

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?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Shopee Reviews Scraper: Ratings, Photos, Seller Replies

[![20 Shopee reviews with variant, photos and sub ratings in 3 seconds](https://api.apify.com/v2/key-value-stores/cUXz95yxflDho41nn/records/shopee-reviews-scraper-hero.png)](https://console.apify.com/actors/PZCmzmA2e4RSRopzt/input?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

From **The Mine Works**, makers of [⭐ Amazon Reviews Scraper](https://apify.com/themineworks/amazon-reviews?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral) and [Shopee Scraper](https://apify.com/themineworks/shopee-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), with over 260,000 runs across 290+ public actors.

Updated 31 Oct 2026: first release. Product links or shop and item ids in 8 Shopee markets, one row per review, star, photo and date filters, and a free rating count row per product. Bookmark this Actor on its Store page so it is one click away next time.

### Why choose this actor?

- **It returns reviews today.** Shopee now refuses outside requests to its per product review feed, which is why many Shopee review tools finish empty. This actor reads the public review feed of the product's shop, the one Shopee's own shop page uses, and keeps the reviews of your product. In our tests on 30 Oct 2026 it returned reviews for 16 of 16 products across all 8 markets, with no failed request.
- **Everything a review says, in columns.** Star rating, text, date, reviewer name as Shopee shows it, the variant bought, the three sub ratings (product, seller, delivery), buyer photo and video links, the seller's reply and when it came, and the review prompts the buyer answered. One flat row per review.
- **Honest counts, free.** Each product also gets a summary row with the reviews found per star, with text, with photos and with a seller reply, and a plain statement of whether those counts are complete or stopped at Shopee's limit. Summary rows are never charged. No Shopee account, cookies or browser.

[![Run it on Apify](https://api.apify.com/v2/key-value-stores/cUXz95yxflDho41nn/records/button-run.png)](https://console.apify.com/actors/PZCmzmA2e4RSRopzt/input?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Part of The Mine Works E-commerce and marketplaces family:** [Ozon.ru Scraper](https://apify.com/themineworks/ozon-product-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [⭐ Amazon Reviews Scraper](https://apify.com/themineworks/amazon-reviews?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Amazon Product Scraper](https://apify.com/themineworks/amazon-products?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Etsy Listings Scraper](https://apify.com/themineworks/etsy-search-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [AliExpress Scraper](https://apify.com/themineworks/aliexpress-products?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Kleinanzeigen.de Scraper](https://apify.com/themineworks/kleinanzeigen-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral).

### Try it in one minute

Paste this into the input (JSON view) and press Start. It returns the 20 newest reviews of one pair of earbuds on Shopee Singapore and took 3 seconds in our test run:

```json
{
  "startUrls": ["https://shopee.sg/product/565089246/23614942861"],
  "maxReviewsPerProduct": 20
}
```

Put several product links on separate lines to read many products in one run, from any of the 8 markets. Products from the same shop are read together, so a second product of a shop costs almost no extra time.

Apify's free plan includes $5 of credit every month, which covers about 1,300 reviews at this actor's price.

#### Copy to your AI assistant

```text
themineworks/shopee-reviews-scraper on Apify. Returns Shopee product reviews, one flat row per review, from product links in Singapore, Malaysia, Thailand, the Philippines, Vietnam, Taiwan, Indonesia and Brazil, with no login. Call ApifyClient("TOKEN").actor("themineworks/shopee-reviews-scraper").call(run_input={"startUrls": ["https://shopee.sg/product/565089246/23614942861"], "maxReviewsPerProduct": 100}), then client.dataset(run["defaultDatasetId"]).list_items().items. Give startUrls (product links containing -i.<shop id>.<item id> or /product/<shop id>/<item id>, id pairs like "565089246.23614942861", or /shop/<shop id> links for a whole shop; up to 500) or shopId plus itemId for one product, with country (SG, MY, TH, PH, VN, TW, ID, BR; default SG) for ids. Optional: maxReviewsPerProduct (default 100, 0 = all Shopee serves, max 5000), stars (list of "1" to "5"), withMediaOnly, withCommentOnly, newerThan (a date like 2026-10-01 or an age like "7 days"), includeSummary (default true). Review rows have no _type field and carry review_id, rating, comment, has_comment, created_at, reviewer_name, reviewer_anonymous, variant, variant_id, product_id, shop_id, product_name, product_url, likes, has_media, image_count, video_count, image_urls, video_urls, seller_reply, seller_reply_at, has_seller_reply, product_quality, seller_service, delivery_service, review_tags, follow_up_comment, buyer_region, is_overseas_buyer, country, marketplace, position, source, scraped_at. Each product also gets a row with _type "product_summary" (ratings_found, ratings_found_by_star, average_rating_found, found_with_comment, found_with_media, found_with_seller_reply, counts_complete, star_lists, coverage, coverage_note); a run writes one _type "summary" row and _type "error" rows for inputs it could not read. None of these is charged. Full spec: GET https://api.apify.com/v2/acts/themineworks~shopee-reviews-scraper/builds/default (Bearer TOKEN), which returns inputSchema and readme. Token: https://console.apify.com/account/integrations?fpr=ymnoit&utm_source=apify-readme&utm_medium=referral
```

### Key features

- **8 markets, one input.** shopee.sg, shopee.com.my, shopee.co.th, shopee.ph, shopee.vn, shopee.tw, shopee.co.id and shopee.com.br. The market comes from each link, so one run can mix them.
- **Links or ids.** Paste product links as you copy them from the browser, `/product/<shop id>/<item id>` links, id pairs like `565089246.23614942861`, or set `shopId` and `itemId` for one product per call from Clay, n8n or an AI agent. A `/shop/<shop id>` link returns every review of that shop.
- **Newest first, with a date stop.** Reviews always come newest first. Set `newerThan` to a date or an age such as `7 days` and reading stops at the first older review, which keeps scheduled runs small.
- **Star, photo and text filters.** `stars` reads only the star ratings you pick (1 and 2 for complaints), `withMediaOnly` keeps reviews with buyer photos or video, `withCommentOnly` drops star only ratings.
- **Deep reads where Shopee allows.** For a product in a big shop the actor reads the shop's newest reviews first, then each star's own list, merged by date. In our test this reached 325 reviews of one product back to January 2023.
- **Stops cleanly.** A page that fails is tried at most twice more on a new IP; if the run's first page fails every try the run stops right there. A product with no reviews in a big shop stops after 20 pages. The run stops before its time limit and keeps every row.

### How to use it

#### Basic: the newest reviews of a few products

```json
{
  "startUrls": [
    "https://shopee.sg/product/565089246/23614942861",
    "https://shopee.com.my/product/1117360958/51659011443"
  ],
  "maxReviewsPerProduct": 200
}
```

One row per review, newest first, plus a summary row per product. Sort by `rating` or filter on `has_media` in a spreadsheet.

#### Complaint mining: 1 and 2 star reviews with text

```json
{
  "startUrls": ["https://shopee.sg/product/131198971/6646421738"],
  "stars": ["1", "2"],
  "withCommentOnly": true,
  "maxReviewsPerProduct": 300
}
```

Only those star lists are read, so the actor reaches far older complaints than a mixed read would. In our test this returned 1 and 2 star reviews with text going back 16 months. `product_quality`, `seller_service` and `delivery_service` show whether the problem was the product, the seller or the courier.

#### Weekly monitor of new reviews

```json
{
  "startUrls": ["https://shopee.co.th/product/1027683441/23953251935"],
  "newerThan": "7 days",
  "maxReviewsPerProduct": 0
}
```

Save it as a task and schedule it every Monday. Each run reads only until it meets a review older than 7 days. De-duplicate on `review_id` if two windows overlap.

#### One product per call from Clay, n8n or an agent

```json
{
  "shopId": "565089246",
  "itemId": "23614942861",
  "country": "SG",
  "maxReviewsPerProduct": 50
}
```

#### Every review of a shop

```json
{
  "startUrls": ["https://shopee.sg/shop/573423435"],
  "maxReviewsPerProduct": 0
}
```

All of the shop's products in one feed. In our test a shop with 120 reviews came back complete in 5 seconds.

#### Buyer photos and videos only

```json
{
  "startUrls": ["https://shopee.com.br/product/893908801/20999566854"],
  "withMediaOnly": true,
  "maxReviewsPerProduct": 100
}
```

`image_urls` and `video_urls` are full links you can download.

### Input parameters

| Parameter | Type | Default | What it does |
|---|---|---|---|
| `startUrls` | array of strings | empty | Product links, id pairs (`<shop id>.<item id>`) or `/shop/<shop id>` links. Up to 500. |
| `shopId` | string | empty | One product's shop id, for one record calls. With `itemId` empty, the whole shop. |
| `itemId` | string | empty | One product's item id. |
| `country` | string | `SG` | Market of id pairs and of `shopId`/`itemId`: SG, MY, TH, PH, VN, TW, ID or BR. Links carry their own. |
| `maxReviewsPerProduct` | integer | `100` | Most reviews per product or shop link, newest first. `0` = all that Shopee serves. |
| `stars` | array | all | Only these star ratings, `"1"` to `"5"`. |
| `withMediaOnly` | boolean | `false` | Only reviews with buyer photos or video. |
| `withCommentOnly` | boolean | `false` | Only reviews with written text. |
| `newerThan` | string | empty | Only reviews newer than a date (`2026-10-01`) or an age (`7 days`, `2 weeks`, `3 months`). |
| `includeSummary` | boolean | `true` | One free summary row per product with the counts found. |
| `proxyConfiguration` | object | Apify datacenter | The default works; residential is not needed. |

Give `startUrls`, or `shopId` with `itemId`, or both.

### What data do you get?

One row per review. Review rows have no `_type` field; the summary, info and error rows do, so a filter on `_type` separates them.

| Field | What it is |
|---|---|
| `review_id` | Shopee review id, stable across runs: the key to de-duplicate on |
| `rating` | Star rating, 1 to 5 |
| `comment`, `has_comment` | The written review, and whether there is one |
| `created_at` | When the review was posted, ISO 8601 UTC |
| `reviewer_name`, `reviewer_anonymous` | Name as Shopee shows it (anonymous buyers are masked, e.g. `t*****3`), and the anonymous flag |
| `variant`, `variant_id` | The variant bought, e.g. `White` or `Deep Space Grey`, and its model id |
| `product_id`, `shop_id`, `product_name`, `product_url` | The product the review belongs to |
| `product_quality`, `seller_service`, `delivery_service` | Shopee's three sub ratings, 1 to 5 |
| `has_media`, `image_count`, `video_count`, `image_urls`, `video_urls` | Buyer photos and videos, with full links |
| `seller_reply`, `seller_reply_at`, `has_seller_reply` | The shop's public reply and when it was posted |
| `review_tags` | Shopee's review prompts the buyer answered, e.g. `Sound quality`, `Design` |
| `likes` | Helpful votes, when Shopee sends them (rare in this feed) |
| `follow_up_comment` | A later follow up review by the same buyer |
| `buyer_region`, `is_overseas_buyer` | Buyer's country as Shopee reports it, and the cross border flag |
| `country`, `marketplace` | Market code and host |
| `position` | Rank within its product in this run, 1 = newest |
| `source`, `scraped_at` | The input line this row answers, and when it was written |

**Product summary row** (`_type: "product_summary"`, or `"shop_summary"` for a shop link, never charged): `product_id`, `shop_id`, `product_name`, `product_url`, `reviews_delivered`, `ratings_found` and `ratings_found_by_star` (the product's reviews read, before the photo and text filters), `average_rating_found`, `found_with_comment`, `found_with_media`, `found_with_seller_reply`, `newest_review_at`, `oldest_review_at`, `shop_history_read_back_to`, `counts_complete`, `star_lists` (per star: `complete`, `complete_to_date`, `limit_reached`, `stopped` or `not_requested`), `coverage` and a plain `coverage_note`.

`coverage` is one of: `complete` (every review of the product in Shopee's feed was read, so the counts are its full counts), `complete_to_date` (complete back to `newerThan`), `stopped_at_max` (your `maxReviewsPerProduct` was reached first), `shopee_limit` (the shop has more reviews than Shopee serves, see the FAQ), `no_reviews_found`, or `stopped`.

**Run summary row** (`_type: "summary"`, never charged): products and shops asked, shops read and failed, pages read, reviews read and delivered, `charged_for`, filter counts, requests, retries, kilobytes, `stopped_by_max_cost`, `stopped_by_block_guard`, and `shortfall_reason` when fewer reviews came back than asked. The same summary is saved as the `OUTPUT` record of the run.

**Error rows** (`_type: "error"`, never charged): one per input that could not be read, with `error_type` (`not_a_link`, `not_shopee`, `short_link`, `no_ids`, `shop_not_found`, `blocked`, `fetch_error`), `input` and `reason`.

#### Stable fields for automations

These were present in every review row of our test runs (1,535 reviews from 16 products in 8 markets), and their names will not change:

| Field | What it is |
|---|---|
| `review_id` | The key to store and join on |
| `rating` | Stars |
| `created_at` | Posted at |
| `product_id` | Product |
| `shop_id` | Shop |
| `product_name` | Product name |
| `product_url` | Product link |
| `has_comment` | Has text |
| `has_media` | Has photos or video |
| `has_seller_reply` | Seller replied |
| `country` | Market |
| `position` | Newest first rank |

Optional, present only when the review has it: `reviewer_name` (99.8% of test rows), the three sub ratings (95.5%), `variant` (93.5%; products without variants have none), `seller_reply` (44%), `comment` (20%: most Shopee buyers rate without writing), `image_urls` (13.5%), `review_tags` (12%), `video_urls` (7%), `likes` (under 1%) and `follow_up_comment`.

#### Output examples

A 2 star review from Shopee Malaysia (test run, 30 Oct 2026):

```json
{
  "review_id": "116071938396",
  "rating": 2,
  "comment": "Left side ear phone always don't have sound even though i charge the battery full, quality not stable",
  "has_comment": true,
  "created_at": "2026-10-30T13:56:47.000Z",
  "reviewer_name": "skylai168",
  "reviewer_anonymous": false,
  "variant": "Deep Space Grey",
  "variant_id": "315799726815",
  "product_id": "51659011443",
  "shop_id": "1117360958",
  "product_name": "GOOJODOQ Sleep Bluetooth Earphones Ultra Light Wireless In-Ear Earbuds Premium Sleep Sound Effects",
  "product_url": "https://shopee.com.my/product/1117360958/51659011443",
  "has_media": false,
  "image_count": 0,
  "video_count": 0,
  "has_seller_reply": false,
  "product_quality": 2,
  "seller_service": 5,
  "delivery_service": 5,
  "buyer_region": "MY",
  "is_overseas_buyer": false,
  "country": "MY",
  "marketplace": "shopee.com.my",
  "position": 3
}
```

A 5 star review with photos and a seller reply from Shopee Brazil:

```json
{
  "review_id": "70371813447215",
  "rating": 5,
  "comment": "Qualidade de áudio:Achei o som bom,veio com carregador. gostei bastante. Sem muito o que falar",
  "created_at": "2026-10-30T17:46:13.000Z",
  "reviewer_name": "xe9ho_ftdz",
  "product_id": "20999566854",
  "shop_id": "893908801",
  "product_name": "Fone M10 De Ouvido bluetooth 5.3 Sem Fio tws Estéreo Com Pod Carregador Power Bank",
  "has_media": true,
  "image_count": 2,
  "image_urls": [
    "https://down-br.img.susercontent.com/file/br-11134103-820l6-muxt96fvtvk2ec",
    "https://down-br.img.susercontent.com/file/br-11134103-820lo-muxt96g2tc008f"
  ],
  "seller_reply": "Olá! Muito obrigado pelo reconhecimento por nós. Sua satisfação é nossa maior recompensa, a nossa loja vai trabalhar mais para melhorar, ansioso pela sua próxima compra.",
  "seller_reply_at": "2026-10-30T17:55:30.000Z",
  "product_quality": 5,
  "seller_service": 5,
  "delivery_service": 5,
  "review_tags": ["Qualidade de áudio", "Cancelamento de ruído"],
  "country": "BR"
}
```

The free summary row of a product read in full (test run, one product of a large Singapore shop, no cap):

```json
{
  "_type": "product_summary",
  "country": "SG",
  "shop_id": "131198971",
  "product_id": "6646421738",
  "product_name": "Baseus WM01 TWS Bluetooth Earphones Stereo Wireless 5.3 Bluetooth Headphones Touch Control Noise Cancelling Gaming Headset For i 13 12 mini pro max",
  "reviews_delivered": 325,
  "ratings_found": 325,
  "ratings_found_by_star": { "1": 65, "2": 71, "3": 63, "4": 76, "5": 50 },
  "counts_complete": false,
  "star_lists": { "1": "limit_reached", "2": "limit_reached", "3": "limit_reached", "4": "limit_reached", "5": "limit_reached" },
  "coverage": "shopee_limit",
  "oldest_review_at": "2023-01-14T10:17:08.000Z",
  "feed_pages_read": 51
}
```

### Pricing

Pay per event: you pay for the reviews you receive, plus a flat $0.002 per run, whatever memory you choose. The summary row per product is free.

| Event | When it is charged | Free plan | Bronze (Starter) | Silver (Scale) | Gold (Business) |
|---|---|---|---|---|---|
| `review` | Once per review row stored in your dataset | $3.59 per 1,000 | $3.41 per 1,000 | $2.96 per 1,000 | $2.69 per 1,000 |
| `run-start` | Once per run, right after the first review reached your dataset | $0.002 | $0.002 | $0.002 | $0.002 |

The price of one review is the price per 1,000 divided by 1,000. A review costs the same with or without text, photos or a seller reply.

Never charged:

- the summary row per product or shop, the run summary row, info rows and error rows;
- inputs that are not Shopee product or shop links (each gets an error row);
- reviews skipped by your star, photo, text or date filters;
- a review already delivered in the same run;
- a run with no valid input, a blocked run, or one that finds no reviews: the start fee is charged only once a review has reached your dataset;
- anything past your "Max cost per run". The actor checks the budget before each batch of rows and stops while the total is still below your limit, so the run ends SUCCEEDED with a partial result and a status message saying so.

### Run it on a schedule

1. Open the actor in Apify Console, set your input with `newerThan` matching the interval (for example `1 day` for a daily run) and click **Save as a new task**.
2. In the task, open **Schedules**, click **Add schedule** and pick how often.
3. De-duplicate on `review_id` so an overlap between two windows does not count twice.
4. Optional: add an integration (Google Sheets, Slack, a webhook) so new 1 and 2 star reviews land where your team works.

### FAQ

#### What does this actor read?

The public review feed of the product's shop on Shopee, the same one Shopee's shop page shows to anyone without logging in, and only the reviews that belong to your product. It does not log in, does not open buyer profiles and does not read anything behind a sign in.

#### Why the shop's feed and not the product's?

Shopee's per product review feed now answers outside requests with a refusal unless the caller runs Shopee's own signed security script, which we do not imitate. The shop feed carries the same reviews (star, text, variant, photos, video, sub ratings, seller reply) with the product named on each one, so filtering it on the product gives that product's reviews.

#### How many reviews can I get per product?

Up to 5,000, newest first. Shopee serves the newest 1,000 reviews of a shop in each star rating. For a product in a small or mid sized shop that is usually its whole history, and the summary row then says `complete`. For a product in a very large shop (hundreds of thousands of ratings) it is the part of its history inside those lists: 325 reviews back to January 2023 for one earbud in our test. The summary row says `shopee_limit` when that happens.

#### Are the summary counts Shopee's own totals?

They are the counts of the product's reviews the run read. When `counts_complete` is true, every star list asked was read to its end, so they are the product's full counts in Shopee's feed. When it is false, `coverage_note` says why (your maximum, Shopee's limit, or a stop). Shopee's own rating total for a product is not on any public page this actor can read.

#### Can I sort by most helpful?

No. Shopee's shop feed only lists reviews newest first, so that is the order you get. `likes` is filled only when Shopee sends a vote count, which is rare in this feed.

#### Which Shopee links work?

Product links from the 8 markets in any of their forms (`...-i.<shop id>.<item id>`, `/product/<shop id>/<item id>`), id pairs with `country`, and `/shop/<shop id>` links. Shop name links (`shopee.sg/<shop name>`) and `shp.ee` short links get an error row: open one of the shop's products and paste that link instead.

#### How long does a run take?

In our tests: 3 seconds for the "Try it" input (20 reviews), 51 seconds for 30 reviews from each of 8 products in 8 markets, 330 seconds for 1,535 reviews from 16 products, and 120 seconds for the full 325 review history of one product in a very large shop. The default time limit is 3,600 seconds; the actor stops before it and keeps every row.

#### Do I need an account, cookies or a proxy?

No. The actor reads the public feed over Apify's datacenter proxy, which is included. Nothing to set up.

#### Which formats can I download?

JSON, CSV, Excel, XML, RSS and HTML from the run's Storage tab or through the API. The dataset has three ready views: Reviews, Sub ratings and media, and Product summaries. In CSV and Excel, `image_urls`, `video_urls` and `ratings_found_by_star` are flattened into columns such as `image_urls/0`.

#### Can I use it from Claude, ChatGPT or Cursor (MCP)?

Yes, through Apify's MCP server. Connector URL: https://mcp.apify.com/?tools=themineworks/shopee-reviews-scraper

- Claude: Settings > Connectors > Add custom connector, paste the URL, sign in with Apify.
- ChatGPT: turn on developer mode, add an MCP connector with the URL, sign in with Apify.
- Cursor or VS Code: add it as an HTTP MCP server with that URL.
- Claude Code: `claude mcp add -t http shopee-reviews-scraper "https://mcp.apify.com/?tools=themineworks/shopee-reviews-scraper"`

#### Is it legal to scrape Shopee reviews?

The actor reads only reviews that anyone can see on Shopee without logging in. Reviews carry reviewer names as Shopee shows them, which can be personal data, so you are responsible for how you store and use them, including Shopee's terms and data protection law such as the PDPA laws of Southeast Asia, Brazil's LGPD, GDPR and CCPA. This is general information, not legal advice.

### Integrations

- **Google Sheets**: send each run's reviews to a sheet with Apify's Google Sheets integration; one row per review fits a sheet as is.
- **Make, Zapier and n8n**: start a run and read its dataset with the Apify apps and nodes, for example "new 1 star reviews of our products every morning to Slack".
- **Clay**: call it once per product row with `shopId` and `itemId`, and pull the summary row's counts back into your table.
- **Webhooks**: have Apify call your URL when a run succeeds, then fetch the dataset.
- **API and SDKs**: run it from Python or JavaScript with the Apify client, or with a plain HTTP call (see "Copy to your AI assistant" above).
- **MCP clients**: Claude, ChatGPT, Cursor and VS Code can run it as a tool through the connector URL in the FAQ.

### More from The Mine Works

**E-commerce and marketplaces**

- [Ozon.ru Scraper](https://apify.com/themineworks/ozon-product-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [⭐ Amazon Reviews Scraper](https://apify.com/themineworks/amazon-reviews?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Amazon Product Scraper](https://apify.com/themineworks/amazon-products?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Etsy Listings Scraper](https://apify.com/themineworks/etsy-search-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [AliExpress Scraper](https://apify.com/themineworks/aliexpress-products?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Kleinanzeigen.de Scraper](https://apify.com/themineworks/kleinanzeigen-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Carsales.com.au Scraper](https://apify.com/themineworks/carsales-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [eBay Product Listings Scraper](https://apify.com/themineworks/ebay-search-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Shopify Store Scraper](https://apify.com/themineworks/shopify-store-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [🛒 TikTok Shop Scraper](https://apify.com/themineworks/tiktok-shop-products?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Walmart Product & Price Scraper](https://apify.com/themineworks/walmart-product-price-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Vinted Scraper](https://apify.com/themineworks/vinted-listings-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Social media and video**

- [Threads Scraper](https://apify.com/themineworks/threads-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Reddit Scraper](https://apify.com/themineworks/reddit-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Threads Search Scraper](https://apify.com/themineworks/threads-search-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Instagram Profile Scraper](https://apify.com/themineworks/instagram-profile-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Leads and business directories**

- [B2B Leads Finder](https://apify.com/themineworks/b2b-leads-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Skip Trace Lookup](https://apify.com/themineworks/skip-trace-lookup?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google Maps Email Scraper](https://apify.com/themineworks/maps-leads?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [2GIS Places Scraper](https://apify.com/themineworks/2gis-places-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Marketing, SEO and reviews**

- [Facebook Ad Library Scraper](https://apify.com/themineworks/meta-ad-library-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google Ads Transparency Scraper](https://apify.com/themineworks/google-ads-transparency?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Similarweb Scraper](https://apify.com/themineworks/similarweb-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google News Scraper](https://apify.com/themineworks/google-news?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**LinkedIn**

- [LinkedIn Company Scraper](https://apify.com/themineworks/linkedin-company-details?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Post Scraper](https://apify.com/themineworks/linkedin-post-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Employees Scraper](https://apify.com/themineworks/linkedin-employees?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Profile Scraper](https://apify.com/themineworks/linkedin-profile-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Real estate**

- [Zillow Rentals Scraper](https://apify.com/themineworks/zillow-rental-listings?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Zillow Sold Comps Scraper](https://apify.com/themineworks/zillow-recently-sold?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [India Real Estate MCP](https://apify.com/themineworks/india-real-estate-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Housing.com Scraper](https://apify.com/themineworks/housing-com-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Science, health and government data**

- [Academic Research MCP](https://apify.com/themineworks/academic-research-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [CourtListener Scraper](https://apify.com/themineworks/courtlistener-court-records?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Socrata Open Data Scraper](https://apify.com/themineworks/socrata-open-data?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [OpenAlex Scraper](https://apify.com/themineworks/openalex-scholarly-works?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Jobs and hiring**

- [Foundit Monster India Jobs](https://apify.com/themineworks/foundit-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Hirist Jobs Scraper](https://apify.com/themineworks/hirist-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [India Jobs MCP](https://apify.com/themineworks/india-jobs-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Naukri Jobs Scraper](https://apify.com/themineworks/naukri-jobs?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Company and business data**

- [Company Domain Finder](https://apify.com/themineworks/company-domain-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GST Taxpayer Lookup](https://apify.com/themineworks/gst-taxpayer-lookup?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Company KYB Resolver](https://apify.com/themineworks/company-identity-resolver?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [SEC EDGAR Filings Scraper](https://apify.com/themineworks/sec-edgar-filings?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Food and local services**

- [NoBroker Scraper](https://apify.com/themineworks/nobroker-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Swiggy Restaurant Scraper](https://apify.com/themineworks/swiggy-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Zomato Scraper](https://apify.com/themineworks/zomato-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Developer and AI tools**

- [Website to Markdown Crawler](https://apify.com/themineworks/rag-crawler?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GitHub Skill Finder](https://apify.com/themineworks/github-skill-discovery?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GitHub Repo Scraper](https://apify.com/themineworks/github-repo-intelligence?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GitHub Trending Scraper](https://apify.com/themineworks/github-trending-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**More tools**

- [G2 Reviews Scraper](https://apify.com/themineworks/g2-reviews-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Naver Blog Scraper](https://apify.com/themineworks/naver-blog-posts-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [WeChat Article Scraper 微信公众号文章](https://apify.com/themineworks/wechat-article-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Taobao Products Scraper 淘宝 天猫](https://apify.com/themineworks/taobao-products-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

### Support

Found a product link that should return reviews and does not, or a field that comes back empty? Open an issue in the Issues tab with the input and the run ID, and we will look at it. For a field you need or a new source, email dmineworks@gmail.com.

*Paste Shopee product links from 8 markets and get every review back as one row, with stars, text, variant, photos, video, sub ratings and the seller's reply, plus free rating counts per product, no login.*

# Actor input Schema

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

One per line. A product link from SG, MY, TH, PH, VN, TW, ID or BR Shopee, for example https://shopee.sg/product/565089246/23614942861 or a link ending in -i.565089246.23614942861. You can also paste an id pair like 565089246.23614942861 (shop id, item id; the market comes from Country), or a shop link like https://shopee.sg/shop/565089246 for all of a shop's reviews. Up to 500 per run; products of the same shop are read together.

## `shopId` (type: `string`):

For one product at a time from Clay, n8n or an AI agent: the shop id, the first number in the product link. Use with Item id and Country. Leave Item id empty to get all of the shop's reviews.

## `itemId` (type: `string`):

The item id: the second number in the product link, right after the shop id.

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

The Shopee market of id pairs and of Shop id / Item id. Links carry their own market.

## `maxReviewsPerProduct` (type: `integer`):

The most reviews to return for each product (or shop link), newest first. 0 = every review Shopee serves. Example: 200.

## `stars` (type: `array`):

Only reviews with these star ratings. Leave empty for all. Pick 1 and 2 to collect complaints.

## `withMediaOnly` (type: `boolean`):

Skip reviews that have no buyer photo and no video.

## `withCommentOnly` (type: `boolean`):

Skip star only ratings that have no comment.

## `newerThan` (type: `string`):

Most recent reviews only: a date (2026-10-01) or an age (7 days, 2 weeks, 3 months). Reviews always come newest first and reading stops at the first older one. Good for a daily or weekly schedule.

## `includeSummary` (type: `boolean`):

One extra row per product with the reviews found per star, with text, with photos and with a seller reply, the average and whether the counts are complete. Never charged.

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

Apify datacenter proxy by default, which works for Shopee's review feed. Residential is not needed.

## Actor input object example

```json
{
  "startUrls": [
    "https://shopee.sg/product/565089246/23614942861"
  ],
  "country": "SG",
  "maxReviewsPerProduct": 20,
  "withMediaOnly": false,
  "withCommentOnly": false,
  "includeSummary": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

No description

## `summary` (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": [
        "https://shopee.sg/product/565089246/23614942861"
    ],
    "maxReviewsPerProduct": 20,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("themineworks/shopee-reviews-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": ["https://shopee.sg/product/565089246/23614942861"],
    "maxReviewsPerProduct": 20,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("themineworks/shopee-reviews-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": [
    "https://shopee.sg/product/565089246/23614942861"
  ],
  "maxReviewsPerProduct": 20,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call themineworks/shopee-reviews-scraper --silent --output-dataset

```

## MCP server setup

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