TikTok Competitor Viral Outlier & Growth Monitor
Pricing
$3.00 / 1,000 account checkeds
TikTok Competitor Viral Outlier & Growth Monitor
Monitor competitor TikTok accounts and detect breakout videos, viral outliers, engagement spikes, follower growth, new hashtags, sounds, and profile changes.
Pricing
$3.00 / 1,000 account checkeds
Rating
0.0
(0)
Developer
Furkan Toluç
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Stop checking competitor TikTok profiles manually. This Actor tells you when a competitor publishes something that materially outperforms their normal content.
It is a stateful competitor-momentum monitor—not a bulk TikTok scraper. Schedule it daily or several times per day and receive only newly observed signals: new posts, 2× and 5× breakouts, engagement outliers, follower acceleration, new hashtags and sounds, and profile changes.
What it detects
- Viral outlier monitoring: compares each refreshed video with that account's own previous recent median, not an arbitrary global benchmark.
- Delayed breakout detection: a post first seen at 1.1× can trigger later when observed at 2× or 5×. Each threshold is emitted once.
- Competitor growth: reports follower change and emits a spike only after at least three historical growth observations support it.
- Content strategy changes: identifies new hashtags, stable sound IDs, profile edits, and large posting-cadence changes.
- Scheduled monitoring: persistent Apify Key-Value Store state makes recurring runs useful; no external database is required.
Example input
{"accounts": [{ "username": "nike", "name": "Nike" },{ "username": "https://www.tiktok.com/@gymshark", "name": "Gymshark" }],"maxVideosPerAccount": 30,"baselineVideoCount": 20,"onlyChanges": true,"minimumViewsForOutlier": 1000,"outlierMultiplier": 2,"strongOutlierMultiplier": 5,"detectFollowerGrowth": true,"detectHashtags": true,"detectSounds": true}
Usernames, @usernames, and full profile URLs are accepted. Duplicate normalized usernames are checked once. A friendly name is optional and never used as account identity.
Example breakout event
{"recordType": "EVENT","eventType": "BREAKOUT_5X","severity": "HIGH","accountName": "Example Brand","accountId": "123456789","username": "examplebrand","videoId": "7412345678901234567","videoUrl": "https://www.tiktok.com/@examplebrand/video/7412345678901234567","caption": "Our newest product...","views": 141000,"baselineMedianViews": 24000,"viewMultiple": 5.875,"likes": 12400,"comments": 491,"shares": 2102,"publishedAt": "2026-08-28T14:02:00.000Z","detectedAt": "2026-08-29T12:00:00.000Z"}
The wording is deliberately observational: the video is currently performing above its recent baseline. The Actor does not predict future virality.
Baseline and thresholds
The first successful check stores the profile, recent stable video IDs, metrics, hashtags, sounds, and a median baseline. It does not label existing posts as NEW_VIDEO and normally emits no event rows when onlyChanges=true.
On later runs, events are evaluated against the previous saved baseline, then the next baseline is calculated and saved. This avoids a newly viral post raising the baseline before it is classified.
The baseline includes median views, likes, comments, shares, engagement rate, and approximate hours between posts. At least five videos with valid view counts are required. Below that, baselineStatus is INSUFFICIENT_DATA and relative outlier claims are skipped.
Default view logic:
VIRAL_OUTLIER: views >= 1,000 and views / previous median >= 2BREAKOUT_2X: views >= 1,000 and views / previous median >= 2BREAKOUT_5X: views >= 1,000 and views / previous median >= 5
The minimum-view safeguard prevents a small account's 100-view median and 400-view post from being called commercially meaningful merely because it is 4× larger.
Engagement rate is (likes + comments + shares) / views. It is calculated only when all four public metrics are present and views are positive. An engagement outlier is 2× the previous median engagement rate and also obeys the minimum-view safeguard.
Only-changes and snapshot modes
With onlyChanges=true (default), the Dataset contains only new EVENT records. An unchanged recurring run intentionally produces zero Dataset rows; its OUTPUT record still contains a complete monitoring summary.
With onlyChanges=false, the Dataset also contains normalized PROFILE_SNAPSHOT and VIDEO_SNAPSHOT rows for one-time analysis or troubleshooting.
Extraction approach and cost
The Actor uses TikTok's public, logged-out creator and video embed pages over HTTP. One creator request obtains a stable numeric account ID and recent stable video IDs. Limited concurrent video-embed requests enrich those IDs with current public engagement, publish time, duration, sound, and profile counts.
- Browser: not used
- TikTok login: not required
- Personal cookies: not required
- TikTok developer app or API key: not required
- Video downloads: not performed
- External AI or database: not used
- Proxy: optional; useful when public embeds are rate-limited in a region
Temporary 429, 5xx, and timeout failures use capped exponential backoff with jitter. A failed account does not overwrite its previous valid state and does not stop other accounts.
The source includes an account_checked pay-per-event adapter: one event is charged only after a successfully monitored account has written output and committed state. Final Store pricing must be configured in Apify Console; no price is invented in code.
Scheduling
Create an Apify Task with your input, run it once to establish the baseline, then attach an Apify Schedule. Daily checks suit slower brand accounts; several checks per day provide better observed growth resolution for fast-moving accounts.
viewsPerHour should always be interpreted as average observed growth between checks, not exact real-time velocity. The MVP prioritizes deterministic breakout thresholds over noisy velocity alerts.
Data and privacy
Only publicly available TikTok profile and post metadata is processed. Use the Actor lawfully, respect TikTok's terms, and comply with privacy and data-protection requirements applicable to your use case. Private or restricted accounts are not accessible.
Known limitations
- TikTok public web access is unofficial and can change without notice. Challenge or malformed responses are treated as failures, never as empty real results.
- The unsigned creator embed exposes only a limited recent window (commonly around 10, with an observed upper bound near 22), even if
maxVideosPerAccountis higher. There is no full-history pagination in this MVP. - Metrics reflect what TikTok served at check time and can be cached, delayed, rounded, or geographically personalized.
- Private, deleted, age-restricted, region-restricted, and unavailable posts cannot be monitored.
- Bio links are currently not exposed reliably by the unsigned embed route and therefore remain
null; they are never invented. - Hashtags are normalized from public captions. Sound metadata can be absent for unavailable or partially enriched posts.
- A deleted video is retained in capped known history but no disappearance event is emitted.
- Stable numeric account/video IDs are used when TikTok exposes them; username changes can be tracked only when the supplied public route continues to resolve the same account ID.
Output storage
- Default Dataset: events and optional snapshots
- Default Key-Value Store
OUTPUT: run summary and isolated account errors - Named Key-Value Store
tiktok-competitor-monitor-state(or a Task-ID-specific store): capped cross-run monitoring state (up to 100 known videos per account)
No secrets are required. Optional Apify Proxy settings are accepted through the standard proxy input.