TikTok Follower Count Scraper & TikTok User Info - Exact Counts
Pricing
from $5.84 / 1,000 profile returneds
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
Maintained by CommunityActor stats
0
Bookmarked
4
Total users
2
Monthly active users
6 days ago
Last modified
Categories
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:
| Account | Rounded (TikTok's page data) | 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 — 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 —
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. - The rounded figures in TikTok's page data —
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 every remembered profile (for all your lists, not only this one) 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'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
/@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}