TikTok Video analytics and fake-view check API
Video analytics and fake-view check from TikTok, returned as JSON rows you can save to CSV.
Analytics fields (mode videoAnalytics)
type is videoAnalytics: videoId, totals playCount, likeCount, commentCount, collectCount, daily (the last 14 days, oldest first: date, views, likes, comments, collects gained that day), summary (TikTok's one-line reading) and commentKeywords (frequent phrases in the comments with example comments; null if unavailable). With includeFakeViewScore a second record of type fakeViewScore follows: videoId, fakeScore (0 to 100), confidence, isSuspicious, estimatedFakeViews, fakeViewPercentage, mainReason, componentScores, suspiciousFeatures, estimatedOrganicViews, trafficPool, expectedTrafficPool, creatorTrustScore. A video with no analytics (unknown or too new) returns nothing and gets no fake-view check; after the first video that gets no score, no further scores are requested in the run.
The input that produced this run
Mode videoAnalytics. Parameters as sent, with what each one does.
| Parameter | Value | What it does |
|---|---|---|
mode | "videoAnalytics" | What to get: videos by keyword, hashtag, profile, sound, repost list, playlist, photo search or explore category; profiles by keyword or similar to a profile; sounds or places by keyword; the sounds a profile has made;... |
videos | ["7694335322922044703"] | Video IDs (7694335322922044703) or full video links (https://www.tiktok.com/@khaby.lame/video/7694335322922044703). Short vm.tiktok.com, vt.tiktok.com or tiktok.com/t/ share links work in videoDetail mode; for... |
includeFakeViewScore | true | Also run a fake-view check on each video whose analytics were found. It adds one extra record per video, charged at $0.03 (the 'audit' event). |
maxResults | 10 | Maximum items for each keyword, hashtag, profile, sound, video or category (up to 1000). Video details, profile details and analytics return one record per input, so the limit rarely matters there. A search inside... |
9 fields in every videoAnalytics
From the first record of the run above. Identity fields of ordinary users are masked on this site.
| Field | Type | Example |
|---|---|---|
type | str | videoAnalytics |
videoId | str | 7694335322922044703 |
playCount | int | 7886495 |
likeCount | int | 736174 |
commentCount | int | 13345 |
collectCount | int | 42616 |
daily | list | [{"date": "2026-10-08", "views": 4186858, "likes": 547390, " |
summary | str | This post received more likes per view than most other po... |
commentKeywords | list | [{"keyword": "first comment", "examples": ["First Comment", |
A real run, 9 fields per record
Run on 2026-11-09 with input {"mode": "videoAnalytics", "videos": ["7694335322922044703"], "includeFakeViewScore": true, "maxResults": 10}. Personal fields of ordinary users are masked here.
| playCount | likeCount | commentCount | collectCount | summary |
|---|---|---|---|---|
| 7886495 | 736174 | 13345 | 42616 | This post received more likes per view than most other po... |
All 9 fields in one record
typevideoAnalyticsvideoId7694335322922044703playCount7886495likeCount736174commentCount13345collectCount42616dailysummaryThis post received more likes per view than most other po...commentKeywords
What one videoAnalytics costs
Start fee (run-start) · $0.00005 · For each keyword, hashtag, profile, sound or category you give it, and for each video (comments), profile (followers, following) or keyword (keywordSuggest) in those modes. In videoDetail, profile and videoAnalytics it is charged once per run, not per input. The first one is charged when the first request succeeds, even if that request returns nothing. Each further one is charged before that input's first request and is kept even if that input then fails or returns nothing.
Run this request yourself
The same input as above, three ways.