Best TikTok profile scrapers: followers, likes and bios at scale
A TikTok profile scraper turns a handle into structured data: name, bio, avatar, follower count, following count, total likes, video count and whether the account is verified or private. That is the raw material for influencer shortlists, CRM enrichment and competitor tracking. Here are the realistic ways to get it and a working script.
What a profile record should contain
| Field | Why it matters |
|---|---|
| id | Stays the same when the creator changes their handle. Store it. |
| handle, name, bio | Matching, search and contact hints such as an email in the bio. |
| followers, following | Reach, and a quick bot check (very high following with low followers is a flag). |
| likes, posts | Lifetime likes divided by videos gives a rough likes-per-video. |
| verified, private | Private accounts have no public videos to analyse. |
The options
TikTok Research API
Its user info endpoint returns display name, bio, avatar, verified flag, follower, following, likes and video counts, and the bio link source. It is the official source, but only eligible academic and non-profit researchers can apply source.
TikTok Display API
Returns basic profile info for a creator who signs in to your app and grants access source. Good for creator onboarding. You cannot look up arbitrary handles with it.
TikTok-Api (open source)
Free and MIT licensed, but it runs a browser and needs your own cookie token, and its README warns about bot blocking source. Fine for a few hundred profiles on a laptop. Not something to put behind a customer-facing feature.
Bright Data
Has a dedicated TikTok profiles scraper, priced at $1.50 per 1,000 records pay as you go, with 5,000 free records a month source. It suits batch jobs: upload a list, get a file back.
EnsembleData
Offers TikTok user data on monthly plans from $100 for 1,500 units a day source. A fit if you check a steady number of profiles every day.
ScrapeIO
tiktok profile API returns one profile for 1 credit, and tiktok profile videos API returns the account's recent videos with plays, likes, comments, shares and saves. Private and not-found accounts are not charged, which matters when your list is old.
Script: enrich a list of handles
This reads handles from a text file and writes a CSV. Swap the URL and field names for whichever source you use.
import csv, requests
KEY = "YOUR_KEY"
rows = []
for handle in open("handles.txt").read().split():
r = requests.get("https://scrapeio.com/v1/tiktok/profile",
params={"handle": handle},
headers={"x-api-key": KEY}, timeout=30).json()
if not r.get("success"):
rows.append({"handle": handle, "status": "missing"})
continue
p = r["data"]
rows.append({
"handle": p["handle"], "id": p["id"], "followers": p["followers"],
"likes": p["likes"], "posts": p["posts"], "verified": p["verified"],
"likes_per_video": round(p["likes"] / p["posts"]) if p["posts"] else None,
"status": "ok",
})
with open("profiles.csv", "w", newline="") as f:
w = csv.DictWriter(f, fieldnames=sorted({k for r in rows for k in r}))
w.writeheader()
w.writerows(rows)
Profile numbers lie a little. Check videos too.
Follower counts are cumulative. An account that went viral in 2022 can have two million followers and 3,000 views per video today. Before you rank creators, pull their last 20 to 30 videos and compute:
- Median plays of recent videos. Use the median, not the mean, so one viral hit does not skew it.
- Engagement rate by views: (likes + comments + shares) / plays.
- Views to followers: median plays / followers. Under 5% often means a stale audience.
- Posting cadence: videos in the last 30 days.
Common mistakes
- Keying your database on handle. Handles change. Use the id.
- Treating a missing count as zero. Store null when the source did not report a value.
- Re-pulling every profile daily. Follower counts move slowly; weekly is usually enough.
Spotting inflated profiles
A profile scraper also helps you avoid paying for fake reach. Four quick checks catch most problems:
- Likes per follower. Lifetime likes far below followers suggests followers that never engage.
- Views to followers. Median plays under 1% of followers on recent videos is a warning sign.
- Sudden jumps. If you snapshot weekly, a follower jump with no viral video behind it deserves a question.
- Comment quality. Generic one-word or emoji-only comments on every video often come from engagement groups.
None of these proves fraud alone. Two or more together are worth a conversation with the creator before you sign.
How to do it with ScrapeIO
Use tiktok profile API for the profile and tiktok profile videos API for the recent videos. Both cost 1 credit per call, so a 1,000-creator list with one page of videos each is about 2,000 credits, under $4 on the Starter pack. The same script works for Instagram or YouTube by changing the path, because the field names match.
Sources
Checked on 8 November 2026 from each vendor's own pages. Prices and limits change; follow the links before you decide.
- https://developers.tiktok.com/products/research-api/
- https://developers.tiktok.com/doc/research-api-specs-query-user-info
- https://developers.tiktok.com/doc/display-api-overview
- https://github.com/davidteather/TikTok-Api
- https://brightdata.com/products/web-scraper/tiktok
- https://ensembledata.com/pricing
100 free credits, no card. Credits never expire.
Get API key