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

Ilya
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
TikTok Shop Scraper
The most complete TikTok Shop scraper on Apify. Extract products, reviews, store analytics, seller details, category listings, and creator profiles — all from a single Actor.
Unlike other TikTok Shop scrapers that only cover search or basic product data, this Actor provides 6 scrape modes in one tool with full pagination, detailed seller metrics, GMV estimation, and granular review filtering.
Pricing Plans
This Actor is available in two pricing options — they are identical in functionality, the only difference is the payment model:
- Pay per result ($2 / 1,000 results) — pay only for what you use, no monthly commitment
- Monthly subscription ($20 / month) — unlimited usage with a flat monthly fee
Choose whichever fits your workflow best.
Features
- Product Search — search by keyword with sorting (relevance, best sellers, price)
- Product Details — full product page: variants, pricing, images, videos, specs, brand, shipping, and complete seller info
- Product Reviews — paginated reviews with filtering by star rating, verified purchases, media
- Store Analytics — store info, all products, followers, ratings, sub-scores, and estimated GMV
- Category Products — scrape entire category pages with pagination
- Creator Profiles — TikTok creator stats: followers, likes, videos, commerce status
- Parallel Processing — up to 20 queries processed concurrently
- Auto-retry — 3 retries with exponential backoff (2s, 5s, 10s) on connection errors
Proxy Requirements
Residential US proxy is required. TikTok Shop aggressively blocks datacenter IPs and non-US traffic.
Use one of these options:
- Apify Residential Proxy (recommended) — select
RESIDENTIALgroup withUScountry - Custom Proxy — provide your own residential US proxy URL
Important: Residential proxies must support rotating IPs on demand. The Actor gets a fresh IP for each query (session). All requests within one query share the same IP to maintain TikTok's cookie-to-IP binding. Different queries run with different IPs.
- Apify Residential — each query gets a new session ID via
new_url(), which means a new IP automatically. - Custom proxy — must be a rotating residential proxy (most providers like IPRoyal, Smartproxy, BrightData rotate IP per connection by default through their gateway URL). Static/sticky proxies will get blocked quickly.
Datacenter proxies will not work — the Actor will reject them with an error.
Captcha Notice
TikTok Shop may occasionally show a captcha challenge, especially under heavy load or with overused proxy IPs. If this happens:
- Simply re-run the Actor — a new proxy session usually bypasses it
- Check the logs for
Captcha detectedmessages - If captcha persists, try running with fewer concurrent queries
Input
| Field | Type | Default | Description |
|---|---|---|---|
scrapeType | string | search | Required. One of: search, product, category, store, creator, reviews |
queries | string[] | — | Required. List of inputs matching the selected scrape type (see below) |
maxItems | integer | 50 | Max items per query. 0 = unlimited |
sortBy | string | relevance | Search sort: relevance, best_sellers, price_asc, price_desc |
includeReviews | boolean | false | Fetch full reviews for product type |
maxReviews | integer | 30 | Max reviews per product. 0 = all |
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 | Apify Residential (US) or custom proxy URL |
What to put in queries for each scrapeType
| Scrape Type | Input Format | Example |
|---|---|---|
search | Keywords | iphone case |
product | Product URL | https://shop.tiktok.com/us/pdp/product-name/1234567890 |
category | Category URL | https://shop.tiktok.com/us/c/beauty-personal-care/601450 |
store | Store URL | https://shop.tiktok.com/us/store/shop-name/1234567890 |
creator | Username (without @) | hydrojug |
reviews | Product URL | https://shop.tiktok.com/us/pdp/product-name/1234567890 |
Product URLs from
www.tiktok.com/shop/pdp/...are also supported and auto-converted.
Output Examples
Search / Category (product_card)
Returns an array of product cards. Each card is a lightweight summary.
{"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": "iphone case"}
searchRankis only present when products are ranked (search/category results). Product cards from store listings don't have this field.
Product Details
Single object with full product data and embedded seller info. No reviews field by default — only appears when includeReviews: true.
{"type": "product","productId": "1729595536444134138","title": "HydroJug Sport 32oz Portable Water Bottle","description": "...","productUrl": "https://shop.tiktok.com/us/pdp/...","category": "Home & Kitchen > Water Bottles","tags": ["Best Seller"],"imageUrls": ["https://..."],"videoUrls": ["https://..."],"currentPrice": "24.99","maxPrice": "34.99","originalPrice": "29.99","discountPercent": "-17%","variants": [{"variantId": "...","name": "Blue","price": "24.99","originalPrice": "29.99","discountPercent": "-17%","stockStatus": "in_stock","stockQuantity": 150,"imageUrl": "https://..."}],"salesVolume": "5.2K","soldLast30Days": "320","globalSold": "12500","exactSoldCount": "5200","firstLiveTime": "1700000000","productStatus": 1,"saleRegion": "US","brand": { "brandId": "...", "brandName": "HydroJug" },"sellingPoints": ["Free shipping on orders over $20"],"specifications": { "Material": "BPA-Free Plastic", "Capacity": "32oz" },"rating": 4.8,"reviewCount": "342","sellerName": "HydroJug","sellerId": "7494949101118720784","globalSellerId": "7494949101118720784","sellerLocation": "US","shopUrl": "https://shop.tiktok.com/us/store/hydrojug/...","shopLogo": "https://...","shopRating": "4.9","shopFollowers": "194625","shopFormatFollowers": "194.6K+","shopVideoCount": 120,"shopTotalSold": 16096,"shopFormatSold": "16.1K","shopReviewCount": 1561,"shopOnSaleProducts": 81,"experienceScores": { "Positive feedback": "96%", "Ships within 48h": "70%" },"experienceScorePercentile": 73,"storeSubScores": {"Product Quality": { "score": 0.95, "percentage": "95" },"Logistics Speed": { "score": 0.70, "percentage": "70" },"Service Quality": { "score": 0.96, "percentage": "96" }},"shopTier": 0,"sellerType": 2,"shopIdentityLabel": "OFFICIAL SHOP","shopDescription": "Shop HydroJug on TikTok Shop!...","shippingInfo": { "fulfilledBy": "TikTok Fulfillment", "freeShipping": true },"query": "https://shop.tiktok.com/us/pdp/..."}
When includeReviews: true, three additional fields are added to the product object:
{"...all product fields above...","reviews": [{"reviewId": "...","productId": "...","skuId": "...","reviewerId": "...","reviewerName": "J**n","reviewerAvatarUrl": "https://...","rating": 5,"text": "Great quality bottle!","date": "1733286815251","isVerifiedPurchase": true,"isIncentivizedReview": false,"imageUrls": [],"displayImageUrl": null,"variant": "Blue","country": "US","productName": "HydroJug Sport 32oz..."}],"ratingsBreakdown": {"totalCount": 342,"overallScore": 4.8,"stars": { "1": 5, "2": 3, "3": 12, "4": 45, "5": 277 }},"totalReviews": 342}
Store
Single object containing store info, estimated GMV, and all products nested inside.
{"type": "store","sellerId": "7494949101118720784","globalSellerId": "7494949101118720784","shopName": "HydroJug","creatorName": "hydrojug","shopUrl": "https://shop.tiktok.com/us/store/hydrojug/...","shopLogo": "https://...","backgroundImage": "https://...","region": "US","shopRating": "4.9","worstRating": "1","bestRating": "5","soldCount": 16096,"formatSoldCount": "16.1K","globalSoldCount": 16096,"reviewCount": 1561,"onSaleProductCount": 81,"followersCount": 194625,"formatFollowersCount": "194.6K+","videoCount": 120,"storeSubScores": {"Product Quality": { "score": 0.95, "percentage": "95", "highlight": true },"Logistics Speed": { "score": 0.70, "percentage": "70", "highlight": false },"Service Quality": { "score": 0.96, "percentage": "96", "highlight": true }},"identityLabel": "OFFICIAL SHOP","description": "Shop HydroJug on TikTok Shop!...","estimatedGmv": {"totalEstimatedGmv": 285420.50,"totalSoldCount": 16096,"productCount": 81,"products": [{ "productId": "...", "title": "...", "price": 24.99, "soldCount": 5200, "estimatedGmv": 129948.00 }]},"products": [{"type": "product_card","productId": "...","title": "...","productUrl": "https://...","imageUrls": ["https://..."],"currentPrice": "24.99","originalPrice": "29.99","discountPercent": "-17%","salesVolume": 5200,"rating": 4.8,"reviewCount": "342","sellerName": "HydroJug","tags": ["Best Seller"]}],"query": "https://shop.tiktok.com/us/store/hydrojug/..."}
Reviews (standalone)
When using scrapeType: "reviews", returns a reviews object with ratings breakdown.
{"type": "reviews","productId": "1729595536444134138","totalReviews": 342,"ratingsBreakdown": {"totalCount": 342,"overallScore": 4.8,"stars": { "1": 5, "2": 3, "3": 12, "4": 45, "5": 277 }},"reviewCount": 30,"reviews": [{"reviewId": "...","productId": "...","skuId": "...","reviewerId": "...","reviewerName": "J**n","reviewerAvatarUrl": "https://...","rating": 5,"text": "Great quality bottle!","date": "1733286815251","isVerifiedPurchase": true,"isIncentivizedReview": false,"imageUrls": [],"displayImageUrl": null,"variant": "Blue","country": "US","productName": "HydroJug Sport 32oz..."}],"query": "https://shop.tiktok.com/us/pdp/..."}
Creator Profile
{"type": "creator","userId": "...","username": "hydrojug","nickname": "HydroJug","avatarUrl": "https://...","region": "US","language": "en","bio": "Stay Hydrated","bioLink": "https://hydrojug.com","isVerified": true,"isOrganization": false,"isSeller": true,"isCommerceUser": true,"commerceCategory": "Health & Wellness","accountCreatedAt": 1600000000,"followerCount": 1200000,"followingCount": 150,"likeCount": 45000000,"videoCount": 660,"friendCount": 50,"profileUrl": "https://www.tiktok.com/@hydrojug","query": "hydrojug"}
Use Cases
- Product Research — find trending products, compare prices, analyze competition
- Seller Analytics — evaluate store performance, GMV estimation, seller scores
- Review Analysis — sentiment analysis, product feedback monitoring, review quality
- Market Intelligence — track categories, pricing trends, bestsellers
- Creator Discovery — find TikTok Shop creators and influencers for partnerships
Technical Details
- Built with Python 3.12 +
curl_cffi(browser TLS fingerprint impersonation) - No headless browser needed — fast and lightweight
- Extracts SSR data from TikTok's server-rendered HTML
- Browser-like navigation headers (Sec-Fetch, Referer) to bypass captcha on PDP pages
- Session cookie warmup via lightweight init page before scraping
- Pagination via TikTok's internal POST APIs with cursor-based navigation
- Multi-layer price extraction (promotion → min_price → base price fallback)
- 120-second request timeout with 5 retries per request
- Session-level retry (up to 3 new sessions/IPs) on captcha detection
Limitations
- US region only (for now) — TikTok Shop is primarily available in the US
- Captcha — may appear on some proxy IPs; the Actor auto-retries with a new session/IP (up to 3 times)
- Dynamic pricing — TikTok shows different prices per session (promo codes, A/B tests). The scraper returns the server-side price for your proxy session
- Rate limits — heavy concurrent usage may trigger temporary blocks
Actively Maintained
This Actor is under active development. Planned improvements:
- Additional regions support (UK, SEA)
- More data fields as TikTok Shop API evolves
If you need a specific feature, custom data field, or integration — feel free to reach out.
Contact
Email: afrcanec@gmail.com
Have questions, feature requests, or need a custom scraping solution? I respond quickly and I'm happy to help. If something doesn't work or you need additional data fields — just write me, I'll add it.