TikTok Follower Count Scraper & Monitor - Exact, Not Rounded
Pricing
from $5.84 / 1,000 profile returneds
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
14 hours ago
Last modified
Categories
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.
| Account | TikTok displays | Exact figure | Difference |
|---|---|---|---|
| duolingo | 18,000,000 | 17,960,673 | −39,327 |
| shopify | 2,100,000 | 2,058,481 | −41,519 |
| mkbhd | 2,300,000 | 2,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 history —
followerDeltaandchangedFieldsgive 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 on | 5 seconds |
| Platform cost of that run | $0.00108 (about $0.00036 per profile read) |
| Requests | one 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, andusernameMatchesInput, 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. - What TikTok shows on screen —
followerCountDisplay,likeCountDisplay,displayIsRounded,followerCountDisplayDiff. - Flags —
verified,privateAccount,isOrganization,ttSeller,language. - Account age —
createdAtEpochandcreatedAt(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
followerDeltaandchangedFields; - 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
| Field | What it does |
|---|---|
usernames | The accounts to read: @nasa, nasa, or a profile URL. |
maxProfiles | How many rows to return in total. |
monitoringMode | Remember the counts and return a profile only when they move. |
monitorMode | Whether any count counts as a change, or only the follower count. |
resetMonitoringState | Forget what was remembered for this list and start a fresh history. |
minFollowers / maxFollowers | Follower range, compared against the exact figure. |
onlyVerified | Keep only verified accounts. |
onlyWithBioLink | Keep only accounts with a link in the bio. |
excludePrivate | Drop accounts TikTok marks as private. |
keywords / keywordMatch / excludeKeywords | Filter on display name, bio and username. |
useProxy | Every 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
/@usernamepages. 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}