TikTok Shop Reviews Scraper
Pricing
from $1.40 / 1,000 review collecteds
TikTok Shop Reviews Scraper
Collect public TikTok Shop reviews from product page links or bare product IDs. Filter by star rating, photos or video, and verified purchase, then review product, reviewer, purchase, and variant details in an Apify dataset.
Pricing
from $1.40 / 1,000 review collecteds
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
1
Bookmarked
1
Total users
0
Monthly active users
3 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 or bare product IDs. 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
- Collect a product's public review rows with Scrape TikTok Shop Reviews.
- Run a Product Review Scraper for one submitted product.
- Inspect star ratings and written feedback with TikTok Shop Reviews Scraper.
- Gather product review data for comparison with TikTok Product Review Scraper.
- Build a review set for a selected item with TikTok Shop Product Reviews.
🧾 TikTok Shop review rows with product context
Each saved row is one public review tied to its product. It can include the product name and link, overall rating, star distribution, matching review count, review rating, text, publication time, media links, public reviewer details, purchase signals, and purchased variant details. 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 or video 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
Add product page links or bare numeric product IDs to productTargets. Choose the storefront that matches the product pages, then choose the review order and any rating, media, 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.
Run steps
- Add one or more TikTok Shop product page links or bare numeric product 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
The required field is productTargets. The other fields are optional and use the defaults shown in the form.
Input fields
| Field | Type | What it does |
|---|---|---|
productTargets | array of strings | Required. Accepts TikTok Shop product page links or bare numeric product IDs. Add 1 to 500 target values in one run. |
storefront | string | Chooses the source storefront: US, GB, SG, MY, PH, TH, VN, ID, JP, or MX. The default is US. |
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 or videos. |
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 source-recommended order with recommended or newest-first order with newest. The default is recommended. |
Default input
This is the public input from a successful default-input run. Because reviewLimit is empty, the run returns all available reviews until the source is exhausted.
{"productTargets": ["https://shop.tiktok.com/us/pdp/riffmaster-wireless-guitar-controller-by-pdp-lightweight-design-easy-connectivity/1731043373753405773"],"storefront": "US","starRatingFilter": "any","reviewOrder": "recommended"}
🧾 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. product, rating, publishedAt, and media are required. text, some product summary values, 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 |
|---|---|---|
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.overallRating | number | Overall product rating on a 0 to 5 scale, when provided. |
product.ratingDistribution | object | Counts of the product's one-star through five-star reviews. |
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 matching the active filters, when provided. |
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 or videos attached to the review. An empty array means no media was shown. |
media[].url | URL string | Direct source link for an attached photo or video. |
media[].type | string | Media kind: image or video. |
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 the successful default-input run above. That run returned 129 rows.
{"product": {"id": "1731043373753405773","name": "PDP Riffmaster Wireless Guitar Controller with Guitar Strap, Shoulder Strap, Rechargeable Battery, Analog Stick, Home Storage Compatibility for Fortnite Festival, Rock Band 4","url": "https://shop.tiktok.com/us/pdp/riffmaster-wireless-guitar-controller-by-pdp-lightweight-design-easy-connectivity/1731043373753405773","overallRating": 4.7,"ratingDistribution": {"oneStar": 1,"twoStar": 0,"threeStar": 0,"fourStar": 34,"fiveStar": 94},"matchingReviewCount": 129},"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://p19-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/107674e902517e3894d08ea3b5007fd3~tplv-tiktokx-cropcenter:100:100.jpg?dr=9640&refresh_token=5a6f5068&x-expires=1788310800&x-signature=%2FB8ykU0yxvFuNLp7vZndBAVEWDI%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 buyer review saved for the selected product. Its price depends on the Apify pricing tier shown in the Actor settings. The public event is tied to a saved review, so this page does not assign a charge to setup, empty, or no-result work.
🔌 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
Can I submit a product URL and a bare product ID?
Yes. Add either value to productTargets, and you can mix both forms in the same run. Submit up to 500 target values.
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 matching total when the source 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, media, 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 or video 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 form supports US, GB, SG, MY, PH, TH, VN, ID, JP, and MX.
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
0.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 collect product titles, prices, seller details, variants, and demand signals before review work.
- TikTok Shop Buyer Reviews Scraper offers another way to collect buyer reviews with star, text, media, variant, and purchase details.
- TikTok Shop Reviews Scraper — full archive is useful when you need a full US review archive with reviewer, SKU, country, and purchase signals.
- TikTok Shop Reviews & Product Sentiment Analyzer adds sentiment, praise, complaint, and topic analysis to review text.
- TikTok Shop Product Reviews supports bulk TikTok Shop product review collection.
Made with ❤️ by Maxime Dupré