Tiktok Shop Analytics
Pricing
Pay per usage
Tiktok Shop Analytics
Discover TikTok videos promoting Shop products. Returns product mentions (with prices, discount codes, brands, shop URLs from descriptions), video engagement, and creator profiles with affiliate-tier classification. For influencer outreach, trending discovery, dropshipping research.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
CQ
Maintained by CommunityActor stats
0
Bookmarked
70
Total users
1
Monthly active users
16 days ago
Last modified
Categories
Features
Share
Discover trending TikTok Shop products, seller profiles, and creator/affiliate signals from publicly available TikTok data. The actor scrapes TikTok search, hashtag, and profile pages (with stealth) and derives trending and affiliate scores from the metrics it can extract.
This actor works with public TikTok data only. It is not affiliated with, endorsed by, or connected to TikTok. Because TikTok has strong anti-bot defenses, results vary run-to-run and residential proxies are strongly recommended. See Limitations.
Features
- Product discovery: Search products by keyword, category URL, or specific product URLs
- Trending analysis: Compute a 0-100 trending score from the sales/rating/review/price/discount signals that could be extracted
- Seller intelligence: Extract seller/store profiles and (optionally) their product catalog
- Affiliate discovery: Find creators promoting products via hashtags or direct profile URLs
- Creator analytics: Estimate engagement rate, affiliate tier, and affiliate potential score
How It Works (Data Sources)
The actor combines two collection strategies with graceful fallback:
- Third-party TikTok scraper (when running on the Apify platform) — for keyword/hashtag/profile video collection it calls the established
clockworks/tiktok-scraperactor viaActor.call. This runs as a metered child run and consumes its own resources. - Direct Playwright scraping (fallback / always used for product & seller pages) — a stealth-configured headless Chromium browser scrapes TikTok search, tag, product, and profile pages directly.
Structured product fields (price, rating, review count, units sold) are read from the DOM/page text of actual product or category pages. Keyword and hashtag searches primarily return product mentions and creator records derived from video results rather than fully structured product listings.
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
dataTypes | array | ["products"] | Which data to collect: products, sellers, affiliates |
searchQuery | string | "viral products" | Keyword to search for product mentions |
categoryUrl | string | — | Direct TikTok Shop category page URL |
productUrls | array | [] | Specific TikTok Shop product URLs |
sellerUrls | array | [] | Seller/store profile URLs |
sellerName | string | — | Seller name to search for |
includeSellerProducts | boolean | true | Also scrape products from the seller's shop |
hashtag | string | "TikTokMadeMeBuyIt" | Hashtag used to find creators (the # is optional) |
creatorUrls | array | [] | Specific creator profile URLs |
region | string | "US" | One of US, UK, ID, TH, VN, MY, PH, SG |
maxProducts | integer | 50 | Max products/product mentions (1-200) |
maxCreators | integer | 20 | Max creators to analyze (1-50) |
maxProductsPerSeller | integer | 20 | Max products per seller (1-50) |
enableTrendingAnalysis | boolean | true | Compute trending scores for products |
enableCreatorAnalysis | boolean | true | Compute affiliate scores/tiers for creators |
useShopApi | boolean | true | Use enhanced stealth scraping for search |
proxyConfiguration | object | — | Proxy settings (residential strongly recommended) |
At least one of searchQuery, categoryUrl, productUrls, sellerUrls, sellerName, hashtag, or creatorUrls must be provided.
Output
All records are written to a single dataset. Each record carries a dataType (or type) field so you can filter by kind. Fields are populated on a best-effort basis and may be null when TikTok does not expose them or blocks the request.
product — scraped product page
| Field | Description |
|---|---|
productId | Product ID parsed from the URL |
title, description | Product title / description |
price, originalPrice, currency | Pricing (parsed from page text) |
discount | Discount % (derived from price vs. original price) |
rating, reviewCount, soldCount | Rating, review count, units sold (best-effort) |
sellerName, sellerUrl | Seller name / link |
images, categories | Image URLs, breadcrumb categories |
trendingScore, trendingSignals | Trending score (0-100) and signal list (when trending analysis is on) |
product_mention — product signal from a video
| Field | Description |
|---|---|
sourceVideo, sourceAuthor | Originating video URL and author |
description, hashtags | Video caption and hashtags |
engagement | { likes, comments, shares, plays } |
productIndicators | { hasProductLink, hasShopMention, hasDiscountCode, keywords } |
viralityScore | Virality score (0-100) |
seller
| Field | Description |
|---|---|
username, displayName, bio | Profile identity |
followers, following, likes | Profile stats (best-effort) |
verified, hasShop | Verification / shop presence |
shopUrl | Shop link (if found) |
products, productCount | Catalog items and count (when includeSellerProducts is on) |
creator (affiliate)
| Field | Description |
|---|---|
username, displayName, bio | Profile identity |
followers, following, likes, videoCount | Profile stats (best-effort) |
engagementRate | Likes/followers ratio (%) |
affiliateScore | Affiliate potential (0-100) |
affiliateTier | mega / macro / mid-tier / micro / nano |
affiliateInfo | { hasShop, hasShowcase, hasAffiliateKeywords, showcaseProductCount } |
contactEmail, linkInBio | Contact email (parsed from bio, if present), link in bio |
Other records
video— raw video records with product indicators (only those with a shop/product signal are written to the dataset)market_insights— aggregate price/rating/sales/discount breakdown across scraped productscreator_insights— aggregate tier/engagement/reach/affiliate-readiness breakdown across creatorsrun_summary— per-run counts and top product/creator highlightserror_summary— written (withtype: "error_summary") when a run is blocked or errors out; the run still finishes successfully
Trending Score Calculation
Products are scored 0-100 from the metrics that could be extracted:
- Sales velocity (up to 40 pts): units sold
- Review count (up to 20 pts): number of reviews
- Rating (up to 15 pts): star rating
- Price point (up to 15 pts): highest for the $10-50 range (with $15-35 flagged as a "viral sweet spot" signal)
- Discount (up to 10 pts): discount percentage
If a metric is missing, its contribution is simply absent — scores are only as complete as the data TikTok exposes.
Affiliate Tiers
| Tier | Followers |
|---|---|
| Mega | 1M+ |
| Macro | 100K-1M |
| Mid-tier | 10K-100K |
| Micro | 1K-10K |
| Nano | <1K |
Example Input
Find trending products
{"dataTypes": ["products"],"searchQuery": "viral skincare","region": "US","maxProducts": 100,"enableTrendingAnalysis": true}
Discover affiliates
{"dataTypes": ["affiliates"],"hashtag": "#TikTokMadeMeBuyIt","maxCreators": 50,"enableCreatorAnalysis": true}
Full analysis
{"dataTypes": ["products", "sellers", "affiliates"],"searchQuery": "kitchen gadgets","hashtag": "#AmazonFinds","region": "US","maxProducts": 50,"maxCreators": 30,"enableTrendingAnalysis": true,"enableCreatorAnalysis": true}
Regions Supported
US (United States), UK (United Kingdom), ID (Indonesia), TH (Thailand), VN (Vietnam), MY (Malaysia), PH (Philippines), SG (Singapore).
Tips
- Use residential proxies — TikTok aggressively blocks datacenter traffic.
- Start small — test with 10-20 items before scaling up.
- Combine data types — products + affiliates gives the fullest picture.
- Try popular hashtags —
#TikTokMadeMeBuyIt,#AmazonFinds,#TikTokShop.
Limitations
- Anti-bot blocking. TikTok actively blocks automated access. Without residential proxies (and sometimes even with them), a run may return few or no results. The actor treats blocks as expected: it logs a warning, writes an
error_summary/run_summaryrecord, and finishes with status SUCCEEDED rather than failing the run. - Best-effort parsing. Numeric fields (
price,followers,likes,soldCount,reviewCount,rating) are parsed from page text and selectors that depend on TikTok's current DOM. They can benullor approximate and may break if TikTok changes its layout. - Search returns mentions, not catalogs. Keyword and hashtag searches mainly yield
product_mentionandcreatorrecords derived from videos. Fully structuredproductrecords require scraping actual product or category pages viaproductUrls/categoryUrl. - Third-party dependency & cost. On the Apify platform, video/hashtag/profile collection is delegated to the
clockworks/tiktok-scraperactor when available; that child run consumes its own compute and (if configured) proxy usage. If it is unavailable, the actor falls back to direct Playwright scraping. - No private or authenticated data. Only publicly visible information is collected. Exact sales figures, private analytics, and TikTok Shop back-office data are not accessible.
- Not a TikTok product. This actor is independent and not affiliated with or endorsed by TikTok.
Pricing
This actor runs on the Apify platform and consumes platform usage (compute units, plus proxy and any child-actor usage). Actual cost depends on how many pages are scraped, whether Playwright fallback or the third-party TikTok scraper is used, your limits (maxProducts, maxCreators, maxProductsPerSeller), and your proxy configuration. Start with small limits to gauge cost for your workload.
Legal Notice
This actor scrapes publicly available data from TikTok. You are responsible for ensuring your use complies with TikTok's Terms of Service, applicable laws, and data-protection regulations. Use the data for research and analysis purposes only.
Built by JCD