Shopee Shop Reviews & Ratings Scraper
Pricing
from $2.79 / 1,000 reviews
Shopee Shop Reviews & Ratings Scraper
Scrape reviews from any Shopee shop in all 8 markets: star rating, text, buyer photos and video, the product and variation, three sub-scores and the seller's reply. Put the market in the URL, since a shop id works on one market only. $3.79 per 1,000 on the free plan, down to $2.79 on paid plans.
Pricing
from $2.79 / 1,000 reviews
Rating
5.0
(2)
Developer
Dami's Studio
Maintained by CommunityActor stats
1
Bookmarked
124
Total users
75
Monthly active users
2 days ago
Last modified
Categories
Share
Give it a Shopee shop URL and get the shop's reviews as rows: the star rating, the buyer's words, their photos and video, the product and the exact variation the review is about, three sub-scores and the seller's public reply.
Put the market in the URL, always. Shopee runs eight separate markets and a shop id exists on only one of them, so shopee.sg/shop/1103391312 and shopee.ph/shop/1103391312 are two different things. An id on the wrong market comes back empty rather than wrong.
Two more things worth knowing before the first run. Shopee serves at most about 1,000 reviews per star rating, so roughly 5,000 per shop however many it declares. And there is no free trial row: the input box arrives pointing at a real shop, and an API call that leaves the URLs out gets that same shop, so either way the run really does sweep it.
| Input | Shopee shop URLs, with the market host on them |
| Output | One row per review: stars, text, photos and video, product and variation, three sub-scores, the seller's reply. Plus one free summary row per shop |
| Ceiling | About 1,000 reviews per star rating, roughly 5,000 per shop |
| Account needed | None |
| Price | $3.79 per 1,000 reviews on the free plan, down to $2.79 on the larger paid plans. The free plan's $5 a month covers about 1,300 |
🔍 What Shopee Shop Reviews Scraper does
Shopee pages its reviews one star rating at a time, so this sweeps each bucket separately and interleaves them. On a capped run that matters: you get a spread across all five ratings instead of a hundred five-star ratings and nothing else.
Every review names its product, its variation (model_name) and the shop it belongs to, so one sweep of a 165-item shop is already a per-product breakdown.
Each row carries a coverage_note saying how much of the shop you actually got: "Collected 100 of the shop's 78,646 declared ratings (0.13%)". If a star bucket hit Shopee's own ceiling, the note says that too. You never have to guess whether a run was complete.
A product URL works, and returns the reviews from the shop sweep that belong to that product. Shopee publishes no per-product review feed, so that is a slice of the sweep rather than the product's full history.
📋 What data you get from each Shopee review
| What you get | Field |
|---|---|
| The star rating and the written review | rating_star, comment, has_comment |
| Product quality, seller service and delivery sub-scores | detailed_rating |
| The product and the exact variation bought | product_name, model_name, itemid, product_url |
| Buyer photos and the number of photos and clips | images, image_count, video_count |
| The seller's public reply and when it came | seller_reply, seller_reply_date |
| The buyer's handle, masked where Shopee masks it | author_username, author_masked, anonymous |
| Review date and a stable review id | review_date, ctime, cmtid |
| The shop and its market | shop_name, shop_username, shopid, host, country |
| How much of the shop the run covered | coverage_note |
▶️ How to scrape Shopee shop reviews
- Open Shopee Shop Reviews Scraper and click Try for free.
- Put your shop URLs into Shopee shop or product URLs, one per line, each with its market host.
- Set Max reviews per shop. Start at 100 and read the coverage note before going bigger.
- If you only want reviews people actually wrote, tick Only reviews that have written text.
- Click Start, then download the dataset as JSON, CSV or Excel, or read it from the API.
💰 How much does it cost to scrape Shopee reviews?
$3.79 per 1,000 reviews on the free plan. It falls with your Apify plan: $3.59 on Bronze, $3.09 on Silver, and $2.79 on Gold, Platinum and Diamond. On the free plan, the $5 Apify gives you each month covers about 1,300 reviews.
You pay per review row. The shop summary row is not a review and is not charged as one, and neither are the notices, which do not enter the dataset at all.
Three hundred reviews from one shop is a bit over a dollar on the free plan. If you set a maximum charge for a run, it stops at the last review that fits; a maximum too small for a single review ends the run as failed, with a plain message saying so.
📥 What you give it
{"startUrls": ["https://shopee.sg/shop/1103391312"],"maxReviewsPerShop": 300,"starRatings": ["5", "4", "3", "2", "1"],"onlyWithText": true}
| Field | Default | What it is |
|---|---|---|
startUrls | a real example shop | Shop URLs (/shop/123456 or /shopusername) or product URLs. The market host is part of the address, so keep it. Left out of an API call, the example shop is swept and billed. |
maxReviewsPerShop | 100 | 1 to 5,000 per shop. Anything above roughly 5,000 cannot be met, because Shopee stops serving. |
starRatings | all five | Which buckets to sweep. Narrowing it makes a run faster. One-star only is the fastest useful run there is. |
onlyWithText | false | Many Shopee ratings are stars and nothing else. Turn this on to keep only reviews with a written comment. |
onlyWithMedia | false | Keep only reviews that came with photos or video. |
includeShopSummary | true | Adds one row per shop: average rating, good, normal and bad counts, followers, item count, response rate. |
requestDelayMs | 250 | Milliseconds between requests, 0 to 5,000. |
📤 What you get back
A real review row from a run on 30 September 2026, with the seller's reply cut short:
{"type": "review","cmtid": 110032430827,"orderid": 242837650266379,"country": "SG","host": "shopee.sg","shopid": 1103391312,"shop_username": "baseus.sg","shop_name": "Baseus Official Store Singapore","itemid": 40400151062,"product_name": "【CCC Certified】Baseus Qpow3 Power Bank 10000/20000mAh 22.5W Digital Display with 2 Built-in Cables Smaller size Updated","model_name": "Blue,CCC 20KmAh 22.5W","product_url": "https://shopee.sg/product/1103391312/40400151062","rating_star": 2,"comment": "Charging speed:it charged fast and overall served its purpose\nCompact size:slightly bulky\n\nbut it has a black scratch at the back? which makes it look dirty","has_comment": true,"detailed_rating": {"product_quality": 2,"seller_service": 5,"delivery_service": 5},"author_username": "k*****3","author_masked": true,"anonymous": true,"review_date": "2026-09-16T10:34:23.000Z","ctime": 1789554863,"images": ["https://down-sg.img.susercontent.com/file/sg-11134103-8258e-mt6l00golzpla7"],"image_count": 1,"video_count": 1,"like_count": 0,"seller_reply": "Dear Customer,\n\nWe are sorry that your experience did not meet your expectations. ...","seller_reply_date": "2026-09-16T10:37:24.000Z","collected_at": "2026-09-30T00:47:00.340Z","coverage_note": "Collected 100 of the shop's 78,646 declared ratings (0.13%)."}
| Field | How to read it |
|---|---|
cmtid | Shopee's review id. Stable, so use it as your dedupe key across runs. |
detailed_rating | Shopee's three sub-scores. The overall star often disagrees with one of them, as here: two stars, but five for the seller and the delivery. |
comment, has_comment | The written text. has_comment is false on a stars-only rating, and the comment is then an empty string rather than null. |
author_username, author_masked, anonymous | Shopee masks some buyer names itself (k*****3). The two flags tell you when what you are reading is masked. |
images, image_count, video_count | Buyer photos as URLs, and a count of clips. Neither shows in the default table view. |
seller_reply, seller_reply_date | The shop's public answer, on the same row as the review. null when there isn't one. |
review_date, ctime | The same moment as an ISO string and as a Unix timestamp. |
🧾 Reading the output
Two kinds of row share one dataset, and type is what separates them. The table view is built for reviews, so a shop summary row looks nearly blank in it. Open a shop row itself and everything is there.
| Row | How to spot it | Charged |
|---|---|---|
| A review | type is review | yes |
| The shop summary | type is shop, and it carries charged: false | no |
On a sweep of more than 500 reviews, rows arrive in batches while the run goes, so the earlier batches' coverage note says "so far" and the shop row sits before the last batch.
Notices never enter the dataset. They are written to the run's key-value store under NOTICES_AND_RUN_STATUS, along with a run_summary giving swept and delivered counts per shop. Open the Storage tab on the run to read it.
| Notice | What it means |
|---|---|
unrecognised_url | Not a Shopee shop or product address. |
shop_not_found_on_host | That id does not exist on that market. Check the host in the URL. |
shop_id_rejected | Shopee refused the id outright. |
shop_lookup_unavailable | The shop lookup did not answer. Usually worth one re-run. |
page_failed | One page of one star bucket did not come back, so that bucket stops early. The coverage note on the rows will show the shortfall. |
upstream_route_blocked | Shopee stopped answering partway. The run ends there rather than pretending it finished. |
no_input | Nothing usable in startUrls. |
💡 What people use it for
- Reading the one and two-star buckets on your own shop, which is where the operational complaints are, without wading through thousands of five-star ratings.
- Watching a competing shop's new reviews on a schedule, keyed on
cmtid. - Looking at the photos buyers posted for a product, next to the seller's own gallery.
- Splitting sentiment by variation.
model_nameoften shows one colour or size getting all the complaints. - Checking whether a shop replies to bad reviews, and how quickly.
🚧 What it does not do
- About 1,000 reviews per star rating. That is Shopee's wall, not a setting. A shop with 78,000 ratings still tops out near 5,000.
- No per-product review feed. A product URL returns its share of the shop sweep, not that product's whole history.
- The market host is required. An id from another market returns nothing, and the run tells you so in a notice rather than guessing.
- No free trial row. Every run sweeps a real shop, the example one included.
- No buyer contact details. Usernames as Shopee shows them, masked where Shopee masks them.
- No product data. No price, stock or listing detail, only what the review carries.
- No translation. A Thai review arrives in Thai.
- Counts are a snapshot taken during the run, and Shopee's declared total moves between runs.
- It is not an official Shopee tool. Dami's Studio is independent and is not affiliated with or endorsed by Shopee, or by any other company named on this page.
🧭 Which marketplace scraper do you need?
| If you want | Use |
|---|---|
| Shopee shop reviews with photos, sub-scores and seller replies | This one |
| TikTok Shop products, prices and units sold | TikTok Shop Scraper |
| Amazon product reviews with images and the verified-purchase badge | Amazon Reviews Scraper |
| Buyer reviews on 1688 listings, with the SKU bought | 1688 Reviews Scraper |
| AliExpress products with prices, ratings and order counts | AliExpress Products Scraper |
❓ Questions people ask
Do I need a Shopee account to scrape reviews?
No. Nothing to paste.
Which Shopee markets work?
All eight, as long as the host is in the URL you paste.
Why did my run come back empty?
Nine times out of ten the shop id belongs to a different market. Check NOTICES_AND_RUN_STATUS for shop_not_found_on_host.
Can I get all 78,000 ratings on a big shop?
No. Shopee stops serving past roughly 1,000 per star rating, and the coverage note on every row tells you exactly where a run stopped.
Why are so many comments empty?
Shopee lets buyers rate without writing anything, and plenty do. Use onlyWithText if those are no use to you.
Can I call it from code or connect it to an AI assistant?
Yes. The API tab has ready-made code for Python, JavaScript and the command line. For Claude, ChatGPT or another MCP client, connect https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/shopee-shop-reviews-scraper. Either way the run happens on your Apify account at the same price, and a call without startUrls sweeps the example shop.
Is scraping Shopee reviews legal?
These are public pages. Reviews are personal data under GDPR and similar laws, so have a reason for holding them and be careful about republishing. Apify's write-up on the legality of web scraping is a good starting point, and we are not lawyers.
🆘 If something breaks
Open the Issues tab on the actor page. Send the shop URL and the run ID. Read NOTICES_AND_RUN_STATUS on the run first, since it usually names the reason already.