MindCase
Saurabh Shubham

How to Analyze 500 TikTok Videos to Find What Actually Goes Viral

View count alone can't tell you why a video worked. Engagement rate relative to views, and whether the reach was organic, can.

tiktokproduct
How to analyze 500 TikTok videos to find what actually goes viral

"This video has 2 million views" tells you almost nothing on its own. A video can hit 2 million views because 40 million people saw it and 5% engaged, or because TikTok boosted it as a paid ad to a fraction of that audience. Those are different outcomes that look identical in a single number.

Below is how to pull a real sample of videos in a niche, score them on engagement relative to views instead of raw counts, and separate organic reach from paid reach before you draw any conclusion about what "worked."

If you're an agent (or building one) reading this rather than a human, the full machine-readable schema for every endpoint below lives at mindcase.co/skills.md.

What actually separates a viral video from a normal one?

Not the view count by itself. Three things matter more:

  • Engagement rate, not engagement volume. A video with 50,000 likes on 5 million views (1%) and one with 50,000 likes on 200,000 views (25%) are not the same result, even though "50,000 likes" sounds identical in a recap.
  • Whether the reach was organic. TikTok Posts API returns isAd and isSponsored flags on every row. A boosted post reaching a lot of people tells you an ad budget worked, not that the content itself resonated — mixing the two into one "top performers" list quietly credits spend as creative insight.
  • Saves relative to likes. A like costs a viewer nothing. A save means someone expects to come back to the video, which is a stronger signal for anything instructional or reference-worthy (a recipe, a routine, a how-to) than raw like count alone.

How do you build a sample to analyze?

Say you sell resistance bands and want to know what actually drives engagement in home-workout content, not just which single video happened to blow up.

TikTok Posts API takes a hashtag, profile, sound, post URL, or free-text search query. To build a sample bigger than one hashtag can supply, run it across several related search queries in your niche and combine the results — the response includes sourceQuery on every row, so you can still tell which term surfaced which video after merging.

curl -X POST "https://api.mindcase.co/v1/data/tiktok/posts/run?wait=true" \
-H "Authorization: Bearer $MINDCASE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "params": {
    "searchQueries": "resistance band workout",
    "resultsPerPage": 100
  }
}'

# $0.002 per post returned

Run that same call across five related queries — "resistance band workout," "home glutes workout," "resistance band legs," and a couple more — at 100 results each, and you have a 500-video sample built from real search results, not one lucky hashtag. Each row returns 27 fields: views, likes, comments, shares, saves, postedDate, isAd, isSponsored, durationS, and more.

How do you separate organic virality from paid reach?

Filter on isAd and isSponsored before you compute anything else. Split your 500 rows into two groups — organic and paid — and analyze them separately. A resistance-band ad with a high engagement rate tells you the creative and targeting worked. An organic video with a high engagement rate tells you something about the content itself that you can actually learn from and repeat without paying for reach again.

Mixing the two groups produces the exact wrong lesson: a well-targeted ad outscoring the field on raw engagement doesn't mean "that content style goes viral" — it means the ad spend did its job.

How do you score engagement across videos with very different view counts?

Raw like counts favor whatever video happened to reach the most people. Compare on a rate instead:

engagement_rate = (likes + comments + shares + saves) / views

Rank your organic subset by engagement_rate, not by raw likes. A video with 40,000 views and a 12% engagement rate is a stronger content signal than one with 2 million views and a 0.8% rate — the second one reached more people, but a much smaller share of them cared enough to act. If you're specifically researching instructional content, weight saves more heavily in the formula than likes; a save is the field most correlated with "I want to do this later," which is the actual behavior a workout-content brand cares about.

What can't you get from Mindcase?

Two cases.

Why a specific video's algorithm distribution worked. This returns what a video's public metrics and metadata are, not TikTok's internal ranking signals (watch-through rate, replay rate, or why the For You page chose to show it to a given user). Engagement rate is a strong public proxy for resonance — it isn't the same thing as the platform's own distribution model.

A sample larger than what real posts exist for your search terms. Coverage depends on how much content actually exists for a given query. A narrow or brand-new niche may not return enough rows across five or six queries to reach 500 — that's a real ceiling set by how much content is out there, not a limit Mindcase adds on top.

Which endpoint should you use for which job?

EndpointInputPriceBest for
TikTok PostsHashtag, search term, profile, sound, or post URL$0.002 / postBuilding a sample to analyze for engagement patterns
TikTok ProfilesKeyword or handle$0.0025 / profileChecking whether a top performer is an established creator or a one-off
TikTok ShopSearch term$0.015 / productChecking if a viral product category already has listings

FAQ

Trend tracking follows one hashtag over time to catch it while it's rising. This builds a wider point-in-time sample across several related search terms to find what engagement patterns hold up across many videos at once — a different question with a different analysis.

A boosted post's reach comes from ad spend, not content resonance. Scoring organic and paid posts together credits spend as if it were a creative insight.

$0.002 per post returned. Five search queries at 100 results each is $1 for the full sample.

No. Requests run against public post data — no login or app installation needed.