Tiktok Viral Video Finder
Pricing
from $3.20 / 1,000 video results
Tiktok Viral Video Finder
TikTok Viral Video Finder finds high-performing TikTok videos by trend, keyword, hashtag, or creator, with views, likes, comments, shares, and viral scoring. Use it for content research, competitor monitoring, creator scouting, and trend analysis.
Pricing
from $3.20 / 1,000 video results
Rating
0.0
(0)
Developer
Delowar Munna
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share

Find high-performing public TikTok videos by trend, keyword, hashtag, or seed creator with viral scoring, qualification fields, and discovery lineage.
What this Actor does
TikTok Viral Video Finder is an Apify Actor for viral-content discovery, shortlist building, and analytics workflows. It collects public TikTok video records and returns flat, CSV-friendly rows designed for datasets, Sheets, Airtable, BI tools, and AI pipelines.
This Actor helps users:
- find breakout or high-momentum public TikTok videos
- monitor videos around keywords, hashtags, and creators
- identify recent videos worth researching
- export structured video rows for analytics and automation
Supported discovery inputs
includeTrending: collect currently trending public TikTok videoskeywords: discover videos from TikTok video searchhashtags: discover videos from hashtag pagesseedCreators: collect recent public videos from specific creator profiles
Behavior:
- if users provide any discovery input, only those provided inputs are used
- if users leave all discovery inputs empty, the Actor falls back to trending-only discovery
Why use this Actor
- video-first output instead of creator-first lead output
- viral-style scoring and transparent ranking reasons
- lineage fields showing how each video was found
- mixed discovery in one run
- flat, analytics-ready output
- run summary in the default key-value store under
SUMMARY - pay-per-event pricing based on returned video rows
Example input 1
Mixed discovery for trend research:
{"includeTrending": true,"keywords": ["skincare routine", "ugc creator"],"hashtags": ["beautytok", "skincaretips"],"seedCreators": ["@examplecreator"],"maxVideos": 200,"country": "AU","timePeriod": "7d","sortBy": "viralScore","minViews": 10000,"minLikes": 1000,"minComments": 50,"minShares": 25,"minEngagementRate": 0,"verifiedCreatorsOnly": false,"languageHint": "en","includeCreatorFields": true,"includeScoring": true,"deduplicateVideos": true,"stopOnError": false,"emitPartialResults": true,"includeRawPayload": false,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Example input 2
Hashtag-only shortlist with stricter filtering:
{"includeTrending": false,"hashtags": ["beauty", "makeup"],"maxVideos": 100,"timePeriod": "7d","sortBy": "viralScore","minViews": 50000,"minLikes": 5000,"minComments": 100,"minShares": 50,"verifiedCreatorsOnly": false,"includeCreatorFields": true,"includeScoring": true,"deduplicateVideos": true,"emitPartialResults": true,"includeRawPayload": false}
Example input 3
Seed creator monitoring:
{"includeTrending": false,"seedCreators": ["@mikaylanogueira","https://www.tiktok.com/@goodwipes"],"maxVideos": 50,"timePeriod": "30d","sortBy": "createTime","includeCreatorFields": true,"includeScoring": true,"deduplicateVideos": true,"emitPartialResults": true}
Output
Each dataset row represents one public TikTok video.
Core fields
videoIdvideoUrlcaptioncreateTimedurationSecondsvideoThumbnailUrlplayCountlikeCountcommentCountshareCountsaveCount
Creator fields
creatorUsernamecreatorProfileUrlcreatorIdcreatorDisplayNamecreatorVerifiedcreatorFollowersCountcreatorFollowingCountcreatorLikesCount
Classification and lineage
hashtagsmentionssoundTitlesoundIdsoundAuthorregionlanguageisAddiscoveredViasourceKeywordssourceHashtagssourceSeedCreatorssourceCountrysourceTimePerioddiscoveryCount
Qualification fields
viralScoreviralScoreReasonengagementRateApproxvelocityHintisRecentisBreakoutCandidatequalificationBucketqualificationReason
Run metadata
positionscrapedAtisPartialerrorTypeerrorMessage
If includeRawPayload is enabled, the row can also include rawPayload.
Output views
The Actor defines these dataset tabs:
overviewlineagequalificationerrors
Overview table view

Overview tab example
{"position": 1,"videoUrl": "https://www.tiktok.com/@jfgtdmdm369/video/7617058535091834142","caption": "#fyp #viral EDIT: GUYS ITS A JOKE IV HAD THIS BIRD SINCE I WAS 2!!! ITS A MATING CALL!! HES A SWEETHEART. I DIDNT THINK MY VIDEO WOULD GO VIRAL","creatorUsername": "jfgtdmdm369","playCount": 2200000,"likeCount": 402400,"commentCount": 1540,"shareCount": 34300,"viralScore": 83,"qualificationBucket": "high-opportunity","velocityHint": "medium","scrapedAt": "2026-03-21T07:07:59.168Z"}
Lineage tab example
{"videoUrl": "https://www.tiktok.com/@stellvrr/video/7617787996905196818","creatorUsername": "stellvrr","discoveredVia": ["hashtag"],"sourceKeywords": [],"sourceHashtags": ["beauty"],"sourceSeedCreators": [],"sourceCountry": null,"sourceTimePeriod": "7d","discoveryCount": 1}
Qualification tab example
{"videoUrl": "https://www.tiktok.com/@mikaylanogueira/video/7619389493778369805","creatorUsername": "mikaylanogueira","createTime": "2026-03-20T17:22:53.000Z","engagementRateApprox": 0.1058,"viralScore": 67,"viralScoreReason": "high view count, strong likes, active comments, share activity, healthy engagement rate, recent post, high velocity","isRecent": true,"isBreakoutCandidate": true,"qualificationBucket": "high-opportunity","qualificationReason": "Recent or strong-performing video with multiple viral signals"}
Errors tab example
This tab is populated only when emitPartialResults is enabled and a discovery path fails or returns no videos. The sample output file used for this README contained no error rows, so the example below shows the expected structure.
{"discoveredVia": ["hashtag"],"sourceKeywords": [],"sourceHashtags": ["beauty"],"sourceSeedCreators": [],"isPartial": true,"errorType": "DiscoveryError","errorMessage": "No videos found from this discovery path","scrapedAt": "2026-03-21T07:07:59.168Z"}
Full output example
{"videoId": "7617058535091834142","videoUrl": "https://www.tiktok.com/@jfgtdmdm369/video/7617058535091834142","caption": "#fyp #viral EDIT: GUYS ITS A JOKE IV HAD THIS BIRD SINCE I WAS 2!!! ITS A MATING CALL!! HES A SWEETHEART. I DIDNT THINK MY VIDEO WOULD GO VIRAL","createTime": "2026-03-14T10:38:39.000Z","durationSeconds": 10,"videoThumbnailUrl": "https://p16-common-sign.tiktokcdn-us.com/tos-useast8-p-0068-tx2/oYfTE6PGaAyfCjuXAILhaOqGpeZZDrnIIICC1I~tplv-tiktokx-origin.image?...","playCount": 2200000,"likeCount": 402400,"commentCount": 1540,"shareCount": 34300,"saveCount": 20286,"creatorUsername": "jfgtdmdm369","creatorProfileUrl": "https://www.tiktok.com/@jfgtdmdm369","creatorId": "7617037932486771725","creatorDisplayName": "Linda","creatorVerified": false,"creatorFollowersCount": 411,"creatorFollowingCount": 12,"creatorLikesCount": 404700,"hashtags": ["fyp", "viral"],"mentions": [],"soundTitle": "Dr Rick Trager Chase Theme","soundId": "7450116884730563360","soundAuthor": "K Crew","region": null,"language": "en","isAd": false,"discoveredVia": ["trending"],"sourceKeywords": [],"sourceHashtags": [],"sourceSeedCreators": [],"sourceCountry": null,"sourceTimePeriod": "7d","discoveryCount": 1,"viralScore": 83,"viralScoreReason": "high view count, strong likes, active comments, share activity, high engagement rate, recent post, outperforming creator size","engagementRateApprox": 0.2084,"velocityHint": "medium","isRecent": true,"isBreakoutCandidate": true,"qualificationBucket": "high-opportunity","qualificationReason": "Recent or strong-performing video with multiple viral signals","position": 1,"scrapedAt": "2026-03-21T07:07:59.168Z","isPartial": false,"errorType": null,"errorMessage": null}
Viral score notes
viralScore is a heuristic, not an official TikTok metric. It uses public signals such as:
- views
- likes
- comments
- shares
- approximate engagement rate
- recency
- discovery overlap across multiple inputs
- creator-size context when available
velocityHint is derived from recency and public performance. qualificationBucket is a shortlist-oriented interpretation of the score and context.
Summary output
The Actor also writes a run summary to the default key-value store under SUMMARY.
Typical summary fields include:
runStatusstartedAtfinishedAtdurationSecondstotalVideosReturnedtotalVideosAfterDeduplicationtotalErrorRowsaverageViewsaverageLikesaverageCommentsaverageSharestopHashtagstopCreatorstopSoundsvideosByQualificationBucketvideosByCountryvideosByTimeBucketdiscoveryInputsfilterstotalRowsPushedspendingLimitReached
Pricing
This Actor uses pay-per-event pricing.
- pricing event:
video-result - charging model: one billable event per returned video row
The Actor also respects user-configured spending limits and stops billable output when the charge limit is reached.
Use cases
- viral content research
- competitor monitoring
- trend detection
- UGC inspiration
- creator scouting
- reporting and analytics
- AI enrichment pipelines
Notes and limitations
- Public TikTok data only.
- Viral score is heuristic and should not be treated as predictive certainty.
- Available fields can vary by discovery path and TikTok response shape.
- Some fields such as
saveCount,region,language, andisAddepend on public response availability and may be missing or approximate. - Partial rows can be emitted when a discovery path fails or returns no videos.
- Residential proxies are recommended for more stable TikTok access.