TikTok Shop Scraper & Analytics | 20$/mo
Pricing
$20.00/month + usage
TikTok Shop Scraper & Analytics | 20$/mo
All-in-one TikTok Shop scraper: search products by keyword, browse categories, get full product details with variants & reviews, seller info, and creator analytics (GMV, sales, engagement). Fast
Pricing
$20.00/month + usage
Rating
0.0
(0)
Developer
Raven
Actor stats
1
Bookmarked
36
Total users
21
Monthly active users
0.026 hours
Issues response
a day ago
Last modified
Categories
Share
TikTok Shop Scraper — Extract Products, Reviews, Stores, and Creator Profiles
Scrape TikTok Shop product listings, detailed product pages, customer reviews, store analytics with GMV estimation, category pages, and creator profiles — all from one Actor. Six scrape modes, each with its own dedicated input section. Get pricing, variants, seller scores, ratings breakdown, and sales volume data.
Pricing
| Plan | Price | Best For | Link |
|---|---|---|---|
| Pay per result | $2 / 1,000 results | One-time research, small batches | TikTok Shop Scraper Usage |
| Monthly subscription | $20 / month | Regular monitoring, unlimited usage | TikTok Shop Scraper |
Both plans have identical functionality — choose the one that fits your workflow.
Key Features
- Six scrape modes — Search, Product, Reviews, Category, Store, Creator — each with its own dedicated input section in the UI
- Product search — pagination via SSR
&page=N(bypasses the captcha-gatedbrandy_desktopsearch API), sorted by relevance, best sellers, or price - Full product details — variants, pricing, images, videos, specs, brand info, shipping, and complete seller data
- Customer reviews extractor — one review per dataset row, each linked back to its product (
productId,productUrl,productName); paginated with star rating / verified purchase / media filters - Store analytics with GMV — store info as one record, every store product as its own record; follower count, ratings, sub-scores, and estimated gross merchandise value
- Category scraper — full pagination via TikTok's
homepage_desktop/products_by_categoryendpoint (~100+ products per category across multiple pages) - Creator profiles — TikTok creator data: followers, likes, video count, commerce status, and seller flag
- Signed API pagination — bypasses TikTok's
code=10000anti-bot wall with properX-Tts-Oec-Bsidsignatures where required (category, store) - Per-run unique fingerprint — fresh browser fingerprint (UA, WebGL, screen, fonts) from Bablosoft per proxy session — harder to correlate across runs
- Parallel processing — up to 5 queries processed concurrently with isolated signer state
- Auto-retry with backoff — 10 retries with exponential backoff + jitter on captcha / HTTP errors, each retry uses a fresh proxy IP
- No headless browser — Chrome TLS fingerprint impersonation (curl_cffi) + Node.js request signer sidecar
What Data You Get
Search / Category / Store product card
| Field | Description |
|---|---|
productId | Unique product identifier |
title | Product title |
productUrl | Direct link to the product page |
currentPrice | Current selling price |
originalPrice | Original price before discount |
discountPercent | Discount percentage |
salesVolume | Total units sold |
rating | Average product rating |
reviewCount | Number of customer reviews |
sellerName | Seller/store name |
imageUrls | Product image URLs |
tags | Tags like "Best Seller", "Free Shipping" |
searchRank | Position in search / category results |
sellerId, shopName, shopUrl | Store products only — link back to the parent store |
Product detail fields
| Field | Description |
|---|---|
description | Full product description |
category | Product category path (e.g. "Home & Kitchen > Water Bottles") |
variants | Array of variants with individual prices, stock status, and images |
maxPrice | Highest variant price |
soldLast30Days | Units sold in the last 30 days |
globalSold | Total global units sold |
brand | Brand ID and name |
specifications | Product specs (Material, Size, Weight, etc.) |
sellingPoints | Promotional highlights |
videoUrls | Product video URLs |
shippingInfo | Fulfillment method and free shipping flag |
Seller data (embedded in product details)
| Field | Description |
|---|---|
sellerId | Seller identifier |
shopUrl | Store page URL |
shopRating | Store rating (out of 5) |
shopFollowers | Store follower count |
shopTotalSold | Total units sold by the store |
shopOnSaleProducts | Number of active products |
shopReviewCount | Total store reviews |
experienceScores | Positive feedback %, ships within 48h % |
storeSubScores | Product Quality, Logistics Speed, Service Quality scores |
shopIdentityLabel | Store badge (e.g. "OFFICIAL SHOP") |
Review fields
One review = one dataset record. Each record is self-describing: it includes both the review content and product-level context (so the row alone is enough to know what it is and where it came from).
| Field | Description |
|---|---|
reviewId | Review identifier |
rating | Star rating (1–5) |
text | Review text |
date | Review timestamp |
reviewerName | Reviewer display name |
isVerifiedPurchase | Verified purchase flag |
isIncentivizedReview | Incentivized review flag |
imageUrls | Review images |
variant | Product variant purchased |
country | Reviewer country |
productId | Which product this review is for |
productUrl | Full URL of that product |
productName | Product title |
query | The URL you passed in as input |
totalReviews | Total reviews the product has |
ratingsBreakdown | Stars distribution: count per star (1–5) and overall score |
Store analytics
Scrape type store emits two kinds of records: one type="store" record per store, plus one type="store_product" record per product (each product record is linked to the store via sellerId, shopName, shopUrl).
Store record:
| Field | Description |
|---|---|
shopName | Store name |
region | Store region |
shopRating | Overall store rating |
soldCount, formatSoldCount | Total units sold |
reviewCount | Total store reviews |
onSaleProductCount | Active product count (TikTok-reported) |
productCount | Number of products we actually scraped for you |
followersCount, formatFollowersCount | Follower count |
storeSubScores | Product Quality / Logistics Speed / Service Quality scores |
estimatedGmv | Estimated gross merchandise value with per-product breakdown |
Store product record — same fields as a product card, plus sellerId, shopName, shopUrl, query tying it back to the store.
Creator profile
| Field | Description |
|---|---|
username | TikTok username |
nickname | Display name |
bio | Creator bio |
followerCount | Number of followers |
likeCount | Total likes |
videoCount | Number of videos |
isSeller | Whether creator has a TikTok Shop |
isCommerceUser | Commerce account flag |
commerceCategory | Commerce category (e.g. "Health & Wellness") |
Use Cases
- Product research — find trending products on TikTok Shop, compare prices across sellers, and track bestseller rankings
- Seller and store analytics — evaluate store performance, GMV estimation, seller quality scores, and product catalog size
- Review analysis — collect customer reviews for sentiment analysis, product feedback monitoring, and quality assessment
- Market intelligence — track category trends, pricing patterns, discount strategies, and bestseller movements on TikTok Shop
- Creator discovery — find TikTok Shop creators and influencers by commerce status, follower count, and niche for partnership opportunities
- Competitor monitoring — track competitor products, pricing changes, review scores, and sales volume over time
- Dropshipping research — identify high-demand, well-reviewed products with consistent sales volume for sourcing decisions
How It Works
- Choose a Scrape Type in the UI —
Search,Product,Reviews,Category,Store, orCreator - Fill the matching section below — each type has its own dedicated input field (
searchKeywords,productUrls,reviewProductUrls,categoryUrls,storeUrls,creatorUsernames). Other sections are ignored. - Actor fetches data — up to 5 queries in parallel. Each query:
- Pulls a fresh browser fingerprint through the proxy
- Spawns a Node.js signer sidecar (only for scrape types that need the signed API — currently
categoryandstore; the sidecar has a ≈25 s warmup) - Fetches the SSR landing page, then paginates via SSR
&page=N(search) or a signed POST withX-Tts-Oec-Bsid(category, store)
- Download results — structured JSON output in the Apify dataset, exportable as JSON, CSV, or Excel. The dataset has per-type views: Products, Product Details, Stores, Store Products, Reviews, Creators.
Input Parameters
The UI is organized into collapsible sections. Pick a Scrape Type at the top, then fill in the matching section below — inputs from other sections are ignored.
| Scrape Type | Field Name | Input Format | Example |
|---|---|---|---|
| Search | searchKeywords | Keyword | iphone case |
| Product | productUrls | Product URL | https://shop.tiktok.com/us/pdp/product-name/1234567890 |
| Reviews | reviewProductUrls | Product URL | https://shop.tiktok.com/us/pdp/product-name/1234567890 |
| Category | categoryUrls | Category URL | https://shop.tiktok.com/us/c/beauty-personal-care/601450 |
| Store | storeUrls | Store URL | https://shop.tiktok.com/us/store/shop-name/1234567890 |
| Creator | creatorUsernames | Username (without @) | hydrojug |
URLs from www.tiktok.com/shop/... are also supported and auto-converted.
Common fields
| Parameter | Type | Default | Description |
|---|---|---|---|
scrapeType | String | search | One of: search, product, reviews, category, store, creator |
maxItems | Integer | 50 | Max items per query (0 = unlimited). Applies to Search, Category, and Store products |
sortBy | String | relevance | Search sort: relevance, best_sellers, price_asc, price_desc |
includeReviews | Boolean | false | On Product scrape, also fetch reviews and embed them in the product record |
maxReviews | Integer | 30 | Max reviews per product (0 = all). Used by Reviews type and Product + Include reviews |
reviewsSortBy | String | recommended | Reviews sort: recommended, recent |
reviewsFilterType | String | all | Reviews filter: all, verified, with_media |
reviewsStarRating | Integer | 0 | Filter by star rating: 0 = all, 1–5 = specific |
proxyConfiguration | Object | Residential US | Proxy settings — Residential US required |
Example input
{"scrapeType": "search","searchKeywords": ["iphone case", "water bottle", "led lights"],"maxItems": 100,"sortBy": "best_sellers"}
{"scrapeType": "reviews","reviewProductUrls": ["https://www.tiktok.com/shop/pdp/product-name/1731753318135730868"],"maxReviews": 50,"reviewsSortBy": "recent","reviewsFilterType": "verified"}
{"scrapeType": "store","storeUrls": ["https://www.tiktok.com/shop/store/fyp-closet/8647145326316786563"],"maxItems": 200}
Output Example
Search result (one row per product)
{"type": "product_card","productId": "1729595536444134138","title": "HydroJug Sport 32oz Portable Water Bottle","productUrl": "https://shop.tiktok.com/us/pdp/hydrojug-sport-32oz/1729595536444134138","currentPrice": "24.99","originalPrice": "29.99","discountPercent": "-17%","salesVolume": 5200,"rating": 4.8,"reviewCount": "342","sellerName": "HydroJug","imageUrls": ["https://..."],"tags": ["Best Seller", "Free Shipping"],"searchRank": 1,"query": "water bottle"}
Review result (one row per review, linked to its product)
{"type": "review","reviewId": "7628314675993773837","productId": "1731753318135730868","productName": "HONLINK Korean Skincare Set for Glass Skin","productUrl": "https://shop.tiktok.com/us/pdp/honlink-5x-vitamin-c-.../1731753318135730868","query": "https://www.tiktok.com/shop/pdp/.../1731753318135730868","rating": 5,"text": "Great product, loved the texture and results!","reviewerName": "sarah_k","date": "2026-03-28","variant": "Vitamin C Set","country": "US","isVerifiedPurchase": true,"imageUrls": ["https://..."],"totalReviews": 557,"ratingsBreakdown": {"totalCount": 557,"overallScore": 4.8,"stars": { "1": 13, "2": 1, "3": 9, "4": 49, "5": 485 }}}
Store result (one row for the store + one row per product)
{"type": "store","shopName": "FYP Closet","sellerId": "8647145326316786563","shopUrl": "https://shop.tiktok.com/us/store/fyp-closet/8647145326316786563","shopRating": "4.88","formatSoldCount": "4524","onSaleProductCount": 39,"productCount": 39,"formatFollowersCount": "200+","storeSubScores": {"Product Quality": { "percentage": "95" },"Logistics Speed": { "percentage": "88" },"Service Quality": { "percentage": "92" }},"estimatedGmv": {"totalEstimatedGmv": 77461.28,"totalSoldCount": 4120,"productCount": 39}}
{"type": "store_product","productId": "1731146234707153795","title": "Women's Tie-Front Crop Tee","currentPrice": "12.99","salesVolume": 820,"sellerId": "8647145326316786563","shopName": "FYP Closet","shopUrl": "https://shop.tiktok.com/us/store/fyp-closet/8647145326316786563","productUrl": "https://shop.tiktok.com/us/pdp/.../1731146234707153795","query": "https://www.tiktok.com/shop/store/fyp-closet/8647145326316786563"}
Product detail with embedded reviews (only when includeReviews=true)
{"type": "product","productId": "1729595536444134138","title": "HydroJug Sport 32oz Portable Water Bottle","currentPrice": "24.99","variants": [{ "name": "Blue", "price": "24.99", "stockStatus": "in_stock" }],"rating": 4.8,"shopRating": "4.9","storeSubScores": {"Product Quality": { "percentage": "95" },"Logistics Speed": { "percentage": "70" },"Service Quality": { "percentage": "96" }},"totalReviews": 342,"ratingsBreakdown": { "overallScore": 4.8, "stars": { "5": 277, "4": 45 } },"reviews": [{ "rating": 5, "text": "Great quality!", "isVerifiedPurchase": true }]}
Proxy Requirements
Residential US proxy is required. TikTok Shop blocks datacenter IPs and non-US traffic. Must be HTTP-proxy-capable (SOCKS-only proxies will not work with the Node.js signer sidecar).
- Apify Residential Proxy (recommended) — select
RESIDENTIALgroup withUScountry - Custom proxy — must be a rotating residential US HTTP proxy (IPRoyal, Smartproxy, BrightData, etc.)
Each query gets a fresh proxy IP automatically. All requests within one query share the same IP so that ttwid, oec_lucifer, msToken, X-Tts-Oec-Bsid stay consistent with TikTok's server-side session binding.
Limitations
- US region only — TikTok Shop is primarily available in the US (UK and SEA support planned)
- Captcha / bot wall — some proxy IP pools are pre-flagged by TikTok. The Actor auto-retries with a new session/IP up to 10 times with exponential backoff. Apify's Residential proxy gives the cleanest results; less-trusted pools may hit the wall harder. If all 10 retries hit captcha, the query is dropped
- Search pagination cap — TikTok's signed search API (
brandy_desktop/s/product_list) is captcha-gated; the Actor paginates via SSR&page=Ninstead, which typically yields 20–50 unique products per keyword. Category, store, and reviews pagination is deeper (server-limited) - Store products require a clean proxy — the signed store products endpoint is captcha-gated on dirty IP pools. Store info is always returned; store products may come back empty on some proxies (a clear warning is logged). Apify Residential usually works
- Signer warmup — when signing is needed (category, store), the first request per query takes ~25 s for the Node.js anti-bot SDK to bootstrap (loader → core → webmssdk →
/bs/rtproxy dance). Subsequent paginated calls within the same query are fast (~2 s each). Search, Product, Reviews, and Creator scrapes skip the signer entirely - Dynamic pricing — TikTok shows different prices per session (promo codes, A/B tests); the scraper returns the server-side price for your proxy session
FAQ
What types of TikTok Shop data can I scrape? Six types: product search results, full product details, customer reviews, store analytics with GMV, category listings, and creator profiles.
How does the input UI work? Pick a Scrape Type at the top of the input form. Below you'll see collapsible sections — one per type. Open the section that matches your selection and fill in the input field (keywords, URLs, or usernames). Other sections are ignored.
How many items can I scrape per run?
Depends on scrape type. Category pagination typically reaches 100–110 unique products per category (TikTok's own server cap). Search yields 20–50 products per keyword (SSR cap). Store pagination depends on seller catalog size and proxy quality. Reviews paginate fully. Set maxItems=0 (or maxReviews=0) to get everything the server allows.
How are reviews formatted?
One review per dataset record. Each record contains the review content (rating, text, date, reviewer, etc.) plus the product it belongs to (productId, productUrl, productName) and the original input URL (query). This makes every row self-describing.
How is a store scrape formatted?
The Store scrape produces two kinds of records: one type="store" record with all store metadata and GMV estimate, plus one type="store_product" record per product. Product records link back to the store via sellerId, shopName, and shopUrl. Use the Stores and Store Products dataset views to see them separately.
Does the TikTok Shop scraper collect seller data? Yes. Product detail pages include full seller data: store rating, follower count, total sales, quality scores, shipping metrics, and store badge.
Can I filter reviews by star rating or verified purchases?
Yes. Use reviewsStarRating (1–5), reviewsFilterType (verified, with_media), and reviewsSortBy (recommended, recent) to narrow down reviews.
Does it estimate store GMV? Yes. Store analytics include estimated gross merchandise value calculated from product prices and sold counts, with a per-product GMV breakdown. GMV is attached to the store record; products are emitted separately.
Why does TikTok Shop show different prices each time? TikTok uses dynamic pricing with promo codes and A/B testing per session. The scraper captures the server-side price for your specific proxy session.
What's the difference between the monthly and pay-per-use plans? Identical functionality. Monthly ($20/mo) is better for regular monitoring; pay-per-use ($2/1k results) is better for occasional scraping.
Having issues? Help me fix them faster
If you experience any problems, please share your run data with me so I can debug and improve the Actor:
- Go to Apify Security Settings
- Find "Share run data with developers"
- In the "Manage list of Actors" section, check this Actor (or All Actors)
- Save
This data is used only for debugging and helps me resolve issues much faster. Thank you!
Support
Questions, bug reports, or feature requests: afrcanec@gmail.com
🏷️ Tags
TikTok Shop Scraper, TikTok Shop API, TikTok Product Scraper, TikTok Shop Data Extractor, Product Reviews Extractor, Store Analytics TikTok, TikTok Seller Data, GMV Estimation Tool, TikTok Creator Profiles, Product Price Tracker, E-commerce Scraper, TikTok Shop Category Scraper, Sales Volume Tracker, Product Ratings Extractor, Dropshipping Research Tool, Competitor Product Analysis, TikTok Influencer Finder, How to Scrape TikTok Shop, Extract TikTok Shop Data, E-commerce Market Research, TikTok Product Research, Bestseller Tracker, Product Variant Extractor, TikTok Shop Reviews, Social Commerce Data, E-commerce Analytics, TikTok Shop Trends, Seller Performance Analytics, TikTok Shop Price Comparison, Product Discovery Tool