TikTok Profile Scraper (Engagement Rate & Brand Deals) avatar

TikTok Profile Scraper (Engagement Rate & Brand Deals)

Pricing

from $16.50 / 1,000 creator reports

Go to Apify Store
TikTok Profile Scraper (Engagement Rate & Brand Deals)

TikTok Profile Scraper (Engagement Rate & Brand Deals)

Scrape TikTok creator profiles plus their recent public videos into one row each: followers, likes, engagement rate, median views, posting cadence, top hashtags and brand-deal share. Same formula for every creator. Not-found accounts are free. No login. $30 per 1,000 creator reports.

Pricing

from $16.50 / 1,000 creator reports

Rating

0.0

(0)

Developer

locaihost data

locaihost data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Vet TikTok creators before you book them: give it handles or profile URLs and get one row per creator with the public profile plus engagement rate, median views, posting cadence, top hashtags and brand-deal share from their recent public videos, as JSON, CSV or Excel. No login, no cookies.

  • Vet influencers before a campaign: is the engagement real, is the creator still posting, and how much of their feed is already sponsored?
  • Compare a shortlist side by side: every creator is measured with the same formulas, so two creators' numbers mean the same thing.
  • Re-check a roster every month: follower growth, cadence and paid-deal share for the creators you already work with.
  • Feed an influencer platform or an AI agent: one list of handles in, the same columns out for every creator.

Quick start

Paste this into the JSON tab of the input and click Start:

{"handles": ["khaby.lame", "@duolingo", "https://www.tiktok.com/@nba"]}

You get 3 creator reports in about a minute (creators are checked in parallel, so 6 creators take about as long as 3). Handles, @handles, profile URLs and video URLs all work; the same creator listed twice is fetched and charged once.

What data can I get?

GroupFields
Statusstatus, statusMessage, reportType, videosStatus, input
Profilehandle, nickname, bio, bioLink, bioLinkUrl, verified, profileUrl, userId, secUid, language, createdAt, avatarUrl + avatarUrlExpiresAt
Account typeisBusinessAccount, businessCategory, isTikTokShopSeller, isOrganization
CountsfollowerCount, followingCount, heartCount (total likes), videoCount, countsExact
Analyticsanalytics.engagementRate, engagementRatePerFollower, medianViews, avgViews, viewsPerFollower, postingCadencePerWeek, daysSinceLastPost, brandDealRate, brandDealVideoIds, topHashtags, lifetimeLikesPerVideo, lifetimeLikesPerFollower, videosAnalyzed, windowStart, windowEnd
Recent videosrecentVideos[]: url, createdAt, description (caption), views, likes, comments, shares, saves, durationSec, hashtags, paidPartnership, isAd

How the analytics are worked out:

FieldWhat it means
engagementRate(likes + comments + shares) ÷ views over the analysed videos, weighted by views. Saves are not counted
engagementRatePerFollowerAverage interactions per video ÷ followers
medianViews, avgViewsTypical views per video. The median isn't skewed by one viral post
viewsPerFollowerMedian views ÷ followers: does the audience actually see the posts?
postingCadencePerWeekVideos per week from the oldest analysed video to now, never over less than one week
brandDealRateShare of posts with TikTok's "Paid partnership" label, TikTok's ad flag, or a disclosure hashtag such as #ad, #sponsored or #brandpartner
topHashtagsThe hashtags used most, with how many videos use each

Pinned videos are left out of every number: they are a showcase and can be years old.

One real row (run on 2026-10-18, shortened; recentVideos holds the 30 videos behind the numbers):

{
"handle": "duolingo",
"status": "ok",
"reportType": "creator-report",
"profileUrl": "https://www.tiktok.com/@duolingo",
"nickname": "Duolingo",
"bioLinkUrl": "https://duolingo.com/",
"verified": true,
"isOrganization": true,
"isBusinessAccount": true,
"businessCategory": "Shopping & Retail",
"followerCount": 18266486,
"heartCount": 505437895,
"videoCount": 1203,
"countsExact": true,
"videosStatus": "included",
"analytics": {
"videosAnalyzed": 30,
"engagementRate": 0.170582,
"medianViews": 618950,
"viewsPerFollower": 0.033884,
"postingCadencePerWeek": 5.62,
"daysSinceLastPost": 4.5,
"brandDealRate": 0,
"topHashtags": [{"tag": "le_sserafim", "videos": 4}, {"tag": "duolingo", "videos": 1}]
},
"recentVideos": [{"url": "https://www.tiktok.com/@duolingo/video/7696211706317409550", "createdAt": "2026-10-13T17:52:19.000Z", "views": 2200000, "likes": 444600, "comments": 7012, "shares": 81000, "saves": 49960, "durationSec": 12, "paidPartnership": false}]
}

Every creator you list gets a row, and status says what happened:

statusMeaningCharged
okProfile read (reportType says whether as a creator report or a profile)Yes
not-foundNo account uses this handle (or it was renamed)No
privatePrivate account. The row carries nothing else about itNo
unavailableBanned, restricted or deactivatedNo
blockedTikTok blocked the request, even after switching proxy. Try again laterNo
errorThe page couldn't be readNo

The dataset has two views (Creators and Recent videos) and exports to JSON, CSV, Excel or HTML. The run's SUMMARY record counts creators by status.

How much does it cost?

You pay per creator returned. There is no charge for Apify platform usage on top, and the residential proxy TikTok's video list needs is included.

RowFree and StarterScaleBusiness
Creator report (profile + analytics + recent videos)$30 per 1,000$22.50 per 1,000$16.50 per 1,000
Creator profile (profile only)$3 per 1,000$2.25 per 1,000$1.65 per 1,000

Plus $0.00005 per run start. Apify's free $5 monthly credit covers about 160 creator reports (or about 1,600 profile-only rows). Free-plan runs return up to 25 creators per run (only charged creators count); any paid Apify plan removes the cap.

A row is charged as a profile, not a report, when you turn includeVideos off or when TikTok doesn't show that creator's videos (videosStatus says why). Example: 200 creators, of which 185 come back as reports, 10 as profiles and 5 not found, cost 185 × $0.03 + 10 × $0.003 = $5.58 at the Starter price.

What's free: not-found, private, unavailable, blocked and unreadable creators, repeats of a creator already in the list, entries that aren't a TikTok handle, creators skipped by onlyNew, and creators not started before the run's time limit or your spending limit. To cap a run's spend, set Maximum cost per run in the run options: the run stops cleanly and says how many creators were left.

Limits, stated up front

  • Logged-out view only. The Actor sees what any visitor without an account sees. TikTok hides some posts from logged-out visitors, so a creator's video list can be incomplete and the analytics cover the public posts only.
  • Counts are what TikTok shows publicly. Profile counts are exact when TikTok sends exact numbers (countsExact: true). Per-video views, likes, comments and shares come rounded by TikTok above 10,000 (for example 2,200,000); saves are exact. Videos posted in the last few hours are still collecting views.
  • Up to 60 videos per creator (maxVideosPerCreator, 30 by default). 30 covers about a month for a creator who posts daily.
  • No audience demographics, follower lists, comments or contact details. Those need a login or belong to other people.
  • The paid-deal share is a signal, not an audit. Undisclosed deals can't be detected. On brand accounts TikTok's ad flag marks the brand's own promoted posts, so it isn't counted there.
  • Short links (vm.tiktok.com/…) aren't supported. Open them and paste the profile URL.
  • Speed: creators run up to 6 at a time at the default 4 GB memory (fewer at lower memory). A creator report usually takes 20 to 60 seconds, depending on how quickly TikTok hands over the video list. Near the run's time limit the Actor stops starting new creators and ends cleanly with what it has.
  • TikTok can change its site at any time. When it does, rows say so and nothing is charged for them.

Privacy. Public creator data only. The Actor never logs in, never uses cookies or accounts, and never asks you for one. Email addresses and phone numbers are removed from bios, names and captions before anything is stored, and a bio link that is a phone or email (WhatsApp, mailto:) is dropped. Private accounts get no data at all.

Only new since last run, and schedules

Turn on onlyNew in a saved task and the Actor skips creators that task has already returned and charged, so a growing list only vets (and charges for) the new names. Skipped creators cost nothing. It's off by default, so a normal run always returns everyone. To re-check a roster on a timetable, set up a schedule under Schedules in Apify Console.

Integrations: API, n8n, Make and AI agents

API. Run it and get the rows back in one call:

curl -X POST "https://api.apify.com/v2/acts/locaihost~tiktok-creators/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"handles": ["khaby.lame", "@duolingo"]}'

Apify's API clients for Python and JavaScript work the same way.

n8n, Make, Zapier, Google Sheets, Slack, webhooks. Apify's built-in integrations send each run's dataset wherever you need it.

AI agents (MCP). Add this Actor to Claude, Cursor or any MCP client with https://mcp.apify.com/?tools=locaihost/tiktok-creators, then ask something like "Which of these 10 creators has the highest engagement rate and the fewest sponsored posts?"

FAQ

How much does it cost to scrape TikTok creator profiles?

On the Free and Starter plans, $30 per 1,000 creator reports ($22.50 on Scale, $16.50 on Business) and $3 per 1,000 profiles ($2.25 on Scale, $1.65 on Business). Not-found and private accounts are free. Apify's free $5 monthly credit covers about 160 creator reports.

Can I use it through the API or from Python?

Yes. Use the run-sync-get-dataset-items call above, or Apify's Python and JavaScript clients. Every run's data is also available as JSON, CSV or Excel from its dataset.

Can I use it from an AI agent?

Yes. Through the Apify MCP server (https://mcp.apify.com/?tools=locaihost/tiktok-creators) any MCP client can call it with a list of handles and read the rows back.

The Actor reads only what TikTok shows to anyone who is not logged in: public profiles and public videos. It never logs in, skips private accounts and never collects follower lists, commenters, email addresses or phone numbers. TikTok's own terms restrict automated access, so check that your use fits them and the data-protection rules that apply to you. You are responsible for how you use the results.

Why are some fields empty?

private, not-found and other non-ok rows carry only the status and the reason. When TikTok doesn't show a creator's videos, the row has the profile but no analytics or recentVideos, and videosStatus says why. bioLink and businessCategory are empty when the creator hasn't set them.

How is the engagement rate calculated?

Likes, comments and shares summed over the analysed videos, divided by their total views. A video with ten times the views carries ten times the weight, and pinned videos are left out.

More from locaihost data

Did it help?

If this saved you time, a quick rating on the Store helps other people find it.

Support

Something not working, or a field you need? Open an issue on the Issues tab: we answer issues within 24 hours.