TikTok Profile Scraper - Followers, Likes, Videos avatar

TikTok Profile Scraper - Followers, Likes, Videos

Pricing

Pay per event

Go to Apify Store
TikTok Profile Scraper - Followers, Likes, Videos

TikTok Profile Scraper - Followers, Likes, Videos

Scrape public TikTok profiles by username or URL: followers, following, likes, video count, bio, bio link, verified flags, plus recent videos with views, likes and engagement rate. No login or cookies. Export JSON, CSV, Excel or API. $1.50 per 1,000 profiles.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Andres Garcia-Baquero Leon

Andres Garcia-Baquero Leon

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

TikTok Profile Scraper - Followers, Likes, Bio, Recent Videos

Extract available public TikTok profile fields: followers, following, total likes, video count, bio, bio link, verified / seller / private flags and account creation date. Optional enrichment returns a recent public-video sample from the profile embed, with available counters and metadata. Missing fields remain null or absent; coverage is reported explicitly. Derived averages describe only the returned sample. Paste usernames or profile URLs, run, and export to JSON, CSV, Excel or via API. No TikTok login, cookies or browser needed.

Price: $1.50 per 1,000 profiles ($0.0015 per profile). Profiles that do not exist are never charged.

Why use it

ManuallyWith this Actor
Open each profile, copy numbers by handPaste 1-1,000 handles, get a table
Rounded numbers in the appNumeric counts as supplied by TikTok; unavailable values stay null
No historySchedule it daily to track growth

Output example

Illustrative field excerpt, not a current live snapshot or a guarantee of field coverage.

{
"username": "nasa",
"nickname": "NASA",
"userId": "7664638705177150477",
"profileUrl": "https://www.tiktok.com/@nasa",
"bio": "Making the seemingly impossible, possible.",
"bioLink": null,
"verified": true,
"privateAccount": false,
"isOrganization": true,
"isSeller": false,
"followers": 1797784,
"following": 23,
"likes": 9493969,
"videos": 46,
"avgLikesPerVideo": 206391,
"accountCreatedAt": "2026-07-20T...",
"scrapedAt": "2026-09-24T..."
}

Fields

FieldTypeDescription
usernamestringTikTok handle
nicknamestringDisplay name
userId / secUidstringStable TikTok IDs (survive handle changes)
bio / bioLinkstringProfile description and link in bio
verifiedbooleanBlue check
privateAccountbooleanPrivate profile
isOrganization / isSellerbooleanBusiness or TikTok Shop seller account
followers / followinginteger or nullCounts as supplied by TikTok
likesintegerTotal likes received
videosinteger or nullProfile video count as supplied by TikTok
avgLikesPerVideointegerlikes / videos (simple engagement proxy)
avatarUrlstringProfile picture (temporary signed URL)
accountCreatedAtstringISO date when available
recentVideosarrayRecent embed sample (not guaranteed to contain the newest uploads): videoId, url, description, createdAt, views, likes, comments, shares, saves, durationSec, music, hashtags
recentVideosCountintegerVideos returned for the profile
recentAvgViewsinteger or nullAverage over returned videos with a view count
recentEngagementRatenumber or nullSum of likes / sum of views over returned videos with both likes and nonzero views
lastPostAtstring or nullNewest timestamp inferred from IDs in the returned sample, not necessarily the account's latest post
videosStatusstringok, partial, none_public, skipped or unavailable (see coverage below)
videosErrorstring or nullReason for reduced video coverage
recentVideos[].statsCompletebooleanTrue only when views, likes, comments, shares and saves are all present; zero counts are valid
recentVideos[].statsMissingFieldsarrayNames of missing counters
recentVideos[].statsStatusstringok, partial, unavailable or skipped (videoStats=false)

How to use

  1. Add usernames (nasa, @nasa) or URLs (https://www.tiktok.com/@nasa).
  2. Click Start.
  3. Open the Profiles table.
  4. Export to CSV, JSON, Excel, or pull via the Apify API.

Input

FieldDescription
profilesList of usernames or profile URLs. Only an omitted profiles key runs a demo; explicit empty/null/invalid targets do not.
includeVideosAdd recent videos (default true). Same price per profile.
videoStatsAttempt per-video counters and metadata (default true, slower). Completeness is not guaranteed.
maxVideosPerProfile1-30 operational cap, default 10. Embed samples have often contained about 10-13 videos; size and recency are source-dependent.
maxConcurrencyParallel requests (default 3).
{ "profiles": ["nasa", "https://www.tiktok.com/@nba", "@khaby.lame"] }

Use cases

  • Influencer marketing: vet creators by real recent views, engagement rate and last post date, not only follower counts.
  • Competitor tracking: schedule daily runs and chart follower growth of brand accounts.
  • Lead lists: enrich a list of creator handles with bio links and business flags.
  • Research: build datasets of accounts for social media studies.

Integrations

Works with Zapier, Make, n8n, Google Sheets, Slack, Airbyte, LangChain and webhooks through the standard Apify integrations. Use Apify Schedules for daily snapshots.

Pricing

Pay per event: $0.0015 per profile returned plus the standard tiny Apify actor-start fee. Not-found, invalid or failed profiles are not charged. Result delivery uses Apify's atomic charged push and honors the result-event budget; the actor-start fee is separate.

FAQ

Do I need a TikTok account or cookies? No. Only public profile data is collected.

Can I scrape private accounts? You get the public header (followers, likes, bio); private videos are not accessible.

Are the numbers exact? Numeric values are taken from the source payload, not reconstructed from the app display. Missing counters remain null; source accuracy is not independently verified.

What happens with a wrong username? A confirmed missing profile is listed under notFound; malformed inputs under invalidInput; blocked or unparseable profiles under failed. No profile event is charged for those entries; the actor-start fee may still apply.

How many profiles per run? Hundreds are fine; keep concurrency low for reliability.

Does it return videos? It attempts a recent embed sample, often around 10-13 videos, not a full history or a guarantee of the chronologically latest posts. Set includeVideos=false for profile-only runs; private profiles also skip video recovery.

Coverage and run diagnostics

ok means the available/requested video sample was recovered, not a complete account history. partial means some requested video data is missing; unavailable means the initial video list could not be recovered. skipped means video recovery was disabled (or private on TikTok). none_public requires a recognized empty list/message, never just absent JSON or an unknown layout; it describes the selected source surface, not proof that the entire account has no public content. Valid profile/channel metadata is still delivered and charged if optional videos fail. Missing metadata is not inferred. Video IDs are deduplicated before counting and averaging.

Aliases are deduplicated by stable userId/channelId under a delivery lock before the atomic result-event charge. Rows without a stable identity are reported as failed rather than charged. OUTPUT contains requested (unique normalized targets), scraped (accepted charged rows), notFound, failed, invalidInput, duplicates (input and identity aliases with duplicateOf), videoIssues, and chargeLimitReached. Invalid-only input writes OUTPUT before raising; mixed input processes valid targets and records invalid entries without substituting demos. The default demo is used only when the target key is absent. Reruns are separate runs and can charge again.

Troubleshooting

ProblemSolution
Profile in failedTikTok temporarily blocked the request; rerun those handles.
Profile in notFoundCheck the spelling; the account may be deleted or banned.
videosStatus = unavailableVideo list was temporarily blocked; profile data is still returned. Rerun if needed.
Run stopped earlyYour max cost per run was reached; raise it.
invalidInput not emptyHandles may only contain letters, numbers, dots and underscores.

Only public data is collected. You are responsible for using it in compliance with TikTok's terms and applicable privacy laws (e.g. GDPR).