TikTok Engagement Bot Check - Real People Or Bots? avatar

TikTok Engagement Bot Check - Real People Or Bots?

Pricing

from $7.00 / 1,000 comment thread reads

Go to Apify Store
TikTok Engagement Bot Check - Real People Or Bots?

TikTok Engagement Bot Check - Real People Or Bots?

"Every comment says fire emoji and nothing else. Is any of this real?" See who keeps turning up under a TikTok creator's posts - the same handles again and again is the one thing a single video can never show you.

Pricing

from $7.00 / 1,000 comment thread reads

Rating

0.0

(0)

Developer

Tarek Etman

Tarek Etman

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

4 days ago

Last modified

Share

reapX - the record of what changed

Real People, Or A Bot Farm?

"The comments are all fire emojis. Am I about to pay for an audience that does not exist?"

An engagement pod looks exactly like a hit. Huge comment counts, instant replies, a rate that beats anyone in your budget. The tell is never one video - it is the same handles showing up under post after post, and nothing that reads a single comment section can see it.

So we read across their posts, not down one. You get the accounts that keep reappearing by name, how many of their posts each one turned up under, how much of the thread is one word and an emoji, and where that puts them among creators of the same size.

What comes back reads like this:

"9.1% of the comments across @gymshark's last 8 posts come from the same 9 accounts, about what creators their size get. On this one we read 32 comments of this video's 531, and only 3.1% of them are a single word or an emoji."

That first number is the one that decides whether you pay them - and the handles behind it are on the row, so you can open them and see for yourself.

The comparison nobody else has

Every share we return is placed against 157 TikTok creators we measured ourselves, split by follower size, so "9.1%" stops being a number and becomes a position:

Creators this sizeTypical share of comments from repeat accounts
1k - 10k8.4%
10k - 100k6.1%
100k - 1M3.7%
1M - 10M4.7%
10M+3.5%

Small accounts have regulars; huge ones do not. A 3% share means one thing on a 5,000-follower creator and something else entirely on one with 20 million, which is why the row carries the percentile inside their own band and not a single pass-or-fail line.

⬇️ Input

{
"handles": ["gymshark", "khaby.lame"],
"maxPosts": 8,
"maxComments": 50
}
FieldTypeDefaultDescription
handlesArray["gymshark", "khaby.lame"]TikTok handles to read across their recent posts. A video link works too, and checks just that one.
maxPostsInteger8How many of each creator's recent posts to compare. More posts makes the pattern harder to argue with.
maxCommentsInteger50How deep to read into each comment section.

⬆️ Output

One row per video, so a run over one creator returns their whole recent set with the cross-post numbers on every row.

FieldTypeDescription
whatIFoundStringThe answer in one line, ready to paste into a client deck.
awemeIdStringTikTok's own video id. The per-row key.
usernameStringThe creator handle exactly as TikTok returned it.
recurringCommentSharePctNumberShare of every comment read that came from accounts appearing under more than one of their posts.
recurringCommentersNumberHow many accounts those are.
recurringCoreOnThreePlusNumberHow many turn up under three posts or more.
topRecurringArrayThose handles, with the number of posts each commented on.
peerPercentile / peerBand / peerSampleSizeNumber / StringWhere they sit among creators of the same follower size, and how many we measured.
standingStringThat placing in words.
fillerCommentSharePctNumberShare of this video's comments that are one word or an emoji and nothing else.
copiedCommentSharePctNumberShare repeating the same wording from more than one account.
commentsReadHere / totalCommentsNumberHow many we read here, and how many the post carries.
commentsPerThousandViewsNumberThis post's comment rate against its own view count.
sampleCommentsArrayFive real comments with handle, likes and timestamp.
postsRead / commentsRead / distinctCommentersNumberWhat the cross-post comparison spans.
recurrenceReasonStringWhy a comparison is absent, when it is. Never a guess in its place.
computedStatusObjectWhere every value on the row came from.

Worked output example

A real row from run lxCScHBtnBF6M0DDF, trimmed only for length:

{
"whatIFound": "9.1% of the comments across @gymshark's last 8 posts come from the same 9 accounts, about what creators their size get. On this one we read 32 comments of this video's 531, and only 3.1% of them are a single word or an emoji.",
"checkStatus": "checked",
"awemeId": "7661334167342320918",
"username": "gymshark",
"videoUrl": "https://www.tiktok.com/@gymshark/video/7661334167342320918",
"playCount": 711900,
"followerCount": 6600000,
"postsRead": 8,
"commentsRead": 266,
"distinctCommenters": 232,
"recurringCommenters": 9,
"recurringCoreOnThreePlus": 3,
"recurringCommentSharePct": 9.1,
"topRecurring": [
{ "handle": "sindelar__", "postsCommentedOn": 5 },
{ "handle": "maronfitt", "postsCommentedOn": 4 },
{ "handle": "aesthetics17001", "postsCommentedOn": 3 }
],
"peerBand": "1M-10M",
"peerSampleSize": 50,
"peerMedianSharePct": 4.68,
"peerPercentile": 70,
"peerBeatenCount": 35,
"standing": "about what creators this size get",
"commentsReadHere": 32,
"totalComments": 531,
"fillerCommentSharePct": 3.1,
"copiedCommentSharePct": 0,
"commentsPerThousandViews": 0.75,
"sampleComments": [
{ "author": "sariminister", "text": "Does it come with David Laid?", "likes": 1840, "postedAt": "2026-07-11T18:11:10.000Z" }
],
"scrapedAt": "2026-08-06T19:34:57.923Z"
}

How it works

  1. The whole recent set in one request. A creator's last posts come back together, with the real view count on each, so comparing across them costs nothing extra.
  2. Every comment section read on its own. Real text, the commenter's handle, the like count and the timestamp - not a summary of them.
  3. The arithmetic that needs the set. Who appears under more than one post, how many posts each, and what share of everything they wrote - then placed against 157 creators we measured the same way, inside the same follower band.
  4. The evidence stays on the row. The handles, five real comments, the counts and the source of every value, because an agency cannot use a number it cannot defend.

❓ FAQ

What actually gives a pod away?

Repetition across posts. One account under one video is a fan; the same twenty under eight videos is an arrangement. That is why this reads a creator's set rather than a single thread.

Does a high number prove someone bought engagement?

No, and we do not say it does. A devoted fandom makes the same shape as a bought pod - the difference is who the accounts are, so we hand you the handles and you look. Names like user0998486603 under every post read differently from a fan-edit account.

What if a creator has only posted a couple of times?

Then the cross-post comparison is not on the row, and recurrenceReason says so. We would rather return nothing than a pattern read off two posts.

Can it run with no input?

Yes. Every field has a working default, so an empty call returns a real answer.

Can I check one specific video?

Paste its link into handles. You get that comment section read in full; the cross-post numbers need a creator.

💬 Your feedback

Need a different depth, a bigger peer sample, or the recurring accounts pushed somewhere? reapxdev@proton.me.


Unofficial - not affiliated with TikTok. reapx · reapx.dev · reapxdev@proton.me