1688 Reviews Scraper - Ratings, Photos & SKUs
Pricing
from $1.94 / 1,000 reviews
1688 Reviews Scraper - Ratings, Photos & SKUs
Scrape buyer reviews from 1688.com products by link or id. Each row has the star rating, review text, buyer photos, the SKU and quantity bought, buyer level and date, plus flags for 1688's auto-posted five-star defaults. No account needed. $2.00 per 1,000 reviews.
Pricing
from $1.94 / 1,000 reviews
Rating
0.0
(0)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
28
Total users
15
Monthly active users
2 hours ago
Last modified
Categories
Share
Paste 1688.com product links or ids and get the buyer reviews as rows: the star rating, the review text in Chinese, buyer photos, the SKU and quantity the buyer actually ordered, their nickname and level, and the date. No account, no cookies.
Read this before you budget anything. Most 1688 reviews are auto-posted five-star defaults from buyers who never wrote a word. The product in the row further down has 2,528 reviews, and 57 of them carry any text. Photos are rarer still, about 3.3% of reviews. If you want opinions rather than counts, set Which reviews to written text only and expect far fewer rows than the review total suggests. And on many newer listings 1688's review page shows nothing to a visitor who is not signed in, so those bring only the featured reviews their product page shows, usually two.
| Input | 1688 product links, bare product ids, or review-page links |
| Output | One row per review: rating, text, photos, the SKU and quantity bought, buyer level, date, and the product's review counts |
| Ceiling | 4,000 reviews per product |
| Account needed | None |
| Price | $2.00 per 1,000 reviews on the free plan, down to $1.94 on Business. The free plan's $5 a month covers about 2,500 |
🔍 What 1688 Reviews Scraper does
You give it products. It works out which seller each one belongs to, then reads the reviews in the order 1688 serves them, ten at a time. So 100 reviews means ten pages, and a deeper cap costs you time as well as money.
The filter is 1688's own set of review tabs, not something applied afterwards: everything, written text only, photos only, or positive, neutral and negative. Picking the right tab is the difference between paying for 2,471 empty five-star defaults and paying for the 57 that say something.
If you took everything anyway, two flags let you sort it out yourself. isAutoReview marks 1688's
own timeout default, and isTemplateText marks text that matches a known boilerplate phrase rather
than anything the buyer wrote.
Seller ids are kept in a key-value store named 1688-seller-logins on your own Apify account, so
running the same products again later skips that step. Duplicate products in your list are collapsed
before anything is read.
📋 What data you get from each 1688 review
| What you get | Field |
|---|---|
| Review id, product id and product link | reviewId, productId, productUrl |
| Star rating and the review text, in Chinese | rating, reviewText |
| Whether 1688 auto-posted it, or the text is boilerplate | isAutoReview, isTemplateText |
| Buyer photos | images, imageCount |
| What was bought: quantity, unit and the SKU | quantity, unit, skuSpec, skuSpecs |
| The buyer: masked nickname, level, repeat-customer flag, rating history, avatar | buyerNick, buyerLevel, isAnonymous, isRepeatCustomer, buyerOrdersRated, buyerGoodRatings, buyerAvatarUrl |
| The seller | sellerNick, sellerLoginId |
| The product's review totals and good-rate, repeated on every row | productTotalReviews, productReviewsWithText, productAutoReviewCount, productGoodRatePercent, productStarGrade |
| Dates | publishedAt, createdAt, scrapedAt |
| Which tab you asked for, and where the review sat in it | reviewFilter, page, position |
| A featured review from the product page, on listings whose review list is not public | isFeatured |
▶️ How to scrape 1688 reviews
- Open 1688 Reviews Scraper and click Try for free.
- Paste product links or ids into 1688 product URLs or IDs, one per line.
- Set Which reviews. Pick Written text only unless you want the auto-posted defaults counted.
- Set Maximum reviews per product. 20 is enough to see what the rows look like.
- Click Start, then download the dataset as JSON, CSV or Excel.
Start it with the list empty and you get one labelled sample row, which is not charged.
💰 How much does it cost to scrape 1688 reviews?
$2.00 per 1,000 reviews. That is the free plan's price; paid plans pay a little less: $1.98 on Starter, $1.96 on Scale and $1.94 on Business. On the free plan, the $5 Apify gives you each month covers about 2,500 reviews.
You pay per review delivered. The sample row, every diagnostic row and a product with no reviews cost nothing, and a review 1688 repeats across pages is dropped before it reaches your dataset.
The filter is the real cost control. Asking for all reviews on the product below means paying for 2,471 auto-posted defaults to reach 57 written ones.
📥 What you give it
{"productUrls": ["https://detail.1688.com/offer/927875250705.html","927875250705"],"maxReviewsPerProduct": 100,"reviewFilter": "withText"}
| Field | Default | What it is |
|---|---|---|
productUrls | none | One per line: a product link, a bare product id, or a 1688 review-page link, which already carries the seller id and saves a lookup. |
maxReviewsPerProduct | 100 | Hard cap per product, 1 to 4,000. You pay per review returned, so this is your spend cap. |
reviewFilter | all | 1688's own tabs: all, withText, withPhotos, positive, neutral, negative. |
requestDelayMs | 800 | Under Advanced. Milliseconds between requests, up to 60,000. Raise it if a run stops early. |
proxyConfiguration | none | Optional. Leave it alone unless you want the run to go out through a network of your own. |
📤 What you get back
A real row from a run on 21 September 2026, with the photo link trimmed:
{"reviewId": "40602863345","productId": "927875250705","productUrl": "https://detail.1688.com/offer/927875250705.html","rating": 5,"reviewText": "苹果18手机壳的样品麻烦了,品质对得起这个三丰中高端工厂,我是做亚马逊跨境平台,不错!适合长久合作","isAutoReview": false,"isTemplateText": false,"publishedAt": "2026-08-20T06:40:02.000Z","createdAt": "2026-08-20T06:40:02.000Z","images": ["https://img.alicdn.com/imgextra/i2/O1CN013k4nysKaMGD2BxV2_!!...-rate.jpg"],"imageCount": 1,"quantity": 30,"unit": "个","skuSpec": "颜色: 黑色, 适用型号: iPhone17","skuSpecs": [{ "颜色": "黑色", "适用型号": "iPhone17" }],"buyerNick": "匿名购买","buyerLevel": "L4","isAnonymous": true,"isRepeatCustomer": false,"buyerOrdersRated": 0,"buyerGoodRatings": 0,"buyerAvatarUrl": "https://cbu01.alicdn.com/img/ibank/2020/428/378/22185873824_536529798.jpg","sellerNick": "f**6","sellerLoginId": "fssf06","productTotalReviews": 2528,"productReviewsWithText": 57,"productAutoReviewCount": 2471,"productGoodRatePercent": 99.9,"productStarGrade": 5,"reviewFilter": "all","page": 1,"position": 1,"scrapedAt": "2026-09-21T13:01:33.693Z"}
| Field | How to read it |
|---|---|
reviewText | Exactly what the buyer wrote, in Chinese. Nothing is translated. |
isAutoReview | 1688's own timeout default, posted when a buyer never rated the order. |
isTemplateText | The text is empty, or matches a known boilerplate phrase. Worth filtering on even when you asked for written reviews. |
quantity, unit | How many units the buyer ordered, and the unit 1688 counts in. |
skuSpec, skuSpecs | The variant that was bought, as a readable line and as structured objects. |
buyerNick | Masked by 1688, as in 匿名购买. There is no way back to a real identity. |
publishedAt, createdAt | Beijing wall-clock times converted to ISO, so they compare directly. |
productTotalReviews, productReviewsWithText, productAutoReviewCount | The product-level counts, repeated on every row. This is where you see the written-versus-auto split before deciding how deep to go. |
productStarGrade | null when 1688's rating summary could not be read for that product. |
isFeatured | true on a review taken from the product page's own review box. Those have no star rating, buyer level or buyer history, so rating and the buyer fields are null. |
🧾 Reading the output
| Row | How to spot it | Billed |
|---|---|---|
| A review | It has a reviewId and no _sample or _diagnostic key | yes |
| The sample row | _sample: true, only when nothing in your input could be used | no |
| A diagnostic | _diagnostic: true, ok: false and an errorCode | no |
Review rows carry no charged flag; the sample and diagnostic rows carry charged: false. The
sample row has a reviewId too, so to keep only reviews, drop every row with _sample or
_diagnostic.
| Code | What it means |
|---|---|
NO_REVIEWS | Nothing came back for that product. If you used a narrow filter, try all before deciding the product has none. |
BAD_INPUT | Not a 1688 product link or id. |
SELLER_LOOKUP_FAILED | The seller behind that product could not be worked out. The row still tells you whether the product exists and whether it has reviews waiting. |
BAD_SELLER | A review-page link carried a seller id that 1688 does not recognise. |
REVIEWS_NOT_PUBLIC | 1688's review page lists none of this product's reviews to a visitor who is not signed in, as on many newer listings. The featured reviews the product page shows come just before it, marked isFeatured, and the row gives the page's review count. |
FETCH_FAILED | The reviews for that product could not be read this run. Try that product again later. |
BLOCKED | Two seller lookups failed in a row, so the run stopped there instead of grinding through the rest. Run the remaining products again later. |
PROXY_GROUP_IGNORED | Part of the network settings you sent could not be used as given, so the run adjusted them and carried on. |
💡 What people use it for
- Checking a supplier before ordering, by reading the written reviews instead of a star average the auto-posted defaults inflate.
- Seeing which variant buyers really order and in what volume, from
skuSpecandquantity, rather than the minimum printed on the listing. - Collecting buyer photos of a product you are sourcing: keep the rows where
imageCountis above zero. - Comparing the written-to-auto ratio across several suppliers as a rough honesty check.
From a search term to the reviews worth reading, in three runs:
- Run 1688 Wholesale Scraper on a term in
Chinese and copy the
offerIdof the offers you like. - Paste those ids here into 1688 product URLs or IDs, with
reviewFilterset towithText. - For the sellers whose reviews hold up, put the
supplierNamefrom step 1 into 1688 Supplier Ratings Scraper and read their five sub-scores.
🚧 What it does not do
- No keyword search. Products go in by link or id. There is no way to ask for "phone cases" here.
- No product details. No price, no MOQ, no supplier profile. The wholesale scraper covers those.
- Most reviews are empty. Auto-posted defaults dominate, so the headline review count is not a count of opinions.
- Photos are rare, about 3.3% of reviews when measured.
- Nothing is translated. Text, SKU specs and units all stay in Chinese.
- Buyer names are masked by 1688 and cannot be tied to a person.
- Only what the public review page serves. On many newer listings that page lists no reviews to
a visitor who is not signed in, and this actor never signs in. Those products bring only the
featured reviews the product page shows, with no star rating, plus a free
REVIEWS_NOT_PUBLICrow. - A big run can come back short. When 1688 slows the reads down, the run writes an uncharged diagnostic row instead of passing a gap off as complete. You pay only for reviews delivered.
- It is not an official 1688 tool. Dami's Studio is independent and is not affiliated with or endorsed by 1688 or Alibaba, or by any other company named on this page.
🧭 Which 1688 scraper do you need?
| If you want | Use |
|---|---|
| Buyer reviews on 1688 products you can link | This one |
| 1688 offers by search term: unit price, MOQ and the quantity price ladder | 1688 Wholesale Scraper |
| A 1688 seller's rating, five sub-scores and audits | 1688 Supplier Ratings Scraper |
| Export products, MOQ and suppliers on Alibaba.com | Alibaba.com Scraper |
| Retail products in a Taobao category | Taobao Category Products Scraper |
❓ Questions people ask
Do I need a 1688 account to scrape reviews?
No. Nothing to register and no cookies to paste.
Why did a product with 2,000 reviews give me 40 rows?
Because you asked for written text and most of that product's reviews were auto-posted.
productReviewsWithText and productAutoReviewCount on every row show the split.
Can I search 1688 for products with this?
No. It takes links and ids. Find products with the wholesale scraper first, then feed their
offerId in here.
Why did my run stop with a BLOCKED row?
Two seller lookups failed in a row, so the run stopped there. Run the remaining products again later.
Can I track new reviews over time?
Yes. reviewId is stable, so comparing two runs of the same products shows what is new.
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/1688-reviews-scraper. Either way the
run happens on your Apify account at the same price.
Is scraping 1688 reviews legal?
These are public reviews, but they are written by real people, so GDPR and similar laws may cover what you do with them. 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 product link or id and the run ID; the
errorCode on the diagnostic row usually names the problem on its own.