TikTok Shop Reviews Scraper
Extract the buyer reviews of US TikTok Shop products without logging in: star rating, review text, photos, variant bought, verified purchase flag, review date and reviewer, plus the product's rating breakdown. Sort and filter like the product page.
What it extracts
Every field below comes from the Actor’s published dataset schema.
| Field | Description | Type |
|---|---|---|
productName | Product | text |
rating | Stars | number |
reviewText | Review | text |
reviewImages | Photos | array |
variant | Variant | text |
reviewedAt | Reviewed | date |
isVerifiedPurchase | Verified purchase | boolean |
reviewerName | Reviewer | text |
reviewCountry | Country | text |
productRating | Product rating | number |
productReviewCount | Product reviews | number |
productUrl | Product URL | link |
Input parameters
Generated from the Actor’s input schema — the same fields the Apify console shows.
| Parameter | Type | Required | Description |
|---|---|---|---|
startUrls | array | Required | US TikTok Shop products whose reviews to scrape. Paste a product URL such as https://shop.tiktok.com/us/pdp/sweatpants-mens-regular-fit-casual-drawstring-waist-with-pockets/1729643276986913447, a www.tiktok.com/shop/pdp/… or www.tiktok.com/view/product/… link, or a bare product id. One entry per product, and as many products as you like. |
maxItems | integer | Optional | Maximum number of reviews to scrape from each product (start URL). |
sortBy | string | Optional | The order TikTok Shop lists the reviews in: Recommended (the product page's default) or Newest first. |
reviewFilter | string | Optional | Which reviews to scrape, matching the filters on the product page: all reviews, one star rating, only reviews with photos or videos, or only verified purchases. |
proxyConfiguration | object | Optional | TikTok Shop shows US product pages to US IP addresses only, so US residential proxies are used by default. When an Apify proxy has no country set, the US is used. |
API access
Run this Actor from your own code over the Apify API.
{
"startUrls": [
"https://shop.tiktok.com/us/pdp/sweatpants-mens-regular-fit-casual-drawstring-waist-with-pockets/1729643276986913447"
]
}curl -X POST \
"https://api.apify.com/v2/acts/logical_scrapers~tiktok-shop-reviews-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"startUrls":["https://shop.tiktok.com/us/pdp/sweatpants-mens-regular-fit-casual-drawstring-waist-with-pockets/1729643276986913447"]}'import { ApifyClient } from 'apify-client'
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' })
const run = await client.actor('logical_scrapers~tiktok-shop-reviews-scraper').call({
"startUrls": [
"https://shop.tiktok.com/us/pdp/sweatpants-mens-regular-fit-casual-drawstring-waist-with-pockets/1729643276986913447"
]
})
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("logical_scrapers~tiktok-shop-reviews-scraper").call(run_input={
"startUrls": [
"https://shop.tiktok.com/us/pdp/sweatpants-mens-regular-fit-casual-drawstring-waist-with-pockets/1729643276986913447",
],
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)Runs are executed on Apify. Create an API token in your Apify account, then call the Actor over REST or with the official client for your language. The same input object works in the Apify console, so you can test interactively before automating.
Pricing
Data not currently verified. This Actor's pricing model is not declared in our source repository.
Current rates are published on the Apify listing and can change, so they are not duplicated here. See pricing on Apify
Reliability
Measured across all public Goldmine Actors on Apify, 2026-11-04. This is an account-level figure, not a per-Actor benchmark — per-Actor speed and completeness benchmarks are not yet published. Source.