Shopee Reviews Scraper: Ratings, Photos, Seller Replies avatar

Shopee Reviews Scraper: Ratings, Photos, Seller Replies

Pricing

from $2.69 / 1,000 reviews

Go to Apify Store
Shopee Reviews Scraper: Ratings, Photos, Seller Replies

Shopee Reviews Scraper: Ratings, Photos, Seller Replies

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.

Pricing

from $2.69 / 1,000 reviews

Rating

0.0

(0)

Developer

The Mine Works

The Mine Works

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

18 hours ago

Last modified

Share

20 Shopee reviews with variant, photos and sub ratings in 3 seconds

From The Mine Works, makers of ⭐ Amazon Reviews Scraper and Shopee Scraper, 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

Part of The Mine Works E-commerce and marketplaces family: Ozon.ru Scraper, ⭐ Amazon Reviews Scraper, Amazon Product Scraper, Etsy Listings Scraper, AliExpress Scraper, Kleinanzeigen.de Scraper.

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:

{
"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

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

{
"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

{
"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

{
"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

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

Every review of a shop

{
"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

{
"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

ParameterTypeDefaultWhat it does
startUrlsarray of stringsemptyProduct links, id pairs (<shop id>.<item id>) or /shop/<shop id> links. Up to 500.
shopIdstringemptyOne product's shop id, for one record calls. With itemId empty, the whole shop.
itemIdstringemptyOne product's item id.
countrystringSGMarket of id pairs and of shopId/itemId: SG, MY, TH, PH, VN, TW, ID or BR. Links carry their own.
maxReviewsPerProductinteger100Most reviews per product or shop link, newest first. 0 = all that Shopee serves.
starsarrayallOnly these star ratings, "1" to "5".
withMediaOnlybooleanfalseOnly reviews with buyer photos or video.
withCommentOnlybooleanfalseOnly reviews with written text.
newerThanstringemptyOnly reviews newer than a date (2026-10-01) or an age (7 days, 2 weeks, 3 months).
includeSummarybooleantrueOne free summary row per product with the counts found.
proxyConfigurationobjectApify datacenterThe 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.

FieldWhat it is
review_idShopee review id, stable across runs: the key to de-duplicate on
ratingStar rating, 1 to 5
comment, has_commentThe written review, and whether there is one
created_atWhen the review was posted, ISO 8601 UTC
reviewer_name, reviewer_anonymousName as Shopee shows it (anonymous buyers are masked, e.g. t*****3), and the anonymous flag
variant, variant_idThe variant bought, e.g. White or Deep Space Grey, and its model id
product_id, shop_id, product_name, product_urlThe product the review belongs to
product_quality, seller_service, delivery_serviceShopee's three sub ratings, 1 to 5
has_media, image_count, video_count, image_urls, video_urlsBuyer photos and videos, with full links
seller_reply, seller_reply_at, has_seller_replyThe shop's public reply and when it was posted
review_tagsShopee's review prompts the buyer answered, e.g. Sound quality, Design
likesHelpful votes, when Shopee sends them (rare in this feed)
follow_up_commentA later follow up review by the same buyer
buyer_region, is_overseas_buyerBuyer's country as Shopee reports it, and the cross border flag
country, marketplaceMarket code and host
positionRank within its product in this run, 1 = newest
source, scraped_atThe 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:

FieldWhat it is
review_idThe key to store and join on
ratingStars
created_atPosted at
product_idProduct
shop_idShop
product_nameProduct name
product_urlProduct link
has_commentHas text
has_mediaHas photos or video
has_seller_replySeller replied
countryMarket
positionNewest 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):

{
"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:

{
"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):

{
"_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.

EventWhen it is chargedFree planBronze (Starter)Silver (Scale)Gold (Business)
reviewOnce 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-startOnce 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.

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"

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

Social media and video

Leads and business directories

Marketing, SEO and reviews

LinkedIn

Real estate

Science, health and government data

Jobs and hiring

Company and business data

Food and local services

Developer and AI tools

More tools

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.