Request a tool
All toolsAutomationsGuidesMCP serverRequest a toolPlatformsCategories
1688 Reviews Scraper icon

1688 Reviews Scraper

Scrape 1688.com product reviews: star ratings, text, buyer photos, the SKU bought and order quantity. No account. $2.00 per 1,000 reviews.

614 runs on Apify $0.002 per review ($2 / 1,000)
Run this in the cloudRun on Apify →

Developer & Research Tools

How it works

  1. 1
    Open it on Apify

    Hit Run on Apify — it opens the tool in the cloud, no install.

  2. 2
    Set the inputs

    Adjust productUrls, maxReviewsPerProduct, reviewFilter (sensible defaults are pre-filled).

  3. 3
    Click Run

    The tool runs on Apify’s cloud and collects the data for you.

  4. 4
    Export the results

    Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.

Pricing

$0.002 per review = $2 per 1,000

You are charged forWhenPrice
ReviewOne buyer review returned. Sample rows, diagnostics and failed lookups are never charged.$0.002

Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-08-09, and they are what you are actually charged.

Inputs

FieldWhat it doesType
productUrlsOne per line. A product URL such as https://detail.1688.com/offer/927875250705.html, a bare product ID such as 927875250705, or a 1688 review page URL (which already carries the seller login id, saving one lookup).array
maxReviewsPerProductHard cap per product (1-4000). 1688 serves ten reviews per request, so 100 reviews is ten requests. You are charged per review returned.integer
reviewFilter1688's own review tabs. Most 1688 reviews are auto-posted five-star defaults from buyers who never wrote anything, "Written text only" is usually what you actually want.string
requestDelayMs1688 rate-limits heavily. Raise this if a run stops early with a BLOCKED row.integer

What you get

A structured dataset — each result includes fields like:

ratingreviewTextisTemplateTextisAutoReviewpublishedAtimageCountquantityunitskuSpecbuyerNickbuyerLevelproductIdproductUrlreviewId

Export every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.

1 ready-to-run use cases

1688 Product Reviews With Photos

Get 1688 product reviews that include buyer photos: text, rating, date and image links. No account needed.

Related tools in Developer & Research Tools

Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.

GitHub Scraper iconDeveloper & Research Tools

GitHub Scraper

Search GitHub repos and users: stars, forks, language, topics, licence, plus user bio, company and followers. No token needed. $0.90 per 1,000 rows.

18 use cases

Stack Overflow / Stack Exchange Scraper iconDeveloper & Research Tools

Stack Overflow / Stack Exchange Scraper

Search Stack Overflow and Stack Exchange by keyword or tag. Score, answer count, views, reputation and body text. $2 per 1,000 questions.

2 use cases

Package Registry Scraper (npm + PyPI) iconDeveloper & Research Tools

Package Registry Scraper (npm + PyPI)

Get npm and PyPI package metadata as JSON. Version, license, author, repo, keywords and npm monthly downloads. $2 per 1,000 packages.

2 use cases

arXiv Scraper iconDeveloper & Research Tools

arXiv Scraper

Search arXiv papers by title, author, abstract or category. Get full abstracts, authors, categories, DOI, dates and PDF links. $2 per 1,000 papers.

2 use cases

OpenAlex Scholarly Works Scraper iconDeveloper & Research Tools

OpenAlex Scholarly Works Scraper

Search 250M+ OpenAlex papers with no API key. Get titles, authors, venue, year, citations, DOI, OA links and full abstracts. $2.00 per 1,000 papers.

2 use cases

Crossref Scholarly Works Scraper iconDeveloper & Research Tools

Crossref Scholarly Works Scraper

Search 150M+ papers on Crossref: DOI, title, authors, journal, publisher, date, citations and abstract. No API key. $1.00 per 1,000 works.

2 use cases

See all Developer & Research Tools →

1688 Reviews Scraper: buyer reviews, ratings, photos and the SKU that was bought

Send 1688.com product links or bare product ids and every review comes back as a row: star rating, the review text in Chinese, buyer photos, the SKU the buyer actually ordered, how many units they took, their nickname and level, and the date. No account, no cookies, nothing to install.

Read this before you budget anything. Most 1688 reviews are auto-posted five-star defaults from buyers who never wrote a word. The row further down is from a real product with 2,528 reviews, of which 57 carry any text and 2,471 were auto-posted. Photos are rarer still, about 3.3% of reviews. So if you are after opinions rather than counts, set Which reviews to written text only and expect a far smaller number than the review total suggests.

Input1688 product URLs or bare product ids
OutputOne row per review
Ceiling4,000 reviews per product
Account neededNone, and nothing to install
Price$2.00 per 1,000 reviews, flat on every plan

⭐ What 1688 Reviews Scraper does

You give it products, it works out which seller each one belongs to, then reads the review pages in the order 1688 serves them. 1688 hands out ten reviews per request, so 100 reviews is ten requests and that is what the depth costs you in time.

The filter is 1688's own set of review tabs, not something applied afterwards: everything, written text only, with 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.

Two flags on every row let you sort it out yourself if you took everything: isAutoReview marks 1688's own timeout default, and isTemplateText marks reviews whose text matches a known boilerplate phrase rather than being written by the buyer.

Seller ids get cached in a key-value store named 1688-seller-logins on your own account, so re-running the same products later skips that lookup.

📥 What you give it

{
  "productUrls": [
    "https://detail.1688.com/offer/927875250705.html",
    "927875250705"
  ],
  "maxReviewsPerProduct": 100,
  "reviewFilter": "withText"
}
FieldDefaultWhat it is
productUrlsbox starts at one example productOne 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.
maxReviewsPerProductbox starts at 100Hard cap per product, 1 to 4,000.
reviewFilterbox starts at all1688's own tabs: all, withText, withPhotos, positive, neutral, negative.
requestDelayMsbox starts at 800Under Advanced. Milliseconds between requests. 1688 rate-limits heavily, so raise this if a run stops early with a BLOCKED row.
proxyConfigurationleave it aloneOptional. Only if you want the run to go out through a particular network of your own.

Duplicate products in your list are collapsed before anything is fetched.

📤 What you get back

A real row from a recent run, 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"
}
FieldWhat it is
reviewTextExactly what the buyer wrote, in Chinese. Nothing is translated.
isAutoReview1688's own timeout default, posted when a buyer never rated the order.
isTemplateTextThe text is empty, or matches a known boilerplate phrase. Worth filtering on if you asked for written reviews only.
quantity, unitHow many units the buyer actually ordered, and the unit 1688 counts in.
skuSpec, skuSpecsThe variant that was bought, as a readable line and as structured objects.
buyerNickMasked by 1688, as in 匿名购买. There is no way to a real identity here.
publishedAt, createdAtBeijing wall-clock times converted to ISO, so they are directly comparable.
productTotalReviews, productReviewsWithText, productAutoReviewCountThe product-level counts, repeated on every row. This is how you see the text-versus-auto split before deciding how deep to go.
productStarGradenull when 1688's rating summary could not be read for that product.
page, positionWhere the review sat in the feed when it was read.

🧾 Reading the output

RowHow to spot itBilled
A reviewIt has a reviewIdyes
The sample row_sample: trueno
A diagnosticIt carries an errorCodeno

There is no charged field on these rows. Filter on reviewId being present.

CodeWhat it means
NO_REVIEWSNothing came back for that product. If you used a narrow filter, try all before concluding the product has none.
BAD_INPUTNot a 1688 product link or id.
SELLER_LOOKUP_FAILEDThe 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_SELLERA seller id was supplied in a review-page link and 1688 rejected it.
FETCH_FAILED1688 rejected the request for that product's reviews.
BLOCKEDTwo lookups in a row failed, so the rest of the products were skipped rather than burned through. Raise requestDelayMs and run again.
PROXY_GROUP_IGNOREDPart of the advanced network settings you sent could not be used as given, so the run adjusted them and carried on.

▶️ How to run it

1. Open 1688 Reviews Scraper and click Try for free. 2. Paste product links or ids into 1688 product URLs or IDs, one per line. 3. Set Which reviews. Pick Written text only unless you specifically want the auto-posted defaults counted. 4. Set Maximum reviews per product. Start at 20 to see what the rows look like. 5. Click Start, then download the dataset as JSON, CSV or Excel, or read it from the Apify API.

💰 How much does it cost?

$2.00 per 1,000 reviews. Flat on every Apify plan, with no volume tiers.

One billed row per review delivered. The sample row is not billed, diagnostic rows are not billed, a product with no reviews produces no billed rows, and a review 1688 repeats across pages is dropped before the dataset.

The filter is the cost control here. Asking for all reviews on a product like the one above means paying for 2,471 auto-posted defaults to reach 57 written ones.

💡 What people use it for

  • Checking a supplier before ordering, by reading the written reviews rather than the star average

that the auto-posted defaults inflate.

  • Seeing which SKU buyers actually order, from skuSpec and quantity, which tells you the real

volumes moving rather than the minimum on the listing.

  • Collecting buyer photos for products you are sourcing, where imageCount is above zero.
  • Comparing the text-to-auto ratio across several suppliers as a rough honesty signal.
  • Feeding Chinese review text into a translation or sentiment step of your own.

🚧 What it does not do

  • No keyword search. Products go in by link or id. There is no way to ask for "phone cases".
  • No product details. No price, no MOQ, no supplier profile. The wholesale scraper below covers

those.

  • Most reviews are empty. Auto-posted defaults dominate, so the headline review count is not a

count of opinions.

  • Photos are rare, around 3.3% of reviews in measurement.
  • Nothing is translated. Text, SKU specs and units all stay in Chinese.
  • Buyer names are masked by 1688 and cannot be resolved to a person.
  • Only what the public review page serves. Reviews hidden behind a sign-in are not reachable.
  • A big run can come back short. 1688 rate-limits heavily, and a refusal becomes an uncharged

diagnostic row rather than a gap passed off as complete. Only delivered review rows are billed.

🧭 Which 1688 scraper do you need?

If you wantUse
Reviews for products you can linkThis one
Products, unit prices, MOQ and the quantity ladder1688 Wholesale Scraper
A supplier's ratings and trade credentials1688 Supplier Ratings Scraper
Export suppliers and MOQ on Alibaba.comAlibaba.com Scraper
Retail products on Taobao insteadTaobao Category Products Scraper

❓ Questions people ask

Why did a product with 2,000 reviews give me 40 rows? Because you filtered to written text and most of that product's reviews were auto-posted. The product-level counts on every row show the split.

Can I search for products? No. This takes links and ids. Use the wholesale scraper to find products, then feed their ids in here.

What is a review-page URL and why would I use one? It is the 1688 link that already carries the seller id, which saves this a lookup per product. Either form works.

My run stopped with BLOCKED. 1688 was rate-limiting. Raise Delay between requests under Advanced and run the remaining products again.

Can I schedule it? Yes. reviewId is stable, so diffing runs shows what is new.

Is this legal? These are public reviews. They are written by real people, so GDPR and similar laws may apply to what you do with them. Apify's write-up on scraping and the law 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.