TikTok Profile Scraper - Real Follower Stats, $0.35/1k avatar

TikTok Profile Scraper - Real Follower Stats, $0.35/1k

Pricing

Pay per event

Go to Apify Store
TikTok Profile Scraper - Real Follower Stats, $0.35/1k

TikTok Profile Scraper - Real Follower Stats, $0.35/1k

Real TikTok follower numbers, not the decoy stats other tools return. Paste any list of usernames and get followers, following, total likes, video count, bio, verified badge, avatar and profile URL. $0.35 per 1,000 profiles plus a $0.001 run-start fee, flat on every Apify plan.

Pricing

Pay per event

Rating

5.0

(1)

Developer

Dami's Studio

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

8

Total users

0

Monthly active users

13 hours ago

Last modified

Share

⚡ TikTok User Scraper — Profiles, Followers & Stats (No Login, No API Key, No Proxy)

Get full TikTok profile data without a login, API key, or proxy. Feed it usernames and get back followers, following, total likes (hearts), video count, bio, verified status, avatar and secUid — ideal for influencer discovery, creator vetting, lead lists and audience research. Export to JSON, CSV or Excel, call the API, or deliver to Notion. $0.35 per 1,000 profiles plus a $0.001 run-start fee, flat on every Apify plan — the cheapest TikTok profile scraper on the market.

No account. No proxy. Paste handles and run.

Why this scraper wins

  • 🔓 Keyless & proxy-free — no login, no API key, no cookies to paste, and no proxy to buy. Paste handles, press Start.
  • 🛡️ Real numbers, not degraded ones — TikTok serves rounded or decoy stats to clients it has flagged. This Actor is built so the follower, like and video counts match what you see on the profile page while logged in.
  • 💸 One flat rate — $0.35 / 1,000 profiles plus $0.001 per run start. No volume tiers, no plan gates, and the cheapest rate on the market for this job.
  • 🧾 Only successful look-ups are billed — misses, blocks, duplicates and empty runs cost nothing beyond the start fee.
  • 🧹 Clean, flat records — one tidy object per profile, no nesting to unpack, ready for a spreadsheet or a CRM import.
  • 📬 Built-in Notion delivery — push results straight into Notion via Apify connectors, zero code.

Input

FieldNotes
profilesTikTok usernames to look up, with or without the @ (e.g. tiktok, @nba).
startUrlsOr paste full profile URLs (https://www.tiktok.com/@tiktok); the handle is parsed out for you.
proxyConfigurationOff by default — this scraper needs no proxy. Only add one at very high volume.
notionConnectorOptional. Deliver each profile to your connected Notion via Apify MCP connectors.
notionParentIdOptional Notion database / data-source id to create the pages in.

Mix profiles and startUrls freely in one run; duplicates are looked up once. Input field names follow the conventions used across similar Actors, so switching over is usually a drop-in change — point your existing input at this Actor and it will normally run as-is.

Input example

{
"profiles": ["tiktok", "@nba", "khaby.lame"],
"startUrls": ["https://www.tiktok.com/@zachking"]
}

That run looks up four creators (the URL is reduced to the handle zachking) and returns four rows.

Output (one record per profile)

{
"ok": true,
"type": "profile",
"id": "107955",
"uniqueId": "tiktok",
"secUid": "MS4wLjAB...",
"nickname": "TikTok",
"signature": "Make every second count.",
"verified": true,
"avatar": "https://p16-sign-va.tiktokcdn.com/....jpeg",
"followerCount": 94514481,
"followingCount": 6,
"heartCount": 460588561,
"videoCount": 1536,
"diggCount": 0,
"url": "https://www.tiktok.com/@tiktok"
}

Field reference

FieldWhat it is
oktrue on a real profile row, false on a diagnostic row — filter on this to split the two.
typeAlways profile for this Actor.
idTikTok's numeric user id.
uniqueIdThe @handle, without the @.
secUidTikTok's stable internal id for the account. It survives handle changes — store it if you plan to re-look-up a creator later.
nicknameThe display name shown above the bio.
signatureThe bio text, exactly as written, newlines included.
verifiedtrue for the blue check.
avatarHighest-resolution avatar URL TikTok exposes for the account.
followerCount / followingCountFollower and following totals.
heartCountLifetime likes across all of the creator's videos ("Likes" on the profile).
videoCountPublic videos currently on the profile.
diggCountLikes the creator has given out. Most accounts keep this private, so it is usually 0.
urlCanonical profile URL, handy as a spreadsheet link column.

Every field above comes from TikTok's own profile payload, so followerCount and heartCount are the real totals rather than rounded or degraded figures.

When a handle doesn't resolve

You get an explicit diagnostic row instead of a silent gap. Diagnostic rows carry ok: false, an errorCode, a human-readable error, and the profile that caused it:

{
"ok": false,
"errorCode": "NOT_FOUND",
"error": "The requested resource was not found (404) or is private/suspended.",
"profile": "handle_that_no_longer_exists"
}
errorCodeMeaning
NOT_FOUNDThe username does not exist, or the account was removed or suspended.
BLOCKEDThe look-up was refused for that handle. Re-running usually clears it.
RATE_LIMITEDThrottled mid-run after the built-in retries. Split the batch or re-run the misses.
NETWORKA transport error reaching the source. Transient; retry.
NO_RESULTSEmitted once, at the end, when nothing in the whole run resolved.

None of these are charged, so feeding in a stale handle list costs you nothing for the misses — you only ever pay for rows that came back with real data.

Pricing

$0.35 per 1,000 profiles ($0.00035 each), plus $0.001 each time a run starts — flat on every Apify plan, including the free one. No volume tiers, no plan gates, and only successful look-ups are charged. This is the cheapest rate on the market for TikTok profile data.

Profiles in the runPer-profile costStart feeTotal
10$0.0035$0.001$0.0045
100$0.035$0.001$0.036
1,000$0.35$0.001$0.351
10,000$3.50$0.001$3.501

Because the start fee is charged once per run, batching handles into one run is materially cheaper than looping one-handle runs: 100 handles in a single run costs $0.036, where 100 separate runs would cost $0.135.

Billing mechanics

Two events exist and nothing else bills:

  1. Actor start — $0.001, charged once when a run begins (per GB of memory; this Actor runs at 1 GB).
  2. Profile returned — $0.00035, charged the moment a real profile row is written to the dataset.

Diagnostics, duplicates, blocked look-ups and no-result runs never trigger the per-profile fee. A run that returns nothing costs only the $0.001 start fee.

Limitations — read before you scale

Stated plainly, because you should know them before you build on this:

  • Look-ups are paced. The Actor deliberately spaces requests roughly one per second to stay well inside the source's limits. Expect around 45–50 profiles per minute; a 3,000-handle run takes about an hour. The default run timeout is 60 minutes, so split very large lists across runs (or raise the timeout in the run options).
  • No videos here. This Actor returns profile records only. It does not return a creator's video list, comments, hashtags or search results — use the companion TikTok Scraper for those.
  • No follower or following lists. TikTok does not expose the actual list of accounts behind followerCount / followingCount without an authenticated session, and this Actor never logs in, so only the counts are available.
  • No emails or phone numbers. Only what a logged-out visitor can see on the profile: bio text, counts, avatar, verified badge. If a creator writes their email into their bio it lands in signature, but there is no separate contact field.
  • diggCount is usually 0. Most accounts hide their liked-videos count; the field is reported as TikTok reports it rather than guessed.
  • Private and region-blocked accounts return NOT_FOUND or BLOCKED rather than partial data. That is deliberate — a diagnostic row you can act on beats a half-populated row you might trust.
  • Counts are point-in-time. Follower numbers move constantly; re-run on a schedule if you need a trend rather than a snapshot.
  • Empty input stops the run. If you supply neither profiles nor startUrls, the run stops immediately with a BAD_INPUT message and no per-profile fee is charged.

FAQ

Do I need a TikTok account, cookies, or a proxy? No. It is fully keyless and runs proxy-free by default. The proxy input exists only for very high-volume users who want to bring their own.

Why are the follower counts different from what other tools return? TikTok serves degraded or decoy stats to clients it has flagged. This Actor is built to avoid that, so the numbers match what you see on the profile page.

How many handles can I pass in one run? As many as you like — there is no cap in the input. Practical limits come from pacing and the run timeout (see Limitations). The start fee is charged once per run, so batching is always cheaper.

Can I schedule it? Yes. Apify schedules work normally — a daily run over the same handle list gives you a clean follower-growth time series in the dataset.

How do I get the data out? Download the dataset as JSON, CSV, Excel or XML from the run page, hit the Dataset API from your own code, or set notionConnector to push each profile into Notion automatically.

What happens to duplicates? They are de-duplicated by handle before the look-up and again by uniqueId after it, so you are never charged twice for the same creator in one run.

Want the videos too? Use the companion TikTok Scraper for videos, hashtags, comments and search.