Request a tool
All toolsAutomationsGuidesMCP serverRequest a toolPlatformsCategories
TikTok User Scraper - Profiles, Followers & Stats (No Login) icon

TikTok User Scraper - Profiles, Followers & Stats (No Login)

Scrape TikTok profiles without a login. Get follower, following, likes and video counts, bio, verified flag and avatar. $0.35 per 1,000 profiles.

5 from 2 reviews on Apify 7,316 runs on Apify $0.00035 per profile ($0.35 / 1,000)
Run this in the cloudRun on Apify →

Social Media Scrapers

How it works

  1. 1
    Open it on Apify

    Hit Run on Apify — it opens the tool in the cloud, no install.

  2. 2
    Set the inputs

    Adjust profiles, startUrls, notionConnector (sensible defaults are pre-filled).

  3. 3
    Click Run

    The tool runs on Apify’s cloud and collects the data for you.

  4. 4
    Export the results

    Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.

Pricing

$0.00035 per profile = $0.35 per 1,000

You are charged forWhenPrice
Profile returnedCharged once per profile returned. Failed/not-found lookups are not charged.$0.00035

Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-08-04, and they are what you are actually charged.

Inputs

FieldWhat it doesType
profilesTikTok usernames (with or without @) to fetch full profile data for.array
startUrlsOr paste TikTok profile URLs (https://www.tiktok.com/@tiktok).array
notionConnectorOptional. Deliver the profiles to your connected Notion via Apify MCP connectors.string
notionParentIdOptional Notion database/data-source id to create the pages in.string
sessionCookiesOptional, leave empty and the run works as normal. Supply your own TikTok account cookie here, and the run uses it where an account is needed. In Chrome, on a logged-in tiktok.com tab: F12 → Application → Cookies → copy the `sessionid` value. Paste one per line; several are rotated.array

What you get

A structured dataset — each result includes fields like:

typeuniqueIdsecUidnicknamesignatureverifiedfollowerCountfollowingCountheartCountvideoCountavatarurl

Export every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.

1 ready-to-run use cases

TikTok Follower Count Checker - Bulk Profiles

Check TikTok follower counts in bulk. Get followers, following, video count, likes, bio and verified flag. No login.

Related tools in Social Media Scrapers

Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.

Reddit Scraper iconSocial Media Scrapers

Reddit Scraper

Scrape Reddit posts with no login or API key. Rows carry titles, selftext, scores, authors, comment counts and permalinks. $0.50 per 1,000 rows, flat.

20 use cases

Reddit Posts Search Scraper iconSocial Media Scrapers

Reddit Posts Search Scraper

Search Reddit by keyword: title, post text, author, subreddit, permalink and dates. Add a free Reddit app for scores. $0.891 per 1,000 posts.

22 use cases

Reddit Video Scraper & Downloader iconSocial Media Scrapers

Reddit Video Scraper & Downloader

Download v.redd.it videos from any subreddit or Reddit user, with the audio joined back in. Get post details and dedupe. $0.03 per video record.

17 use cases

Telegram Channel Scraper iconSocial Media Scrapers

Telegram Channel Scraper

Scrape public Telegram channels with no bot token and no API key. Get post text, date, views, author, media links and subscriber count. $1.50 per 1,000.

21 use cases

Pinterest Search Scraper iconSocial Media Scrapers

Pinterest Search Scraper

Search Pinterest by keyword: pin title, description, image URL, destination link, pinner and board. No login. $1.60 per 1,000 pins.

20 use cases

Bluesky Scraper iconSocial Media Scrapers

Bluesky Scraper

Scrape Bluesky posts and profiles by handle, no login. Archive keyword search needs your own app password. $2.00 per 1,000 posts.

5 use cases

See all Social Media Scrapers →

TikTok Profile Scraper: follower counts, likes and bio for any public handle

Give it a list of TikTok usernames and you get one flat row per account: followers, following, lifetime likes, video count, bio, verified flag, avatar and the profile link. Nothing to log into.

The part worth knowing first: TikTok hides two of those numbers on most accounts. followingCount and diggCount come back as 0 on plenty of large, active profiles because the account keeps them private, not because the figure is really zero. And this returns the profile only. The videos on it are a different actor, linked further down.

InputUsernames, or tiktok.com/@handle links
OutputOne row per profile
CeilingNo cap. One row per unique handle you send
Account neededNone from you
Price$0.35 per 1,000 profiles, flat on every plan

🔍 What TikTok Profile Scraper does

You hand it handles, it hands back the profile record behind each one. Handles are taken with or without the @, and a profile link works just as well since the handle is read straight out of it.

Everything is deduplicated before the rows land, so the same account listed twice in one run comes back once and is billed once. Handles are fetched one at a time rather than in a burst, which is why a long list takes a while.

The field names are TikTok's own rather than the labels you see in the app, because those are the names you will need if you feed the rows into anything else:

FieldWhat it is
signatureThe bio text.
heartCountLifetime likes across everything the account has posted.
diggCountLikes the account has given out. Usually 0, because it is usually hidden.
secUidTikTok's stable internal id for the account.
idThe numeric user id.

A handle that does not exist, or that comes back empty, gets a row saying so and the run carries on to the next one.

📥 What you give it

{
  "profiles": ["tiktok", "nba", "khaby.lame"]
}
FieldDefaultWhat it is
profilesnoneUsernames, with or without @. The form opens with tiktok and nba filled in as an example, which is a starting point rather than a default.
startUrlsnoneOr paste profile links like https://www.tiktok.com/@tiktok. Mix them with profiles freely.
sessionCookiesnoneOptional. Your own TikTok sessionid, used only for handles that came back empty. Use a throwaway account: the value sits in the run input, which anyone who can open the run can read.
proxyConfigurationoffLeave it off. It exists for people routing through their own servers at high volume.
notionConnector, notionParentIdnoneOptional. Write each profile into a Notion database as well as the dataset.

Run it with nothing at all and you get one labelled sample row, free, so you can see the shape before you spend anything.

📤 What you get back

A real row from a real run, with the avatar link cut short:

{
  "ok": true,
  "type": "profile",
  "id": "107955",
  "uniqueId": "tiktok",
  "secUid": "MS4wLjABAAAAv7iSuuXDJGDvJkmH_vz1qkDZYo1apxgzaxdBSeIuPiM",
  "nickname": "TikTok",
  "signature": "Your next discovery is waiting on TikTok.",
  "verified": true,
  "avatar": "https://p19-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/...",
  "followerCount": 95824985,
  "followingCount": 1,
  "heartCount": 464140394,
  "videoCount": 1591,
  "diggCount": 0,
  "url": "https://www.tiktok.com/@tiktok"
}
FieldWhat it is
uniqueId, nicknameThe handle, and the display name shown above it.
followerCount, videoCountAudience size and how many videos are on the account right now.
heartCountLifetime likes. This is the number people usually mean by "total likes".
verifiedThe blue tick, as a boolean.
avatar, urlDirect link to the profile picture, and the canonical profile link.
id, secUidBoth ids TikTok uses. uniqueId is the readable one, secUid survives a rename.

🧾 Reading the output

Three kinds of row can land in your dataset.

RowHow to spot itBilled
A profileok: true and type: "profile"yes
The sample row_sample: trueno
A diagnosticok: false and an errorCodeno

Filter on ok == true and you have your data. NOT_FOUND and BLOCKED both mean no profile came back for that handle, and you can treat them the same way: check the spelling, then try it again later. NO_RESULTS is the single row you get when nothing at all came back for the whole run. TIME_LIMIT means the run neared its time limit and stopped, keeping every profile it had delivered. If no profile had come back by then, the run ends as failed.

One quirk of the Overview table: it shows six columns, so a diagnostic row reads as a nearly blank line there, and followingCount, verified and secUid are not in it at all. Open the row itself or download the JSON and everything is present.

▶️ How to run it

1. Open TikTok Profile Scraper and click Try for free. 2. Type handles into Usernames, one per line, or paste links into Profile URLs. 3. Click Start. 4. Download the dataset as JSON, CSV or Excel, or pull it from the Apify API.

💰 How much does it cost?

$0.35 per 1,000 profiles. Flat on every Apify plan, no volume tiers.

You pay for rows that carry a profile. The sample row, diagnostic rows and the second copy of a handle you listed twice are not charged.

💡 What people use it for

  • Refreshing follower and likes counts across a creator list on a schedule, then diffing week to week.
  • Vetting a shortlist of accounts before an outreach round, so nobody pitches a dead handle.
  • Turning a column of handles from a spreadsheet into a table with real numbers next to it.
  • Grabbing secUid for accounts, which is the id that survives a handle change.

🚧 What it does not do

  • No videos, comments or follower lists. This is the profile record. Three siblings below cover

the rest.

  • followingCount and diggCount are often 0 because TikTok hides them. Read a 0 there as

"not shown", not as "none".

  • A private account returns only what TikTok shows the public, which is the name, the bio and

the counts it chooses to display.

  • Counts are a snapshot at the moment the row was read, not a history.
  • The avatar link is signed and expires. Download the image if you need to keep it.
  • No search. You need the handle already. It will not find accounts by topic or keyword.

🧭 Which TikTok scraper do you need?

If you wantUse
Follower and likes counts for handles you already haveThis one
A profile plus the videos on it, or a keyword searchTikTok Scraper
Videos under a hashtagTikTok Hashtag Scraper
Comments under a videoTikTok Comments Scraper
Which hashtags are climbing right nowTikTok Trending Hashtags

❓ Questions people ask

Do I need a TikTok account? No. The cookie field is optional and only comes into play for handles that came back empty without it.

Can I get the account's videos too? Not from here. TikTok Scraper returns the profile row plus the videos on the grid.

Why does a big account show followingCount: 0? Because TikTok is not publishing that number for the account. The same goes for diggCount.

What happens to a handle that does not exist? You get an uncharged row marked ok: false, and the run moves on to the next handle instead of stopping.

Is scraping TikTok legal? This reads public profiles only, never private accounts or messages. Results can still contain personal data, which GDPR and similar laws cover, so have a reason for collecting it. Apify's write-up on the legality of web scraping is a good starting point, and we are not lawyers.

Can I run it on a schedule? Yes. Use Apify's scheduler, or start it from the API and read the dataset when it finishes.

🆘 If something breaks

Open the Issues tab on the actor page. Include the handles you used and the run ID, and the log is usually enough for us to see what happened.