TikTok Shop Reviews Scraper
Pricing
from $1.40 / 1,000 review collecteds
TikTok Shop Reviews Scraper
Collect public TikTok Shop reviews by product link, product ID, search keyword, or seller page. Filter by star rating, photos, or verified purchase. Save rows in an Apify dataset with the rating, product, and any text, date, reviewer, purchase, or variant details that TikTok Shop shows.
Pricing
from $1.40 / 1,000 review collecteds
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
1
Bookmarked
43
Total users
24
Monthly active users
2 days ago
Last modified
Categories
Share
🛍️ TikTok Shop review research for product teams
For ecommerce sellers, product researchers, and developers, this Actor collects public TikTok Shop review rows from product page links, bare product IDs, a search keyword, or a seller or shop page. No TikTok account or login is needed. Each row gives the rating, review text when present, publication time, product context, media links, and public reviewer, purchase, and variant details. Use the rows to compare customer feedback, check product issues, and study reviews before a product decision.
Use cases
- Scrape TikTok Shop reviews to collect a product's public review rows.
- Collect reviews for the products that match one search keyword with TikTok Shop reviews by keyword.
- Inspect star ratings and written feedback with TikTok Shop reviews scraper.
- Gather reviews for several products to compare with TikTok product review scraper.
- Collect only reviews that include customer photos with TikTok Shop photo reviews scraper.
🧾 TikTok Shop review rows with product context
Each saved row is one public review tied to its product. It can include the review ID, product name and link, overall rating, star distribution, matching review count, review rating, text, publication time, photo links, public reviewer details, purchase signals, and purchased variant details. Price, sold count, shipping fee, and shop details appear for the US storefront when TikTok Shop provides them. Other optional values are included when TikTok Shop exposes them. A rating-only review can omit text and still has its rating.
The media array is empty when no photo was shown for the review. The Actor collects public review data only. It does not promise private or login-only reviews.
▶️ Run focused TikTok Shop review collections
Choose how the Actor finds reviews with discoveryMethod. Use productTargets for product page links or bare numeric product IDs, searchKeyword for one search keyword, or shopUrl for one seller or shop page. Choose the storefront that matches your product links or IDs, then choose the review order and any rating, photo, or verified-purchase filters. You can submit up to 500 target values in one run.
Set a review limit when you need fewer reviews for each product. Leave it empty to return all available reviews until the source is exhausted. Filters and a limit can reduce the number of reviews saved when you need a smaller collection.
Rows are saved as they are collected. If TikTok Shop is temporarily unavailable, the run keeps the rows it already saved, so you can use them or retry later.
Run steps
- Choose how to find reviews, then add TikTok Shop product page links, bare numeric product IDs, one search keyword, or one seller or shop page.
- For product links or IDs, choose a supported storefront.
- Set any review filters, order, or per-product limit.
- Start the run and open the default dataset from the output.
⚙️ Input
Choose one way to find reviews with discoveryMethod. The default is products, which uses productTargets. Fill only the field for the way you choose, and leave the other method fields empty. The other fields are optional and use the defaults shown in the form.
Input fields
| Field | Type | What it does |
|---|---|---|
discoveryMethod | string | Chooses how to find reviews: products for product page links or IDs, keyword for one TikTok Shop search keyword, or shop for one TikTok Shop seller or shop URL. The default is products. |
productTargets | array of strings | Used with products. Accepts TikTok Shop product page links or bare numeric product IDs. Add 1 to 500 target values in one run. |
searchKeyword | string | Used with keyword. Enter one TikTok Shop search keyword. The Actor finds products for it on the US storefront and collects their reviews. |
shopUrl | string | Used with shop. Enter one seller's store page link on the US storefront, such as https://shop.tiktok.com/us/store/<store-name>/<seller-id>. The Actor reads that page, finds the seller's products, and collects their reviews. |
storefront | string | Chooses the TikTok Shop region for product links or IDs: US, SG, PH, TH, VN, or ID. The default is US. Keyword searches and seller or shop URLs always use the US storefront. |
starRatingFilter | string | Uses any, one exact rating from exact-1 through exact-5, or one minimum rating from minimum-1 through minimum-5. The default is any. |
mediaOnly | boolean | When true, returns only reviews with attached photos. |
verifiedPurchaseOnly | boolean | When true, returns only reviews that TikTok marks as verified purchases. |
reviewLimit | integer | Sets the maximum number of reviews for each product. Leave it empty to return all available reviews until the source is exhausted. If set, it must be at least 1. |
reviewOrder | string | Uses recommended for source-recommended order (default), newest for newest first, highest-rated for 5-star reviews first, or lowest-rated for 1-star reviews first. |
Default input
This is the public input from the successful default-input run. It uses a 100-review limit for the product.
{"discoveryMethod": "products","productTargets": ["https://shop.tiktok.com/us/pdp/riffmaster-wireless-guitar-controller-by-pdp-lightweight-design-easy-connectivity/1731043373753405773"],"storefront": "US","starRatingFilter": "any","reviewOrder": "recommended","reviewLimit": 100}
🧾 Output
The run output contains a link to the collected review rows in the default Apify dataset.
Run output
| Field | Type | What it does |
|---|---|---|
dataset | string | Opens the collected TikTok Shop review rows. |
Each dataset row uses one review shape. reviewId, product, rating, and media are required. text, publishedAt, some product details, reviewer details, purchase signals, and variant details can be missing when the public source does not expose them.
Review row fields
| Field | Type | What it does |
|---|---|---|
reviewId | string | TikTok Shop identifier for the review. |
product | object | Product context attached to the review. |
product.id | string | TikTok Shop product identifier. |
product.name | string | Product name shown by TikTok Shop. |
product.url | URL string | TikTok Shop page for the product. |
product.price | number | Lowest variant price in US dollars. Shown only for the US storefront when TikTok Shop provides it. |
product.soldCount | integer | Units sold that TikTok Shop shows for the product. Shown only for the US storefront when TikTok Shop provides it. |
product.shippingFee | number | Shipping fee in US dollars that TikTok Shop shows for the product. Shown only for the US storefront when TikTok Shop provides it. |
product.overallRating | number | Overall product rating on a 0 to 5 scale, when provided. |
product.ratingDistribution | object | Review counts for each star rating for the product. |
product.ratingDistribution.oneStar | integer | Number of one-star reviews. |
product.ratingDistribution.twoStar | integer | Number of two-star reviews. |
product.ratingDistribution.threeStar | integer | Number of three-star reviews. |
product.ratingDistribution.fourStar | integer | Number of four-star reviews. |
product.ratingDistribution.fiveStar | integer | Number of five-star reviews. |
product.matchingReviewCount | integer | Number of product reviews that match the active filters, when TikTok Shop provides it. |
product.shop | object | Shop that sells the product. Shown only for the US storefront when TikTok Shop provides it. |
product.shop.id | string | Shop identifier shown by TikTok Shop. |
product.shop.name | string | Shop name shown by TikTok Shop. |
product.shop.url | URL string | TikTok Shop page for the shop. |
product.shop.rating | number | Overall shop rating shown by TikTok Shop. |
product.shop.followerCount | integer | Number of shop followers shown by TikTok Shop. |
rating | integer | Review star rating from 1 to 5. |
text | string | Written review text when the reviewer added text. It can be omitted for a rating-only review. |
publishedAt | ISO 8601 date-time string | Time when the review was published, with a time zone. |
media | array of objects | Photos attached to the review. An empty array means no photo was shown. |
media[].url | URL string | Direct source link for an attached photo. |
media[].type | string | Media kind. The value is image. |
reviewer | object | Public reviewer details when available. |
reviewer.name | string | Reviewer name shown by TikTok Shop. |
reviewer.accountId | string | Public reviewer account identifier shown by TikTok Shop. |
reviewer.avatarUrl | URL string | Direct link to the reviewer's public avatar. |
reviewer.country | string | Reviewer country shown by TikTok Shop. |
purchase | object | Purchase signals shown with the review when available. |
purchase.isVerifiedPurchase | boolean | Whether TikTok marks the review as a verified purchase. |
purchase.isIncentivized | boolean | Whether TikTok marks the review as incentivized. |
variant | object | Purchased SKU or variant details when available. |
variant.sku | string | Purchased SKU shown by TikTok Shop. |
variant.name | string | Purchased variant name. |
variant.attributes | object of strings | Option values that define the purchased variant, such as platform, size, or color. |
variant.attributes.<option> | string | Value for one variant option. The option name comes from the source. |
Example review row
This complete row is from a successful run for the default input above. That run returned 100 rows.
{"reviewId": "7646261979922056974","product": {"id": "1731043373753405773","name": "PDP Riffmaster Wireless Guitar Controller - Collapsible, Low Latency, 30-Foot Low Latency Wireless Connection, Audio Controls, 3.5mm Audio Jack, Guitar Strap, Rechargeable Battery, Analog Stick, Home Storage Compatible for Fortnite Festival, Rock Band 4","url": "https://shop.tiktok.com/us/pdp/riffmaster-wireless-guitar-controller-by-pdp-lightweight-design-easy-connectivity/1731043373753405773","price": 194.99,"soldCount": 94,"shippingFee": 0,"shop": {"id": "7496094614759442765","name": "Turtle Beach Gaming","url": "https://shop.tiktok.com/us/store/turtle-beach-gaming/7496094614759442765","rating": 4.5,"followerCount": 693608},"overallRating": 4.7,"ratingDistribution": {"oneStar": 2,"twoStar": 0,"threeStar": 1,"fourStar": 37,"fiveStar": 108},"matchingReviewCount": 148},"rating": 1,"publishedAt": "2026-06-01T03:21:56.027Z","media": [{"url": "https://p16-oec-general-useast5.ttcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/fac5bbca79bd4a7fb29bea64938f597d~tplv-fhlh96nyum-crop-webp:300:300.webp?dr=12190&t=555f072d&ps=933b5bde&shp=8dbd94bf&shcp=607f11de&idc=useast5&from=2378011839","type": "image"}],"text": "Literally not what I ordered. Now I gotta return it back, get a refund, and try and purchase the guitar again HOPING they get it right this time smh.","reviewer": {"name": "U**J","accountId": "6873921462563701766","avatarUrl": "https://p16-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/107674e902517e3894d08ea3b5007fd3~tplv-tiktokx-cropcenter:100:100.jpg?dr=9640&refresh_token=61d1c997&x-expires=1792584000&x-signature=dPk62NCPSDa4ZvepqNhS66f8F8o%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=5f8d3399&idc=useast5","country": "US"},"purchase": {"isVerifiedPurchase": true,"isIncentivized": false},"variant": {"sku": "1731043397250683213","name": "PlayStation","attributes": {"Platform": "PlayStation"}}}
💳 Pricing
Billing event
The review-collected event covers one review saved to your dataset. Its price depends on the Apify pricing tier shown in the Actor settings. A run that saves no review has no review-collected charge.
🔌 Integrations
Use the default dataset link in the run output, download the collected data from Apify, or read it through the Apify API.
Learn more about using Actors with integrations:
❓ FAQ
What happens if TikTok Shop is temporarily unavailable?
The run keeps the rows it already saved. Use those rows when they help, then retry later if you need more reviews.
Can I submit a product URL and a bare product ID?
Yes. Keep discoveryMethod on products, add either value to productTargets, and you can mix both forms in the same run. Submit up to 500 target values.
Can I search by keyword instead of product links?
Yes. Set discoveryMethod to keyword, then enter one TikTok Shop search keyword in searchKeyword. The Actor finds products for that keyword on the US storefront and collects their reviews. Each run takes one keyword, so run separate searches for other keywords.
What happens when I leave the review limit empty?
The Actor returns all available matching reviews until the source is exhausted. A smaller count can mean that the public matching pool is smaller or that active filters found fewer reviews. product.matchingReviewCount shows the number of reviews that match the active filters, when TikTok Shop provides it.
Can I collect one exact rating or a minimum rating?
Yes. Choose one exact star rating or a minimum star rating in starRatingFilter. Use any when you want all ratings.
Can I combine rating, photo, and verified-purchase filters?
Yes. You can use the star rating choice together with mediaOnly and verifiedPurchaseOnly. The saved rows meet the active filter choices.
Why is text missing from some reviews?
TikTok Shop can show a star rating without written text. Those rating-only reviews keep their rating, while text can be omitted.
What does an empty media array mean?
It means that no photo was shown with that review.
What if reviewer, purchase, or variant details are missing?
Those objects and their fields are optional. They appear when TikTok Shop exposes the public details, and private account data is not collected.
Which storefront should I choose?
Choose the storefront that matches the product page and the market you want to read. The Actor supports only US, SG, PH, TH, VN, and ID. Keyword searches and seller or shop URLs always use the US storefront.
How do I read the collected data after a run?
Open the dataset link in the run output. You can also use the Apify API to read the dataset items.
📝 Changelog
v1.1 (19-10-2026)
- For product link or ID runs, adds the shop name to the product details on the US storefront when TikTok Shop provides it.
- Fixes repeated reviews and repeated charges when a timed-out run is resumed. Reviews saved earlier are skipped.
- In a resumed run, reviews saved earlier count toward each product's review limit.
- Saves a review once when more than one product in the same run shows it.
- For non-US storefronts, a product that is not available there now stops at once with a warning instead of being retried.
- Warnings name each product by its ID instead of a cut-off link.
- Fixes the product link for Indonesia products so it points to the TikTok Shop product page.
- For one-product runs, the review total in the log stops at your review limit.
- Runs that reach their charge limit now log that they are stopping and return the results collected so far.
v1.0 (17-10-2026)
- Breaking change: storefront choices are now
US,SG,PH,TH,VN, andID.GB,MY,JP, andMXare removed. If a product link or ID run still uses one of them, it returns no reviews. - Breaking change: when
mediaOnlyis on, reviews with only videos are left out. Themediafield now lists photo links only. Video links are no longer returned. - Search for products by one keyword with
discoveryMethodset tokeyword. Keyword searches use the US storefront. - Collect reviews from one seller or shop page with
discoveryMethodset toshop. Seller and shop pages use the US storefront. - Sort each product's reviews by highest rated first or lowest rated first.
- Adds a review ID to each row.
- Adds product price, sold count, shipping fee, and shop details for the US storefront when TikTok Shop provides them.
- Fixes progress log lines for one-product runs. The log shows the review total when TikTok Shop reports it. Runs with
mediaOnlyorverifiedPurchaseOnlyturned on show no total. - Reliability improvements.
v0.1 (03-09-2026)
- Applies minimum star rating filters to the review request.
- Keeps reviews collected before a temporary TikTok Shop access problem and reports the interruption.
- Supports the current TikTok Shop product pages for supported storefronts.
v0.0
- Initial release.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Related Actors
- TikTok Shop Scraper No Cookies helps you check product prices, seller details, variants, and demand signals before choosing reviews to collect.
- TikTok Trending Products helps you find ranked US products and public demand signals before selecting products for review research.
- TikTok Shop Reviews Scraper helps when you want a second set of reviews for the same product, with reviewer country and the product's full star-rating breakdown.
- TikTok Shop Review Scraper - All 16 Marketplaces helps when you need TikTok Shop reviews from more markets than the six storefronts this Actor supports.
- TikTok Shop Reviews Scraper — full archive helps when you need a full US review archive with reviewer, SKU, country, and purchase fields.
Made with ❤️ by Maxime Dupré