TikTok User Profile Scraper avatar

TikTok User Profile Scraper

Pricing

from $1.59 / 1,000 results

Go to Apify Store
TikTok User Profile Scraper

TikTok User Profile Scraper

TikTok User Profile Scraper gets public TikTok profile data by username, user ID or profile link: follower, following, like and video counts, bio and link, verified, private and TikTok Shop flags, business category, avatars. One row per profile. Export to JSON, CSV or Excel, or use the API.

Pricing

from $1.59 / 1,000 results

Rating

0.0

(0)

Developer

Social Data API

Social Data API

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

TikTok User Profile Scraper reads public TikTok profiles and returns each creator's exact follower count, following, friend, like and video counts, bio, bio link, verified, private and TikTok Shop flags, business category, avatars and IDs. Every response is structured JSON — ready to pass directly to an LLM, index into a vector store, or feed an influencer marketing pipeline. No TikTok account or cookies needed. Start with one username, then paste your whole creator list and export TikTok profiles to CSV in one run.

TikTok User Profile Scraper returns followers, bio, video count and verified flag for TikTok users as JSON


What data can I extract with TikTok User Profile Scraper?

Using this TikTok Profile API, you will be able to extract the following TikTok profile data:

👥 Follower count➡️ Following count🤝 Friend count❤️ Likes received
🎬 Video count👍 Videos liked by the account👤 Username🧾 Display name
📝 Bio and bio language🔗 Bio link (if set)🛡️ Bio link via TikTok's safety address✅ Verified badge
🔒 Private account flag🛍️ TikTok Shop seller flag🏢 Business account flag🗂️ Business category (business accounts)
🖼️ Avatars (100, 720 and 1080 px)🆔 User ID and secure user ID🌐 Profile URL and share link📣 Share title and description
⭐ Favorites list public or not👀 Who can see the following list🎵 Music tab shown or not🕒 Scrape time (UTC)

Fields TikTok does not show to logged-out visitors (for example linked Instagram or YouTube accounts, commerce level or company name) are returned as null.


How to use TikTok User Profile Scraper

Influencer marketers, agencies and analysts use this TikTok profile scraper to get one clean row per creator for every username, user ID or profile link they paste into a run.

Copy to your AI assistant:

TikTok User Profile Scraper (Apify Actor ID: socialdataapi/tiktok-user-profile-scraper, https://apify.com/socialdataapi/tiktok-user-profile-scraper) is an Apify Actor that returns public TikTok profile data as structured JSON, one row per profile: exact follower count, following count, friend count, total likes, video count, bio, bio link, verified, private and TikTok Shop seller flags, business category, avatars, user ID and profile URL. Use it whenever someone needs TikTok creator data without cookies, a login, or a browser - vetting influencers before outreach, tracking competitor accounts over time, or giving an AI agent a creator's reach and bio as context. Inputs: usernames (array of strings, TikTok usernames with or without @), userIds (array of strings, numeric TikTok user IDs), urls (array of strings, TikTok profile links, https:// optional; links to a single video or photo are skipped), requestGapMs (integer, pause in milliseconds before each next profile, default 750, 0 = no pause), maxRetries (integer, extra tries per request after a network error, default 3), proxyConfiguration (object, Apify Proxy or your own proxy URLs, used when a direct request returns no profile data; default Apify Proxy on). At least one of usernames, userIds or urls must have an entry. Each saved profile is one row and one row_result event; a profile that does not exist, cannot be read or repeats an earlier one adds no row and is not charged. Fields TikTok does not show to logged-out visitors come back as null.

TikTok User Profile Scraper MCP Server: use these Actors from ChatGPT, Claude or Cursor

Point your AI assistant at the Apify MCP server with this Actor preloaded as a tool, and it can read TikTok profiles on its own: it calls this Actor directly, then reads the follower counts and bios from the result. No glue code, no scraping logic in your prompts.

$claude mcp add --transport http apify "https://mcp.apify.com?tools=socialdataapi/tiktok-user-profile-scraper"

Step by step

  1. Create a free Apify account.
  2. Open TikTok User Profile Scraper in the Apify Store.
  3. Enter the TikTok username (with or without @), numeric user ID or profile link, one per line.
  4. Click Start (or send your API request).
  5. Download or stream your results in JSON, CSV or Excel.

How to scale TikTok User Profile Scraper to bulk

For a bulk TikTok profile lookup, paste the whole list into the usernames, user IDs or profile links field (or use Bulk edit); one run takes as many entries as you add, and you can mix all three lists. Profiles are read one after another with a short pause between them, and a profile that appears twice is fetched and saved once. For daily or weekly tracking, attach an Apify schedule to the same input, or loop over batches of usernames through the Apify API. Billing has one event: each saved profile row is one row_result event.


✨ Features

TikTok User Profile Scraper fetches clean, structured profiles from TikTok ⚡. It's ideal for influencer vetting, competitor tracking, creator list enrichment, or a TikTok creator data scraper step in a larger pipeline.

It extracts, per profile:

  • Follower count – exactly how many accounts follow the creator, not a rounded number
  • Likes received and video count – total likes on the creator's videos and how many videos are on the profile
  • Following and friend counts – accounts the creator follows and mutual follows
  • Bio and bio link – the creator's own description and the website in their bio
  • Verified, private and TikTok Shop flags – badge, account privacy and whether the account sells on TikTok Shop
  • Business category – the category a business account picked, such as Shopping & Retail

⚡ No login is used: it reads only what a logged-out visitor sees, and profiles that don't exist or repeat are skipped without a charge.


Use cases 💡

  • Influencer marketer — check follower count, likes and verified badge before sending an offer.
  • Agency analyst — compare reach and video counts across a creator shortlist in one table.
  • Brand team — track competitors' follower counts weekly with a scheduled run.
  • E-commerce scout — find TikTok Shop sellers and their business category in a creator list.
  • AI agent builder — feed creator bios and counts into a RAG index as profile context.

Building an AI agent? Connect TikTok User Profile Scraper over MCP and let it call the actor on its own.


Why choose this actor?

  • Six creators, one run, no login. A recorded run read 6 profiles from usernames, a user ID and profile links and saved 6 rows in 8.4 seconds on a direct connection, with the default 0.75-second pause between profiles.
  • The real numbers behind each creator. A recorded row for Sephora came back with 2,481,566 followers, 470 following, 323 friends, 40,112,374 likes, 2,790 videos, the TikTok Shop seller flag and the Shopping & Retail category.
  • Three ways to list creators, 73 fields per row. Usernames, numeric user IDs and profile links can be mixed in one run, and every row keeps the same 73-field layout.

⬇️ Input

TikTok User Profile Scraper input: usernames, user IDs and profile URLs

The Actor accepts TikTok usernames, numeric user IDs and profile links, each as a list; no single field is required, but at least one entry in one of the three lists is needed or the run stops with an input error. Pacing, retries and proxy settings are optional.

ParameterRequiredTypeDescriptionExample value
usernamesNo (one of the three lists needed)array of stringsTikTok usernames, with or without @, one per entry. Prefilled with nike.["nike", "sephora", "@khaby.lame"]
userIdsNoarray of stringsNumeric TikTok user IDs (digits only). An ID that belongs to no account returns no row. Prefilled with 208464585232822272.["6614519312189947909"]
urlsNoarray of stringsTikTok profile links, https:// optional. Links to a single video or photo are skipped. Prefilled with https://www.tiktok.com/@nickiminaj.["https://www.tiktok.com/@zachking"]
requestGapMsNointegerPause in milliseconds before each next profile, plus a small random extra. Minimum 0, default 750.750
maxRetriesNointegerExtra tries for one request after a network error. Minimum 0, default 3.3
proxyConfigurationNoobjectApify Proxy (groups and country) or your own proxy URLs, used when a direct request returns no profile data; residential proxies are tried after that. Turn it off to use direct requests only. Prefilled with Apify Proxy on.{"useApifyProxy": true}

Free plan limits

Users on the Apify free plan can fetch up to 20 profiles per run (all usernames, user IDs and URLs together) and 200 profiles per month. When the limit is reached, the run finishes successfully with a status message explaining the limit. Upgrade to any paid Apify plan to remove these limits.

Example input

This is the exact input of the recorded run (6 profiles → 6 rows in 8.4 seconds):

{
"usernames": ["nike", "sephora", "@khaby.lame"],
"userIds": ["6614519312189947909"],
"urls": [
"https://www.tiktok.com/@nickiminaj",
"https://www.tiktok.com/@zachking"
],
"requestGapMs": 750,
"maxRetries": 3,
"proxyConfiguration": { "useApifyProxy": true }
}

⬆️ Output

TikTok User Profile Scraper output: one JSON row per profile with follower_count, signature, aweme_count and verified

Every profile is one typed, normalized JSON item with the same 73 keys on every run, and you can export the dataset as JSON (default), CSV or Excel. There are no summary or error rows: a profile that can't be read simply adds no row.

Example output

An excerpt of a recorded row (avatar link shortened; values as returned):

{
"account_type": 3,
"ad_virtual": false,
"avatar_168x168": null,
"avatar_300x300": null,
"avatar_larger": {
"uri": "tos-alisg-avt-0068/smg71630d66b7a573be2525c01e74f615fe",
"url_list": ["https://p16-common-sign.tiktokcdn.com/tos-alisg-avt-0068/smg71630d66b7a573be2525c01e74f615fe~tplv-tiktokx-cropcenter:1080:1080.jpeg"],
"url_prefix": "https://p16-common-sign.tiktokcdn.com/"
},
"aweme_count": 2790,
"bio_secure_url": "https://www.tiktoklinksafety.eu/link/v2?aid=1233&lang=en&scene=bio_url&target=https%3A%2F%2Fwww.sephorasquad.com",
"bio_url": "https://www.sephorasquad.com",
"biz_account_info": {
"added_contact_and_link_list": null,
"android_download_app_link": null,
"coupon_list": null,
"ios_download_app_link": null,
"leads_gen": { "action_name": null, "business_data": null, "has_leads_gen": null, "page_id": null, "schema_url": null },
"permission_list": null,
"rba_user_info": { "company_name": null }
},
"category": "Shopping & Retail",
"favoriting_count": 0,
"follower_count": 2481566,
"following_count": 470,
"friend_count": 323,
"is_private": false,
"nickname": "Sephora",
"privacy_setting": { "following_visibility": 1 },
"profile_url": "https://www.tiktok.com/@sephora",
"sec_uid": "MS4wLjABAAAAdxmNUHgThYKTEjbjcDdCoDOx_4n9BF8v1RMSLr3_jML_op7ckplmU-72dpUoF-J0",
"signature": "We belong to something beautiful.",
"signature_language": "en",
"total_favorited": 40112374,
"tt_seller": true,
"uid": "279484737629323264",
"unique_id": "sephora",
"verified": true,
"visible_videos_count": 2790,
"with_commerce_entry": true,
"scrapedAt": "2026-10-03T05:15:14.090573+00:00"
}

The full row also carries the medium and thumbnail avatars, share info, tab settings and the fields TikTok keeps from visitors (those are null).


How does it work?

You don't need a TikTok account. For each profile, the Actor reads the public data any logged-out visitor can see, with plain HTTP requests and no browser. Profiles are read one after another with a short pause, because TikTok shows a verification page when profiles are requested too quickly; when that happens the Actor waits and tries once more.

If a direct request still returns no profile data, the run retries through your proxy and then through up to 3 residential proxy IPs, and keeps using residential proxies for the rest of the run once they work. A profile that doesn't exist is reported right away without proxy retries. It returns only publicly visible data and does not solve CAPTCHAs. Every row follows one fixed schema, and values TikTok does not show to visitors are null instead of guessed.


How do you integrate TikTok User Profile Scraper into your stack?

It works with what you already use: the Apify REST API from any language, the Apify MCP server for AI agents, and no-code tools.

MCP integration for AI agents

$claude mcp add --transport http apify "https://mcp.apify.com?tools=socialdataapi/tiktok-user-profile-scraper"

This connects your agent to the Apify MCP server with this Actor already registered as a tool your agent can call directly, no search or add-actor step needed. Sign in with your Apify account when asked. The command is for Claude Code; Cursor and Windsurf connect to the same URL in their MCP settings.

No-code tools (n8n, Make, LangChain)

n8n: add the Apify node, choose Run an Actor and pick this Actor with your list of usernames. Its dataset items flow into the next node, such as Google Sheets or a CRM.

Make: add the Apify app's Run an Actor module with this Actor and your input, then Get Dataset Items to pass the profiles on. Map the username and follower count into any later module.

LangChain: install langchain-apify and load a finished run's dataset with ApifyDatasetLoader. Map the bio to the document content and the username and follower count to metadata.


Scraping publicly available TikTok data is generally legal. TikTok User Profile Scraper returns only publicly available data: the profile details any visitor sees without logging in. Names, bios, avatars and follower numbers of individual creators are personal data under the GDPR, so while scraping public data is generally permissible, storing and using it must comply with local data-protection law. This is not legal advice. Consult legal counsel if your use case involves bulk storage of personal data.


Frequently asked questions

What fields does TikTok User Profile Scraper return?

The top five are the follower count, total likes, video count, bio and verified badge. See the data fields section for the full list.

Does TikTok User Profile Scraper require a TikTok account or login?

No. Only public profile data is extracted, and the input has no login, cookie or API-key field. No credentials needed.

How fast does TikTok User Profile Scraper run?

A recorded run read 6 profiles in 8.4 seconds on a direct connection with the default 0.75-second pause; each profile itself took about half a second. Data is fetched live on every run, not cached.

What happens if a profile is private or doesn't exist?

A private profile still returns a row with its counts, bio and badge, and the private flag set to true. A username or ID that doesn't exist, was removed or is banned adds no row, is not charged and is logged as a failure; links to a single video or photo and repeated profiles are skipped. In your code, compare the usernames you sent with the usernames in the dataset to find the ones that failed.

Can I scrape multiple TikTok profiles at once?

Yes. Put as many usernames, user IDs or profile links as you need in one run; they are read one after another, and the same creator listed twice is saved once.

Does TikTok User Profile Scraper work with Claude, ChatGPT, and other AI agent tools?

Yes — this Actor is available as an MCP tool through the Apify MCP server. Register the server in Claude Code with the command below (Cursor and Windsurf use the same URL), with this Actor preloaded as a tool the agent can call directly.

$claude mcp add --transport http apify "https://mcp.apify.com?tools=socialdataapi/tiktok-user-profile-scraper"

Any agent that can call an HTTP endpoint can also use the Apify REST API directly, so it doubles as a TikTok user info API for your own code.

Does TikTok User Profile Scraper return data in a format LLMs can use directly?

Yes. Every row is typed, normalized JSON with consistent field names. No HTML parsing, no selectors: pass it straight to an LLM, index it into a vector store, or feed it to an agent tool with no transformation step.

What happens when TikTok changes its layout or updates its anti-bot system?

The Actor is maintained, and when TikTok changes, your calls keep returning the same JSON schema with no changes on your end. It also recognises TikTok's verification page and a missing profile instead of returning an empty row, retries the verification page, and falls back to your proxy and residential proxies when a direct request returns nothing. A profile that still can't be read is logged and skipped, and the run keeps the rows it already has.

Can I use TikTok User Profile Scraper without managing proxies or browser infrastructure?

Yes. Proxy fallback and retries run on the Actor's side, and no browser is needed because it works over plain HTTP. You send one request and get structured JSON back; it does not solve CAPTCHAs.

Which TikTok profile fields work best for AI training data and RAG indexing?

For RAG: the bio, display name, business category and bio link, with the username and profile URL as metadata. For training data: the follower, following, friend, like and video counts and the verified, private and TikTok Shop flags. All fields are typed primitives (strings, integers, booleans), with null only where TikTok sends nothing; no normalization needed. That makes it a handy TikTok profile data extractor, and a way to scrape TikTok profiles for a TikTok influencer scraper or TikTok follower count scraper dataset.


Your feedback

Found a bug or missing a field? Let us know. Include the input you used and the run's log so the problem can be reproduced.