TikTok Follower Count Scraper & TikTok User Info - Exact Counts avatar

TikTok Follower Count Scraper & TikTok User Info - Exact Counts

Pricing

from $5.84 / 1,000 profile returneds

Go to Apify Store
TikTok Follower Count Scraper & TikTok User Info - Exact Counts

TikTok Follower Count Scraper & TikTok User Info - Exact Counts

For influencer vetting, sponsorship reporting and growth dashboards: the exact follower, like and video counts TikTok publishes, not the rounded ones on screen. Of 14 profiles measured, 11 were wrong on screen, by up to 41,519 followers. Monitoring returns a profile only when a count moves.

Pricing

from $5.84 / 1,000 profile returneds

Rating

0.0

(0)

Developer

NeverEmpty

NeverEmpty

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

2

Monthly active users

6 days ago

Last modified

Share

TikTok Follower Count Scraper & Monitor — exact counts, not rounded

For influencer vetting, sponsorship tracking and creator-growth monitoring: follower, like and video counts for any public TikTok profile — the exact figures TikTok publishes on the page, not the rounded figures that sit beside them in TikTok's page data.

That difference is the whole product, and it is measurable. Of the 14 profiles that could be read on 2026-09-06, 11 had a rounded figure that differed from the exact one, by up to 41,519 followers:

AccountRounded (TikTok's page data)Exact figureDifference
duolingo18,000,00017,960,673−39,327
shopify2,100,0002,058,481−41,519
mkbhd2,300,0002,335,056+35,056

A large account can sit at the same displayed number for weeks. Monitoring built on that number reports "no change" while the account is in fact gaining thousands of followers a day. This Actor watches the exact figure, so a change is a change — and with monitoring on you are never charged for the same unchanged profile twice: a profile comes back only when one of its counts actually moves. Measured on this Actor from Apify on 2026-09-06, a run cost $0.00108 in platform time, about $0.00036 per profile read.

A bot check is never reported as a missing account. TikTok answers with the same code (10221) for a name that never existed, one that was changed and one no longer available, and from some networks its bot check arrives as HTTP 200 with a 1,462-byte page containing no data at all — that is returned as blocked, not as no-such-profile.

Every number in this README can be recounted from this repository: test/fixtures/measured-2026-09-06.json holds one entry per profile read that day, and test/parse.test.mjs recounts them. Export as JSON, CSV or Excel.

Best for

  • Creator and influencer research — pull the real follower, like and video counts for a list of accounts before you pay anyone.
  • Watching a roster on a schedule — turn monitoring on and a profile comes back only on the days its numbers actually moved.
  • Building a growth history — followerDelta and changedFields give you the change since the last run, so you can store a series without diffing anything yourself.

How fast, and what it costs to run

Measured on this Actor on 2026-09-06, from Apify:

3 profiles, monitoring on5 seconds
Platform cost of that run$0.00108 (about $0.00036 per profile read)
Requestsone page per profile, no proxy unless a bot check appears

Because unchanged profiles are read but not returned, monitoring stays profitable for you: reading twenty accounts and being charged for the one that moved still costs less than a cent to run.

What each row contains

  • What you asked for and what TikTok returned — inputUsername, username, and usernameMatchesInput, so a renamed or redirected account is visible rather than silently swapped.
  • Identity — userId, secUid, profileUrl, nickname, signature (bio), bioLink.
  • Exact counts — followerCount, followingCount, likeCount, videoCount, friendCount.
  • The rounded figures in TikTok's page data — followerCountDisplay, likeCountDisplay, displayIsRounded, followerCountDisplayDiff.
  • Flags — verified, privateAccount, isOrganization, ttSeller, language.
  • Account age — createdAtEpoch and createdAt (the same instant, as TikTok gives it and as ISO).
  • Monitoring — isFirstCheck, previousCheckedAt, previousFollowerCount, followerDelta, changedFields.

bioLink is returned as the creator typed it, which is often example.com with no scheme. No https:// is added, because adding one would invent an address the creator never wrote. An e-mail address or phone number written into the bio or that field is removed.

region is not returned: it is not on the profile page. Of the 14 profiles measured, 0 had it.

Monitoring, and what it costs

Turn monitoring mode on and the Actor remembers each account's counts. On later runs:

  • a profile whose counts have not moved is not returned and not charged;
  • a profile whose counts moved comes back with followerDelta and changedFields;
  • an account it has never seen is always returned once, so nothing is missed on the first run.

Choose whether any of the five counts counts as a change, or only the follower count.

The counts are remembered per account, not per list, so adding a username to a list does not reset the history or re-charge the profiles already being watched.

Monitoring adds a flat access fee of $5, charged once per calendar month (UTC), on the first monitoring run of that month — once, no matter how many lists or scheduled tasks you run. That fee pays for watching on the days when nothing moved — those runs return no rows and cost nothing else. Runs with monitoring off never trigger it.

Rows that are never charged

When there is nothing to return, this Actor says why instead of returning an empty result:

  • no-such-profile — TikTok returned no profile for that username. TikTok answers with the same code (10221) for a name that never existed, one that was changed, and one that is no longer available, and its own message is inconsistent between them, so this row does not claim the account was banned. It reports the code and asks you to check the spelling.
  • blocked — TikTok answered with a bot check rather than the profile. From some networks that arrives as HTTP 200 with a 1,462-byte page containing no data at all; it is reported as a bot check, never as an account with no followers. Profiles are requested directly first, and only a bot check makes the run switch to a proxy session and try again.
  • no-change — monitoring ran and nothing had moved.
  • no-match — profiles were read and none matched your filters.
  • unreadable — the page could not be parsed, or TikTok answered with a status code of its own whose meaning has not been measured here. The code is reported as-is and is not translated into a claim about the account. Nothing is guessed.
  • no-results — the profile loaded but TikTok published none of the counts. It is not returned as an account with zero followers, and it is not charged.

Which pages this Actor requests

Only https://www.tiktok.com/@username. TikTok's robots.txt disallows /search, /search/user, /embed/@, /shop/view/product/, /discover/trending/detail/ and the internal API paths, and this Actor cannot be made to request them: anything whose path is not a /@username page is rejected before any request is made — with or without https:// in front of it — so a hashtag, sound or shop link is never read as if it were an account.

Filters

Minimum and maximum followers (compared against the exact figure), verified only, has a bio link, skip private accounts, and keyword include/exclude across the display name, bio and username. Filters are applied after the profiles are read and before anything is charged.

Input

FieldWhat it does
usernamesThe accounts to read: @nasa, nasa, or a profile URL.
maxProfilesHow many rows to return in total.
monitoringModeRemember the counts and return a profile only when they move.
monitorModeWhether any count counts as a change, or only the follower count.
resetMonitoringStateForget every remembered profile (for all your lists, not only this one) and start a fresh history.
minFollowers / maxFollowersFollower range, compared against the exact figure.
onlyVerifiedKeep only verified accounts.
onlyWithBioLinkKeep only accounts with a link in the bio.
excludePrivateDrop accounts TikTok marks as private.
keywords / keywordMatch / excludeKeywordsFilter on display name, bio and username.
useProxyEvery profile is requested directly first (fastest, and it works from Apify). This only decides whether a bot check is retried through a proxy.

Questions

Why do your numbers differ from what TikTok shows on the profile? Because TikTok's page data carries two figures for the same count: an exact one and a rounded one. This Actor returns both: followerCount is the exact figure, followerCountDisplay is the rounded figure from the same page data, and followerCountDisplayDiff is the gap. In the 14 profiles measured on 2026-09-06, 11 differed, by up to 41,519 followers.

Does monitoring charge me when nothing changed? No. A profile whose watched counts have not moved is not returned and not charged; the run returns a single free no-change row instead. The $5 monthly access fee is what pays for those quiet days, and it is charged once per calendar month no matter how many lists or scheduled tasks you run.

What happens to a username that does not exist? It comes back as no-such-profile with TikTok's own status code, and it is not charged. TikTok answers with the same code for a name that never existed, one that was renamed and one that is no longer available, so this Actor reports the code rather than claiming which — it will not tell you an account was banned.

Do I need a proxy? Not usually. Every profile is requested directly first, which is the fastest and cheapest path and worked on every attempt measured on 2026-09-06. From some networks TikTok answers with a 1,462-byte page containing no data; that is reported as a bot check, and with useProxy on the run switches to a proxy session and tries again.

Can I watch private accounts? They are returned by default, and are marked privateAccount. How much TikTok publishes for them has not been measured here, so nothing is claimed about it.

How this differs from other TikTok follower scrapers

  • It reads the exact figure, not the rounded one. A rounded count can sit at the same value for weeks on a large account, so monitoring built on it reports "no change" while the account is growing by thousands a day.
  • It never charges twice for the same unchanged numbers, and the counts are remembered per account rather than per list, so adding a username does not reset the history.
  • It only requests /@username pages. Anything else — a hashtag, a sound, a shop link — is rejected before a request is made.
  • It separates "no profile" from "bot check" from "no counts published", and none of those rows are charged.

Example input

{
"usernames": ["@nasa", "@duolingo"],
"monitoringMode": true,
"monitorMode": "any-change",
"maxProfiles": 100
}