TikTok Follower Count Scraper & Monitor - Exact, Not Rounded avatar

TikTok Follower Count Scraper & Monitor - Exact, Not Rounded

Pricing

from $5.84 / 1,000 profile returneds

Go to Apify Store
TikTok Follower Count Scraper & Monitor - Exact, Not Rounded

TikTok Follower Count Scraper & Monitor - Exact, Not Rounded

Follower, like and video counts for any public TikTok profile, taken from the exact figures TikTok publishes, not the rounded ones it displays. Turn monitoring on and later runs return a profile only when a count actually moves, so you are never charged twice for the same numbers.

Pricing

from $5.84 / 1,000 profile returneds

Rating

0.0

(0)

Developer

NeverEmpty

NeverEmpty

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

14 hours ago

Last modified

Share

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

Follower, like and video counts for any public TikTok profile — 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.

The counts are the exact figures TikTok publishes on the page, not the rounded ones it shows on screen. That difference is the whole reason this Actor is useful for monitoring, and it is measurable: of the 14 profiles that could be read on 2026-09-06, 11 had a displayed figure that differed from the exact one, by up to 41519 followers.

AccountTikTok displaysExact 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.

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.

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 historyfollowerDelta 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 returnedinputUsername, username, and usernameMatchesInput, so a renamed or redirected account is visible rather than silently swapped.
  • IdentityuserId, secUid, profileUrl, nickname, signature (bio), bioLink.
  • Exact countsfollowerCount, followingCount, likeCount, videoCount, friendCount.
  • What TikTok shows on screenfollowerCountDisplay, likeCountDisplay, displayIsRounded, followerCountDisplayDiff.
  • Flagsverified, privateAccount, isOrganization, ttSeller, language.
  • Account agecreatedAtEpoch and createdAt (the same instant, as TikTok gives it and as ISO).
  • MonitoringisFirstCheck, 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 what was remembered for this list 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 publishes two figures and shows you the rounded one. This Actor returns both: followerCount is the exact figure from the page's own data, followerCountDisplay is what the screen shows, 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
}