TikTok Shop Trending Products & Sales Velocity
Pricing
from $9.00 / 1,000 tracked product results
TikTok Shop Trending Products & Sales Velocity
Track TikTok Shop products by keyword or URL. Measure sold-count growth, estimated daily sales, price changes, review growth, and opportunity-rank movement across recurring runs. Export verified results to JSON, CSV, Excel, or API—no external data provider required.
Pricing
from $9.00 / 1,000 tracked product results
Rating
0.0
(0)
Developer
Scout
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
TikTok Shop Trend Tracker & Sales Velocity
Track TikTok Shop products in selected niches and turn repeated public observations into measurable trend signals: sold-count growth, estimated units per day, price changes, review growth, and opportunity-rank movement.
The first run creates an honest baseline. Run the same tracker later—or schedule it daily—to measure what changed. Every result explains whether its trend data is a baseline, too recent to extrapolate, or based on a valid comparison window.
This Actor owns its extraction and tracking pipeline. It does not call another Apify Actor, a third-party TikTok data API, or a publisher-owned TikTok account. It requests public TikTok Shop pages through the proxy configuration selected by the Actor user and stores tracker history privately in that user's Apify account.
For AI agents and MCP clients
Use this Actor when the user asks to monitor TikTok Shop products repeatedly and compare sold-count growth, estimated units per day, price changes, review growth, or opportunity-rank movement.
- Actor tool ID:
nexascout/tiktok-shop-trending-products - Minimum input:
{"searchQueries":["car accessories"],"trackerName":"daily-watch","maxProductsPerQuery":3} - Required workflow: first run creates
BASELINE; run later with the sametrackerName, region, queries, and product URLs to obtainMEASUREDchanges - Dataset contract: one billable row per product observation per run
- Run summary:
OUTPUTin the default key-value store - Do not use for: a simple one-time product snapshot, creator discovery, private contacts, or official TikTok leaderboard data
For deterministic tool availability, connect an MCP client to the NexaScout three-Actor endpoint. The client can inspect this Actor's input and output schemas before calling it.
Choose the right NexaScout Actor
| User intent | Actor |
|---|---|
| Current product discovery, commerce fields, and snapshot viral ranking | Product Scraper & Viral Radar |
| Recurring observations, sold-count growth, price/review changes, and sales velocity | This Actor — Trend Tracker & Sales Velocity |
| Public creators, product videos, engagement metrics, and association evidence | Affiliate Creator & Video Finder |
Why use this Actor
- Find products by niche using public TikTok Shop keyword catalogs
- Monitor specific product URLs alongside niche discovery
- Measure sold-count growth between recurring observations
- Estimate units per day using the exact elapsed time—not a fixed assumption
- Track price, review, and rank changes without maintaining your own database
- Transparent trend scoring with human-readable reasons and confidence states
- Automation-ready output for Apify Schedules, API, webhooks, Make, Zapier, n8n, CSV, and Excel
How tracking works
First run: baseline
The Actor discovers and validates products, assigns a current opportunity rank inside each query group, and saves a private snapshot. Because no earlier observation exists, it returns:
trackingState: "BASELINE"trendConfidence: "BASELINE"salesDelta: nullestimatedUnitsPerDay: null
This is deliberate. A single snapshot can show popularity, but it cannot prove growth.
Later run: measured change
Run the same inputs with the same trackerName after at least six hours—daily is recommended. The Actor compares current public metrics with the previous snapshot and derives:
salesDelta = current salesTotal - previous salesTotalestimatedUnitsPerDay = salesDelta / elapsed dayspriceChangeandpriceChangePercentreviewDeltarankChange = previous opportunity rank - current opportunity rankfirstSeenAt,trackingWindowHours, andobservationCount
Positive rankChange means the product climbed. The opportunity rank is this Actor's transparent within-query ranking based on observed commerce evidence; it is not presented as an official TikTok leaderboard position.
Runs that are too close together
If the previous observation is newer than minimumTrackingHours, the Actor still reports raw deltas but returns:
trackingState: "TOO_SOON"estimatedUnitsPerDay: null
This prevents a short spike from being extrapolated into a misleading daily figure. The early check does not advance the saved comparison anchor, so frequent manual runs cannot prevent a later scheduled run from reaching a valid measurement window.
Input example
{"searchQueries": ["car accessories", "kitchen gadgets"],"productUrls": [],"trackerName": "daily-product-watch","trackingEnabled": true,"resetHistory": false,"minimumTrackingHours": 6,"retainMissingDays": 30,"region": "US","maxProductsPerQuery": 10,"sortBy": "TREND_SCORE","proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "US"},"maxConcurrency": 2,"navigationTimeoutSecs": 45,"includeRawData": false,"includeSearchFallbacks": false}
Keep the same trackerName, region, queries, and watchlist on recurring runs. If you change the query scope, the Actor automatically isolates it under a different tracker record even when the visible name is reused.
Example measured output
{"productId": "1729569241736188017","productName": "Wireless CarPlay Screen","productUrl": "https://shop.tiktok.com/us/pdp/wireless-carplay-screen/1729569241736188017","imageUrl": "https://example.com/product.webp","price": 50.99,"previousPrice": 54.99,"priceChange": -4,"priceChangePercent": -7.3,"currency": "USD","salesTotal": 467277,"previousSalesTotal": 463077,"salesDelta": 4200,"estimatedUnitsPerDay": 4200,"rating": 4.2,"reviewCount": 45682,"previousReviewCount": 45412,"reviewDelta": 270,"sellerName": "Example Store","viralScore": 90.2,"trackerName": "daily-product-watch","trackingGroup": "car accessories","trackingState": "MEASURED","trendConfidence": "MEDIUM","trendScore": 94.1,"trendSignals": ["Exceptional sales velocity","Opportunity rank climbed 3 positions","Review count increased by 270","Price decreased since the previous observation"],"opportunityRank": 2,"previousOpportunityRank": 5,"rankChange": 3,"firstSeenAt": "2026-08-20T00:00:00.000Z","previousSeenAt": "2026-08-24T00:00:00.000Z","trackingWindowHours": 24,"observationCount": 3,"qualityState": "verified_success","dataSource": "tiktok_search_http_json","searchQuery": "car accessories","scrapedAt": "2026-08-25T00:00:00.000Z"}
The values above illustrate the schema. The Actor returns only metrics that TikTok exposes publicly for the current product and region.
Trend score
The 0–100 trendScore is deterministic and auditable.
For a measured observation it combines:
- Current verified product evidence through the existing
viralScore: up to 45 weighted points - Estimated public sold-count velocity: up to 35 points
- Positive opportunity-rank movement: up to 15 points
- Review growth: up to 5 points
- A verified price decrease: up to 5 additional points, with the final score capped at 100
Negative rank movement can reduce the score. A first observation uses only current evidence and is clearly labeled as a baseline. The score is a research-ranking signal, not a promise of future sales or revenue.
Data quality
| State | Meaning |
|---|---|
verified_success | Structured TikTok data and at least one live commerce field were captured. |
partial_verified | The product was confirmed, but only part of its public commerce data was available. |
serp_enriched | The URL came from a public search index and could not be fully live-validated. Returned only when explicitly enabled. |
Search-only rows are disabled by default so normal monitoring datasets contain live verified products.
Private history and dropped products
When tracking is enabled, the Actor creates an additional named key-value store in the running user's Apify account. It saves only normalized observations required for comparisons—not cookies, proxy credentials, or private TikTok data.
Products that disappear from the current result are listed in the run's OUTPUT summary and retained privately for the configured number of days. They are not written as extra billable dataset rows.
Use resetHistory: true when you intentionally want a fresh baseline. The previous snapshot is replaced only after the current extraction completes.
Recommended schedule
- Run the Actor once and confirm that the dataset contains live products.
- Save the configuration as an Apify Task.
- Schedule it every 24 hours.
- Keep the same
trackerNameand query scope. - Read the latest dataset through the Apify API or send it to a webhook, spreadsheet, or automation workflow.
Daily observations are usually more stable than hourly ones because public sold counts may be rounded or delayed.
Pricing and cost notes
The recommended launch configuration is $0.009 per dataset result ($9 per 1,000 results) plus Apify's standard small Actor-start event, with platform usage included in the event prices. A default five-product baseline run therefore creates only five billable results.
The Actor writes each current product once per run. Missing products remain in the private summary and are not charged as dataset rows. If includeSearchFallbacks is enabled, its clearly labeled search-only leads are dataset results and are billed as such.
US residential proxy is recommended because TikTok Shop is geo-sensitive and frequently rate-limits data-center traffic. Keep maxConcurrency at 1–2.
Owned extraction pipeline
- Read TikTok's public keyword catalog for each niche.
- Parse embedded product JSON and public metadata.
- Validate and enrich candidates through public product-detail pages.
- Use Playwright only when lightweight HTTP extraction is incomplete.
- Preserve cookies per proxy session and retire challenged sessions.
- Reject unrelated catalog leakage before ranking.
- Compare normalized observations with the previous private snapshot.
- Write current results to the default dataset and diagnostics to
OUTPUT.
The Actor does not solve CAPTCHAs, log in to TikTok, access private affiliate analytics, or call paid external data providers.
Current limitations
- US TikTok Shop only in this release
- The first run is a baseline and cannot contain real cross-run velocity
- Public sold counts can be delayed, rounded, corrected, or reset by TikTok
- A negative sold-count reset is not treated as negative sales; velocity becomes
null - Availability and fields depend on what TikTok exposes publicly
- Narrow or newly indexed niches may return fewer products than requested
- Opportunity rank is this Actor's evidence-based within-query rank, not an official TikTok leaderboard rank
Responsible use
This Actor extracts publicly visible product and seller information. Do not use it to collect private data, defeat access controls, or violate applicable laws, contracts, or platform rules. Evaluate sourcing, intellectual property, product safety, and commercial claims independently before selling any product.
Support
When reporting an issue, include the run ID, tracker name, region, failed stage, and trackingState. Never post private proxy credentials, cookies, or tokens.