TikTok Profile Stats Scraper (Followers, Likes, Bio) avatar

TikTok Profile Stats Scraper (Followers, Likes, Bio)

Pricing

from $1.40 / 1,000 profile scrapeds

Go to Apify Store
TikTok Profile Stats Scraper (Followers, Likes, Bio)

TikTok Profile Stats Scraper (Followers, Likes, Bio)

Get public TikTok profile stats in bulk: followers, following, total likes, video count, bio, bio link, verified status, region and avatar. Fast and cheap for influencer research and tracking.

Pricing

from $1.40 / 1,000 profile scrapeds

Rating

0.0

(0)

Developer

Julio Barcellos Rangel

Julio Barcellos Rangel

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 hours ago

Last modified

Share

TikTok Profile Stats Scraper gets public stats for any list of TikTok accounts in bulk: followers, following, total likes, video count, bio, bio link, verified status, region and avatar. It is a fast and cheap TikTok profile scraper for agencies, brands and analysts who vet influencers or track creator growth. Use it as a TikTok follower count checker or to export TikTok profile data to Excel, CSV or JSON, with no login.

What does TikTok Profile Stats Scraper do?

You give it a list of TikTok accounts. For each one, the scraper opens the public profile page on tiktok.com, reads the profile data that TikTok embeds in the page and saves one clean row per profile in a dataset.

It accepts any of these forms, mixed in the same list:

Input formExample
Username with @@khaby.lame
Username without @nasa
Profile URLhttps://www.tiktok.com/@nasa

Every line is cleaned to a plain username and duplicates are removed, so @nasa, nasa and https://www.tiktok.com/@nasa count as one profile.

Each row holds the account's numbers (followers, following, total likes, videos, friends), its identity (username, nickname, user ID and secUid), the bio and bio link, and flags such as verified, private and business (commerce) account. You do not need a TikTok account, cookies or an API key.

What data can you extract?

FieldWhat it meansExample
inputThe username the scraper read from your linekhaby.lame
usernameTikTok handlekhaby.lame
nicknameDisplay name on the profileKhabane lame
userIdTikTok's numeric user ID127905465618821121
secUidTikTok's secure user ID (used by other TikTok tools)MS4wLjABAAAAwAg0rSzO…
urlProfile linkhttps://www.tiktok.com/@khaby.lame
followersNumber of followers162984916
followingNumber of accounts the profile follows81
likesTotal likes received on all the profile's videos2685553172
videosNumber of videos on the profile1357
friendsTikTok's friend count (accounts that follow each other)77
bioBio textIf u wanna laugh u r in the right place😎
bioLinkLink shown in the bio, if anynull
verifiedHas the verified badgetrue
privateAccountThe account is privatefalse
regionRegion code, when TikTok includes it in the pagenull
languageLanguage set on the accounten
avatarLarge profile picture URLhttps://p16-common-sign.tiktokcdn-us.com/…
createdAtAccount creation time as TikTok reports it (ISO 8601)2016-08-10T22:02:34.000Z
commerceUserTikTok marks it as a business (commerce) accountfalse
categoryBusiness category of a commerce accountnull
scrapedAtWhen the row was collected2026-10-07T19:36:51.311Z
errorOnly on error rows: why the profile was not returnedProfile not found

All counts are real numbers (for example 162984916, not "162.9M"), so you can sort, filter and compute ratios directly in Excel or Google Sheets. Empty values come as null.

How to use TikTok Profile Stats Scraper

  1. Open TikTok Profile Stats Scraper in Apify Console (sign in or create an Apify account).
  2. In Profiles, paste usernames or profile URLs, one per line. Hundreds of lines are fine.
  3. Leave Proxy on the default Apify Proxy unless you have a reason to change it.
  4. Click Start and wait for the run to finish. The log shows how many profiles were returned.
  5. Open the Output tab to see the table, then click Export to download the data as JSON, CSV, Excel or HTML.
  6. Optional: save the input as a task and add a schedule (for example daily) to track how the same profiles grow.

Input

FieldTypeDefaultDescription
profilesarray of strings["@khaby.lame", "https://www.tiktok.com/@nasa"]TikTok usernames (with or without @) or profile URLs such as https://www.tiktok.com/@nasa.
proxyobject{"useApifyProxy": true}Apify Proxy settings.

There is no "max results" setting: each profile in the list returns exactly one row (the profile, or an error row). A plain username must be 2 to 24 characters of letters, numbers, underscores or dots. Lines that are neither a valid username nor a tiktok.com/@ link are skipped.

Example input:

{
"profiles": [
"@khaby.lame",
"nasa",
"https://www.tiktok.com/@tiktok"
],
"proxy": {
"useApifyProxy": true
}
}

Output example

A real row from the latest run (the avatar link is shortened):

{
"input": "khaby.lame",
"username": "khaby.lame",
"nickname": "Khabane lame",
"userId": "127905465618821121",
"secUid": "MS4wLjABAAAAwAg0rSzO65WQfz4RzQgGv2Xdv108BgPXhRrrmNVIHQZ9PO8-flwwRtEppYTS0OjA",
"url": "https://www.tiktok.com/@khaby.lame",
"followers": 162984916,
"following": 81,
"likes": 2685553172,
"videos": 1357,
"friends": 77,
"bio": "Se vuoi ridere sei nel posto giusto😎 If u wanna laugh u r in the right place😎",
"bioLink": null,
"verified": true,
"privateAccount": false,
"region": null,
"language": "en",
"avatar": "https://p16-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/08987e23b94057953fd4f1738694bf5f~tplv-tiktokx-cropcenter:1080:1080.jpeg?…",
"createdAt": "2016-08-10T22:02:34.000Z",
"commerceUser": false,
"category": null,
"scrapedAt": "2026-10-07T19:36:51.311Z"
}

A real error row from an earlier run (a username that does not exist). Error rows are not charged:

{
"input": "zzz_no_user_xx_991",
"error": "Profile not found",
"scrapedAt": "2026-10-07T19:10:13.542Z"
}

How much does it cost?

TikTok Profile Stats Scraper uses pay per event pricing. You pay $2.00 per 1,000 profiles returned ($0.002 per profile) on the Free plan. Platform usage (compute and proxy) is included in that price, so there is nothing else to add.

Apify planPrice per 1,000 profiles
Free$2.00
Bronze (10% off)$1.80
Silver (20% off)$1.60
Gold and higher (30% off)$1.40

Worked examples on the Free plan:

  • 100 influencer profiles to vet for a campaign = $0.20
  • 5,000 profiles from a creator database = $10.00
  • 1,000 profiles tracked every day for 30 days = 30,000 profiles = $60.00 ($42.00 on Gold)

What you are not charged for:

  • Error rows ("Profile not found" or "Could not load profile").
  • Retries. A profile that needs several tries is charged once, only if it is returned.
  • Duplicate lines and lines that are not valid usernames or profile URLs.

Use cases

  • Influencer vetting. Check followers, total likes, video count and the verified badge before you contact a creator, and compute likes per follower or likes per video.
  • Growth tracking. Run the same list on a schedule and chart followers and likes over time using scrapedAt.
  • Competitor benchmarking. Compare brand accounts in your niche by audience size and posting volume.
  • Creator outreach lists. Collect bios and bio links of creators you found elsewhere, to see where they send their audience.
  • CRM enrichment. Add TikTok user ID, secUid, follower count and avatar to existing creator or customer records.
  • Business account checks. See which accounts TikTok marks as commerce accounts and their category.
  • List cleaning. Find usernames that no longer exist; they come back as "Profile not found".

Tips and limits

  • One row per profile. The scraper returns profile stats only. It does not list a profile's videos, comments or followers. For video stats use TikTok Video Scraper with video links, and for comments use TikTok Comments Scraper.
  • Public data only. Only what TikTok shows on the public profile page is collected. The privateAccount field tells you when an account is private.
  • Profiles are processed one at a time. Each profile gets up to 5 tries with a growing pause between them and a 30-second timeout per try. A long list simply takes longer; you can split a very large list into several runs.
  • Error rows. "Profile not found" means TikTok reported that the account does not exist or is not available (deleted, banned or misspelled). "Could not load profile" means TikTok returned no profile data after 5 tries; run those usernames again later.
  • Skipped lines. Lines that are not a valid username or tiktok.com/@ link produce no row at all, so compare the row count with your list if something seems missing.
  • Duplicates. Duplicates are removed after cleaning, but the comparison is case-sensitive, so NASA and nasa are looked up twice. Lowercase your list to avoid paying twice.
  • Image links expire. The avatar URL is a signed TikTok CDN link with an x-expires parameter. Download the picture soon if you need to keep it.
  • Empty fields. bioLink, region and category are often null because TikTok does not include them for every account.

Use it from the API, Python or JavaScript

JavaScript (Node.js) with the official apify-client package:

const { ApifyClient } = require('apify-client');
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const input = { profiles: ['@khaby.lame', 'https://www.tiktok.com/@nasa'] };
(async () => {
const run = await client.actor('juliob.rangel/tiktok-profile-stats').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
})();

Python with the official apify-client package:

from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')
run_input = {'profiles': ['@khaby.lame', 'https://www.tiktok.com/@nasa']}
run = client.actor('juliob.rangel/tiktok-profile-stats').call(run_input=run_input)
items = client.dataset(run['defaultDatasetId']).list_items().items
for item in items:
print(item.get('username'), item.get('followers'))

Plain HTTP, running the scraper and getting the rows in one call:

curl -X POST "https://api.apify.com/v2/acts/juliob.rangel~tiktok-profile-stats/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"profiles": ["@khaby.lame"]}'

The scraper also works with Make, Zapier and n8n, can export results to Google Sheets, can call your webhook when a run finishes, and can be used by AI agents through the Apify MCP server.

FAQ

Do I need a TikTok login, cookies or an API key?

No. The scraper reads public profile pages without logging in. You only need an Apify account to run it.

Can I export TikTok profile stats to Excel or CSV?

Yes. After the run, open the Output tab and export the dataset as Excel, CSV, JSON or HTML, or read it through the API.

How many profiles can I scrape in one run?

There is no fixed cap in the scraper. Each line in profiles returns one row, and profiles are fetched one after another, so bigger lists take longer.

The scraper only collects publicly available data. You are responsible for complying with TikTok's terms and with privacy laws such as GDPR and LGPD. Personal data needs a legitimate reason to be collected and processed.

Why did I get a row with an error field?

Either TikTok said the account does not exist ("Profile not found") or the page gave no profile data after 5 tries ("Could not load profile"). Error rows are not charged. Check the spelling, then run the missing usernames again.

Does it return emails or the profile's videos?

There is no email field. If a creator wrote an email or link in the bio, you will see it in bio or bioLink. The profile's videos are not listed; use TikTok Video Scraper for video stats.

How do I track follower growth?

Save your input as a task, add a daily schedule and compare followers and likes between runs. Every row has scrapedAt so you can build a time series.


Estatísticas de Perfis do TikTok

Seguidores, curtidas, número de vídeos, bio e link de perfis públicos do TikTok em massa. Para agências e marcas avaliarem influenciadores e acompanharem crescimento. Sem login; você paga só por perfil retornado.