TikTok Creator & Profile Scraper

Eimantas V · @amethyst

Scrape TikTok creator profiles in bulk: exact followers, likes and video counts, verified and business flags, Shop seller status, bio links and bio emails.

About

TikTok Creator & Profile Scraper

Give it a list of TikTok handles. Get back exact follower counts, engagement, business and TikTok Shop status, bio links and contact e-mails — one HTTP request per creator, no browser.

@gymshark    6,605,687 followers · mega · 315,606 avg likes/video
             verified · business account · TikTok Shop seller
             Sports, Fitness & Outdoors · gym.sh/shoptiktok

What you get per creator

GroupFields
AudienceExact followers, following, likes, videos, friends, plus avgLikesPerVideo and a followerTier (nano → mega)
Statusverified, isPrivate, isOrganization
CommerceisBusinessAccount, isTikTokShopSeller, businessCategory
ContactbioLink, bioLinkDomain, bioEmails, and Instagram / YouTube / X / Snapchat handles named in the bio
Identityhandle, nickname, bio, avatarUrl, language, userId, secUid
AgeaccountCreatedAt, accountAgeDays

Pass video URLs in the same list and they resolve through TikTok's public oEmbed endpoint to title, author and thumbnail.


Why the counts are exact

TikTok's page state carries follower counts twice. The legacy stats object stores them as 32-bit integers and rounds them; statsV2 carries the same numbers as strings.

The difference is not cosmetic. Khaby Lame's 2.66 billion likes come back from the legacy field as −1,638,295,034 — an overflow in TikTok's own JSON that turns any derived average negative. This Actor reads statsV2:

Legacy fieldThis Actor
@khaby.lame followers162,600,000162,619,759
@khaby.lame likes−1,638,295,0342,656,672,262

Who this is for

  • Influencer marketing — screen a creator list by tier, engagement and category, then pull the booking e-mail straight out of the bio. withContactEmailOnly: true turns a broad list into an outreach list in one pass.
  • Brand and competitor monitoring — track a set of creators or brand accounts weekly and diff follower counts and video output.
  • E-commerce prospecting — isTikTokShopSeller and businessCategory identify accounts actually selling on the platform.
  • Lead enrichment — bioLinkDomain gives the creator's company domain, ready to join against firmographic data.

Input

{
  "profiles": ["@gymshark", "duolingo", "https://www.tiktok.com/@nasa"],
  "minFollowers": 10000,
  "withContactEmailOnly": true
}

Handles with or without @, profile URLs, video URLs and vm.tiktok.com short links all work, and duplicates collapse.

OptionDefaultNotes
minFollowers0Filtered creators are skipped, not written to the dataset
businessAccountsOnlyfalseOnly accounts with a commerce category
withContactEmailOnlyfalseOnly creators with a reachable e-mail in the bio
maxConcurrency10TikTok is rate-sensitive; raise gradually and watch for 403s
proxyConfigurationresidentialSee below

About proxies — read this first

TikTok blocks datacenter IP ranges aggressively. The Actor defaults to the platform's residential proxy because that is what reliably works. Residential bandwidth is the dominant cost of running this.

It is worth trying a small run without a proxy first: some ranges are served normally, and if yours is one of them the Actor runs far cheaper. If you see HTTP_403 or NO_STATE_BLOB in errorCode, that range is blocked — switch residential back on. The run log says so explicitly and counts how many targets were affected.


Output

{
  "handle": "gymshark",
  "nickname": "Gymshark",
  "followers": 6605687, "likes": 138866619, "videos": 440,
  "avgLikesPerVideo": 315606, "followerTier": "mega",
  "verified": true, "isBusinessAccount": true, "isTikTokShopSeller": true,
  "businessCategory": "Sports, Fitness & Outdoors",
  "bioLink": "https://gym.sh/shoptiktok", "bioLinkDomain": "gym.sh",
  "bioEmails": [], "bioHandles": { "instagram": null, "youtube": null },
  "accountCreatedAt": "2018-03-23T09:23:00.000Z", "accountAgeDays": 3064,
  "recordType": "creator"
}

Three ready-made dataset views ship with it — Creators, Outreach list and Commerce signals. Set flattenOutput: true for flat dot-notation columns with arrays joined by |, for spreadsheets.

Failed targets still produce a row with success: false and an errorCode, so your output stays aligned with your input.


Honest limits

  • Blocking is the main risk, not parsing. With a residential proxy this is reliable; without one it depends entirely on your IP range.
  • No video lists per creator. TikTok's profile page state contains the creator, not their posts — those load through a signed API this Actor deliberately does not touch. Pass video URLs explicitly if you need per-video data.
  • No follower demographics or fake-follower scoring. Those require panel data no public endpoint exposes. avgLikesPerVideo is a reach proxy, not an audited engagement rate.
  • bioEmails finds what creators publish. Many put nothing, or an address only shown in-app. Empty is a real answer, not a miss.
  • Private accounts return their profile fields with isPrivate: true; counts may be withheld by TikTok.

Pricing

One flat monthly rental, shown on this page, with a free trial. There is no per-profile fee: scrape as many profiles as you need.

Runs use your credits for compute and proxy traffic, as every Actor does. TikTok profiles need the residential proxy (see About proxies above), about 100 KB per profile. Measured on Bytewells: 3 profiles in 15 seconds at 1 GB with 0.3 MB of residential traffic for $0.0025 of credits: under $1 per 1,000 profiles.


Tips

  • Screen before you enrich. minFollowers: 10000 on a 50,000-handle list drops the unusable half.
  • Schedule weekly and diff on handle. Follower deltas and new video counts are the growth signal; a creator's avgLikesPerVideo falling while followers rise is the classic fading-account pattern.
  • Chain bioLinkDomain into a company-data Actor to attach firmographics to each creator's business.

FAQ

What does it return for each TikTok creator?
Exact follower, following, like and video counts, verified and business-account flags, TikTok Shop seller status, category, bio, the bio link with its domain, contact e-mails found in the bio, and average likes per video. Private accounts return their profile fields with isPrivate set to true.
Does it need a proxy?
It uses the residential proxy by default, because TikTok blocks datacenter address ranges. You can try a small run without a proxy: if errorCode shows HTTP_403 or NO_STATE_BLOB, that range is blocked and residential should go back on. The run log says how many profiles were affected.
How much does it cost?
One flat monthly rental, shown on this page, with a free trial and no per-profile fee. Runs use your Bytewells credits for compute and residential traffic, about 100 KB per profile. Measured on Bytewells: 3 profiles in 15 seconds for $0.0025 of credits, under $1 per 1,000 profiles.
Does it list each creator's videos?
No. TikTok's profile page carries the creator, not their posts, so there is no video list per creator. Pass video URLs in the input when you need per-video data.
Why is bioEmails empty for some creators?
Many creators publish no e-mail address, or one that TikTok shows only in its app. An empty value is a real answer, not a miss.
Can I get follower demographics or fake-follower scores?
No. Those need panel data that no public TikTok page exposes. Average likes per video is a reach indicator, not an audited engagement rate.
Can I use it through the API or from AI agents?
Yes. Start runs through the Bytewells API (bytewells.com/docs/api), schedule them and read the dataset as JSON; webhooks work too. The API is Apify-compatible, so apify-client works with the Bytewells base URL. AI agents can run it as a tool through the Bytewells MCP server (bytewells.com/docs/mcp).

More Actors from the same publisher.

View all from @amethyst