TikTok Outlier Finder: TikTok Viral Videos vs Creator Median
Pricing
from $2.56 / 1,000 videos
TikTok Outlier Finder: TikTok Viral Videos vs Creator Median
Find TikTok videos that beat a creator's normal views for TikTok competitor analysis or your niche: outlier score against the creator's median, views, likes, shares, caption, hashtags and sound. $0.0032 per video analysed: 100 videos cost $0.32. No login.
Pricing
from $2.56 / 1,000 videos
Rating
0.0
(0)
Developer
fortbrand
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Security
Limited permissionsShare
For creators, agencies and brands finding unusually successful public TikTok videos, with their captions, hashtags and sounds.
$0.0032 per video analysed. Analysing 100 videos costs $0.32 before tier discounts, plus Apify's small start fee. Enter public profiles and get scored videos directly. No TikTok login, account cookies or separate scraper required.
Compare each video's views with its creator's own median, flag scores above your threshold and read a free creator summary with the baseline and top outlier.
What you get
| Field | Meaning |
|---|---|
summary | A readable answer with the score, views and median |
videoUrl, postUrl, videoId | Public video link, compatible post-link alias and stable video ID |
creator, creatorUrl, creatorFollowers | Public handle, profile link and follower count |
postedAt, postedDate | Publication time in UTC and calendar date |
views, likes, comments, shares, saves | Public video counts exposed by TikTok |
durationSeconds | Duration reported by a public list; photo posts can have zero duration |
durationSource, durationSourceField, durationSourceUrl | Creator-list or hashtag-list surface and field supplying duration |
durationVerified | False: duration is not cross-checked against the public video page |
caption, hashtags, hook | Caption text, hashtags and first caption line |
soundTitle, soundId | Public sound information |
creatorMedianViews | Median views over the creator's selected recent sample |
creatorMedianSample | Number of videos with a known view count in that baseline |
outlierScore | Video views divided by the creator median |
isOutlier | Whether the score reaches your minOutlierScore |
engagementRate, engagementRatePct | Percentage: 100 x (likes + comments + shares) / views |
viewsToFollowers | Views divided by the creator's follower count |
rankInCreator | Rank among that creator's returned scored videos, highest score first |
baselineStart, baselineEnd | Oldest and newest publication times in the baseline sample |
baselineStatus | Whether the sample supports a score |
foundVia | Requested profile or hashtag that found the video |
scrapedAt | Run snapshot timestamp (UTC), fixed across restart recovery |
Shared fields match the TikTok Sponsored Posts family. Both engagement fields use percentage units: 9.5 means 9.5%.
Each free type: "creator summary" row has recordType: "SUMMARY", sample size, median, delivered count, outlier count, top outlier and notes. The key-value store contains the run-level SUMMARY and an OUTLIERS record sorted by score.
How the score works
The Actor reads public chronological video lists and removes repeated IDs. It keeps videos inside your optional date window, then calculates the median of their known view counts. If TikTok explicitly marks a video as pinned, that video is excluded from the baseline but can still be scored.
The median is the middle sorted count, averaging the middle pair for an even sample. Every video from a creator uses this same denominator, including itself.
outlierScore = views / creatorMedianViews
A score of 3 means three times the median. The default threshold marks scores of at least 3; raising it to 10 selects larger breakouts. The threshold changes the flag and export. All scored videos are returned and charged.
A score needs at least three videos with known views and a positive median. Smaller samples and zero medians produce free, unscored rows. Missing metrics remain null.
How to use it
- Add public handles or full TikTok profile URLs to
profiles. - Choose how many recent videos to analyse per profile and the outlier threshold.
- Start the run, read the creator summaries and open the OUTLIERS view or JSON export.
The prefill uses duolingo and redbull, 30 videos each. Its 4 November 2026 test returned 60 videos and 11 outliers in 33.263 seconds. Counts and conditions can change.
Basic input:
{"profiles": ["duolingo", "redbull"],"maxVideosPerProfile": 30,"minOutlierScore": 3}
Larger sample:
{"profiles": ["espn", "nba", "nfl"],"maxVideosPerProfile": 100,"minOutlierScore": 5,"postedAfter": "2026-10-01"}
Input reference
| Input | Default | What to enter |
|---|---|---|
profiles | Form prefill: two public brands | Handles, @handles, or HTTPS TikTok profile URLs; up to 200 profiles |
hashtags | None | Optional public hashtags; up to 10, without needing a profile list |
maxVideosPerProfile | 30 | Videos per explicit profile, 1 to 2,000; hashtag baselines cap at 30 |
minOutlierScore | 3 | Minimum views-to-median ratio for the outlier flag, from 1 to 1,000 |
postedAfter | None | Inclusive ISO date or datetime; applies to both videos and their baseline |
proxyConfiguration | Automatic datacenter route | Optional Apify proxy for HTTP requests |
allowAutomaticProxyFallback | true | Allow automatic routing if a selected residential connection fails; false keeps residential HTTP routing strict |
Aliases: creators, usernames or startUrls for profiles; dateFrom for postedAfter. Duplicates are merged and malformed entries become free notes.
Dates without a time mean midnight UTC. Keep date windows consistent.
Find outliers from a hashtag
Hashtag mode discovers up to 30 public videos per tag, or your smaller video limit. Each author's latest public videos supply a baseline of up to 30 videos. Only the discovered hashtag videos are delivered and charged; baseline-only videos are free.
{"hashtags": ["wigs"],"maxVideosPerProfile": 30,"minOutlierScore": 3}
Combine hashtags and profiles if useful. Explicit profiles return their recent sample; discovered authors contribute hashtag videos. Video IDs are deduplicated across inputs.
Example output
A real scored video from the 4 November 2026 test, with the caption omitted here for brevity:
{"summary": "@duolingo: 5.49x the creator median (4,300,000 views / 782,950); outlier","type": "video","videoId": "7704019694994345230","videoUrl": "https://www.tiktok.com/@duolingo/video/7704019694994345230","creator": "@duolingo","creatorFollowers": 18413596,"views": 4300000,"likes": 1300000,"comments": 23300,"shares": 400700,"creatorMedianViews": 782950,"creatorMedianSample": 30,"outlierScore": 5.492049,"isOutlier": true,"soundTitle": "original sound"}
Filter type == "video" for video-only imports. Console views show analysed videos, OUTLIERS, creator summaries and content details. The Output tab links to results, outlier JSON and the run summary.
Pricing and spending limits
| Apify tier | Price per scored video |
|---|---|
| Free | $0.0032 |
| Bronze | $0.00304 |
| Silver | $0.00288 |
| Gold and above | $0.00256 |
| Example | Videos delivered | Approximate list-price charge |
|---|---|---|
| One creator, 30 videos | 30 | $0.10 |
| Two creators, 30 videos each | 60 | $0.19 |
| Ten creators, 30 videos each | 300 | $0.96 |
| A larger sample | 1,000 | $3.20 |
Apify's start fee is $0.00005 per GB of run memory, with a minimum of one start event. Platform compute and proxy usage are included in this Actor's price. There is no additional AI charge.
Summaries, notes, duplicates, unavailable profiles and unscored videos have no video charge. Baseline-only videos in hashtag mode are not charged. The free Apify plan has the same input limits as paid plans.
Set a maximum total charge in run options. It stops at the spending limit. A cap reduces delivered rows without changing the prepared baseline.
Monitor creators on a schedule
Save the inputs as an Apify task and attach a daily or weekly schedule. Previously seen videos can return with updated counts and be charged again.
Store history by (videoId, scrapedAt), or replace the latest snapshot by videoId. A success webhook can load outliers into Make, n8n, Zapier, Slack or Google Sheets.
Within a run, saved snapshots protect the sample across restarts. Accepted video charges are reconciled before delivery resumes.
API examples
Python:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("vant47/tiktok-outlier-finder").call(run_input={"profiles": ["duolingo", "redbull"],"maxVideosPerProfile": 30,"minOutlierScore": 3,})for row in client.dataset(run["defaultDatasetId"]).iterate_items():if row.get("type") == "video" and row.get("isOutlier"):print(row["outlierScore"], row["videoUrl"])
JavaScript:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('vant47/tiktok-outlier-finder').call({profiles: ['duolingo', 'redbull'],maxVideosPerProfile: 30,minOutlierScore: 3,});const { items } = await client.dataset(run.defaultDatasetId).listItems();const outliers = items.filter(row => row.type === 'video' && row.isOutlier);console.log(outliers.map(row => [row.outlierScore, row.videoUrl]));
curl:
curl -X POST \"https://api.apify.com/v2/acts/vant47~tiktok-outlier-finder/run-sync-get-dataset-items" \-H "Authorization: Bearer <YOUR_APIFY_TOKEN>" \-H "Content-Type: application/json" \-d '{"profiles":["redbull"],"maxVideosPerProfile":30}'
Scheduled integrations can use the asynchronous run endpoint and success webhooks. Download JSON, CSV or Excel from the dataset.
Use with AI agents (MCP)
Connect an Apify-compatible assistant to https://mcp.apify.com and ask it to run vant47/tiktok-outlier-finder. Ask: "Compare the latest 30 TikTok videos from these public profiles, show videos above three times each creator's median, and include caption, hashtags and sound."
Read scores with creatorMedianViews and creatorMedianSample so the comparison stays inspectable. Shared fields also connect with TikTok Sponsored Posts for branded-content research.
Duration keeps the creator-list value when the video is in the baseline. A hashtag candidate absent from that baseline keeps its hashtag-list value. Source provenance follows the value actually used, independently of foundVia discovery contexts. One of ten saved November 4 handchecks (video 7704019694994345230) disagreed with its video page; the saved evidence does not establish why. No reconciled playback duration is claimed.
Limits
- Apify rejects incorrect JSON field types before a run starts. Invalid profile entries or dates that reach the Actor become free notes.
- Residential profile requests can fall back to an automatic datacenter connection; browser discovery uses that automatic connection. Set
allowAutomaticProxyFallback: falsefor strict residential HTTP routing. Inaccessible profiles or hashtags then return free notes. - Public, signed-out TikTok data only. Private, deleted, restricted or unavailable posts cannot be collected. No login, account-cookie import or CAPTCHA solving is supported.
- The baseline is the returned recent sample, not the creator's lifetime performance. TikTok can stop its public timeline before your requested maximum, and some fields or videos can be unavailable. Creator statuses and notes identify incomplete samples.
- Hashtag ordering is TikTok's public ordering, not a guaranteed recent-first feed or complete hashtag census. Up to 30 candidate videos per tag are discovered, then scored against their authors' profile samples. A refused hashtag route returns a free note.
- View and engagement counts change and TikTok sometimes rounds them. The public profile card, video page and list endpoint can update at different moments. Unknown fields stay
null. - Scores are descriptive, not a prediction of future reach or evidence that a video should be copied. New videos have had less time to accumulate views; the score does not adjust for age, paid distribution or audience differences.
- A sample below three usable videos or a zero median has no valid score. Pinned posts are excluded only when TikTok explicitly provides that marker; the chronological feed does not always provide a pinned flag.
- Dates filter the baseline as well as the output. Changing the date or sample size changes the denominator, and therefore the score.
- TikTok's terms restrict automated extraction. Use public data responsibly and comply with the terms and laws that apply to your use. This is an independent tool with no affiliation to TikTok.
FAQ
Why use the median rather than average views? The median reduces the influence of a single unusually large hit. The same baseline is shown on every returned video from a creator.
Does changing the threshold reduce the bill? The threshold changes the outlier flag and export. The charge applies to every delivered video with a valid score, including those below the threshold.
Are saves part of engagementRate? No. It follows the sibling Actor's convention: likes, comments and shares divided by views, expressed as a percentage. Saves are supplied separately when TikTok exposes them.
Can I use it repeatedly for competitors? Yes. Save the same inputs as a task, schedule it, and retain snapshots using the stable video ID and collection timestamp.
Where are the outliers? In the OUTLIERS dataset view and the OUTLIERS JSON record linked from the Output tab. The run summary also gives each creator's highest-scoring delivered outlier.
What happens if no useful data is found? You receive free notes or creator summaries. There is no video analysis charge without a delivered video carrying a valid score; Apify's start fee still applies.
Is a reboot charged as a second analysis? Within the same run, saved rows and settled billing counts are reconciled before delivery resumes. A separate new run is a new analysis of current data.
TikTok outlier finder, TikTok viral videos, TikTok competitor analysis, creator baselines.