TikTok Profile Scraper

Export public TikTok profiles by handle or URL: followers, likes, bios, links, verification, account settings, commerce and seller signals, profile ratios, live status, and recent videos when TikTok exposes them.

Data fields

FieldTypeDescription
profileUrlstringCanonical TikTok profile URL.
handlestringTikTok username without @.
userIdstring | nullValue exported as userId.
secUidstring | nullValue exported as secUid.
nicknamestring | nullValue exported as nickname.
signaturestring | nullValue exported as signature.
verifiedboolean | nullValue exported as verified.
privateAccountboolean | nullValue exported as privateAccount.

Input preview

handlesTikTok handles
profileUrlsTikTok profile URLs
maxProfilesMaximum profiles
includeRecentVideosInclude recent video summaries
maxVideosPerProfileMaximum recent videos per profile
maxConcurrencyMaximum concurrency

API and agents

This actor can be run through Apify API, datasets, webhooks, schedules, and the official Apify MCP server.

How this actor works

See example inputs, outputs, API usage, and practical limits before running this actor on Apify.

Open Apify page

Export public TikTok profiles from handles or URLs, including follower and like counts, bios, verification, avatars, bio links, account settings, commerce and seller signals, profile ratios, live status, and rich recent public post summaries.

Use this Actor to collect TikTok creator, influencer, brand, publisher, nonprofit, or competitor profile data for creator discovery, account enrichment, influencer research, brand monitoring, and recurring profile-stat tracking. Results can be downloaded as CSV, JSON, Excel, XML, RSS, or used through the Apify Dataset API.

Automate TikTok profile workflows in n8n: Use the ready-made Export TikTok profiles to Google Sheets with Apify workflow for clean profile exports, or Monitor TikTok creator growth with Apify, Google Sheets, and Telegram to track profile changes and receive alerts.

At a glance

  • Profile lookup: Enter TikTok handles such as tiktok or full public profile URLs.
  • Account data export: Collect usernames, profile URLs, display names, bios, avatars, verification, private-account flags, region, language, and IDs when available.
  • Follower and like counts: Export public follower, following, like, video, friend, and related profile counters.
  • Bio link collection: Save public bio links for creator lead qualification and account research.
  • Business and account signals: Export commerce category, seller and organization flags, account settings, profile-tab availability, and live-room status when public.
  • Ready-made ratios: Use follower/following and likes/video ratios without calculating them downstream.
  • Recent video summaries: Optionally include captions, dates, views, likes, comments, shares, bookmarks, pinned/ad flags, dimensions, hashtags, mentions, music, covers, slideshow images, and media URLs. If the fast profile response omits posts, one bounded anonymous web fallback is attempted.
  • API export: Send profile rows to spreadsheets, creator CRMs, BI tools, dashboards, or AI agents.

What can it do?

TikTok Profile Scraper extracts public account metadata from TikTok profile pages and saves one dataset row per profile.

  • Scrape handles or URLs: Use usernames with or without @, full profile URLs, or both.
  • Collect public profile stats: Export follower count, following count, likes, video count, verification, and account metadata.
  • Save bio context: Capture bio text, avatar URL, public bio link, share title, and share description.
  • Optionally include videos: Add rich nested recent video summaries without paginating through the account's full post history or requiring a TikTok login.
  • Build repeatable monitoring: Schedule the same profile list to track account-level changes over time.

Common workflows

  • Influencer discovery: Build lists of public creators with profile stats, bios, avatars, and bio links.
  • Creator CRM enrichment: Add TikTok profile metadata to creator, affiliate, or partnership databases.
  • Brand monitoring: Track competitor or brand accounts and compare public account metrics over time.
  • Lead generation: Use bio links, descriptions, and profile stats to qualify creator or business accounts.
  • Reporting dashboards: Feed public follower, like, and video-count snapshots into recurring reports.
  • API workflows: Use the Actor as a TikTok profile data API alternative for public account metadata.

What data can you extract?

The Actor returns one dataset row per public TikTok profile.

Field Description
profileUrl Canonical TikTok profile URL
handle TikTok username
userId Public TikTok user ID when available
secUid Public TikTok secure user ID when available
nickname Display name
signature Bio text
verified Whether the profile is verified
privateAccount Whether the account is private
secret Public secret flag when available
region Profile region when available
language Profile language when available
avatarUrl Profile image URL
followers Follower count
following Following count
likes Total profile likes
videosCount Public video count
diggCount Digg count when available
friendCount Friend count when available
bioLink Link shown in the profile bio
shareTitle Public profile share title
shareDescription Public profile share description
accountCreatedAt Public account creation timestamp when exposed
handleModifiedAt / nicknameModifiedAt Public profile-change timestamps when exposed
commentSetting / duetSetting / stitchSetting / downloadSetting TikTok's public numeric account-setting values
commerceUser / commerceCategory Commerce-account signal and category
tiktokSeller / isOrganization Seller and organization flags
liveRoomId / isLive Public live-room signal
likesPerVideo Total likes divided by public video count
followerFollowingRatio Followers divided by following count
recentVideosAvailable / recentVideosCount Whether TikTok exposed video summaries and how many were returned
recentVideosStatus available, not-requested, no-public-posts, or unavailable so an empty list is not mistaken for zero posts
recentVideosSource Whether summaries came from the initial profile HTML or the anonymous web fallback
recentVideosWarning Explanation when recent posts could not be returned
recentVideos Optional recent video or slideshow summaries with engagement, media, hashtag, mention, and music fields
scrapedAt Timestamp of extraction

Recent video summary fields

When TikTok makes recent posts available through either public route, each recentVideos entry can include:

Group Fields
Identity and timing videoId, permanent videoUrl, description, createdAt, textLanguage
Engagement playCount, diggCount, commentCount, shareCount, collectCount
Content flags isAd, isPinned, hashtags, mentions
Video metadata duration, width, height, ratio, format
Media links coverUrl, dynamicCoverUrl, originalCoverUrl, playUrl, downloadUrl, imageUrls
Music musicId, musicTitle, musicAuthor, musicOriginal, musicDuration, musicPlayUrl, musicCoverUrl

The Actor first reuses the profile response. If that response omits posts, it can open one short-lived anonymous browser page to capture TikTok's public post-list response. It never paginates the full history or requires a login cookie.

Example input

{
  "handles": ["tiktok", "apify"],
  "profileUrls": [{ "url": "https://www.tiktok.com/@tiktok" }],
  "maxProfiles": 5,
  "includeRecentVideos": true,
  "maxVideosPerProfile": 12,
  "maxConcurrency": 3,
  "runTimeSecs": 180
}

Example output

{
  "profileUrl": "https://www.tiktok.com/@tiktok",
  "handle": "tiktok",
  "userId": "107955",
  "secUid": "MS4wLjABAAAA...",
  "nickname": "TikTok",
  "signature": "It starts on TikTok",
  "verified": true,
  "privateAccount": false,
  "region": "US",
  "language": "en",
  "avatarUrl": "https://...",
  "followers": 90000000,
  "following": 800,
  "likes": 350000000,
  "videosCount": 1200,
  "bioLink": "https://www.tiktok.com/",
  "commerceUser": true,
  "commerceCategory": "Media & Entertainment",
  "isOrganization": true,
  "isLive": false,
  "likesPerVideo": 291666.67,
  "followerFollowingRatio": 112500,
  "recentVideosAvailable": false,
  "recentVideosCount": 0,
  "recentVideosStatus": "unavailable",
  "recentVideosSource": null,
  "recentVideosWarning": "TikTok did not make recent public posts available in this run.",
  "recentVideos": [],
  "scrapedAt": "2026-06-20T00:00:00.000Z"
}

How to run it

  1. Open the Actor on Apify.
  2. Add TikTok handles, profile URLs, or both.
  3. Set maxProfiles.
  4. Decide whether to include recent video summaries.
  5. Set maxVideosPerProfile if recent videos are enabled.
  6. Start the run and export the dataset.

Search tips

  • Use handles for quick input: tiktok, apify, and @creator are accepted.
  • Use profile URLs for precision: Full URLs help when handles are copied from a browser.
  • Deduplicate account lists: The Actor processes unique profiles from combined handles and URLs.
  • Track account metrics over time: Schedule the same profile list to build follower and like-count snapshots.
  • Disable videos for fast enrichment: Set includeRecentVideos to false when you only need account-level fields.

Limits and caveats

  • The Actor extracts publicly visible TikTok profile data only.
  • It does not log in, scrape private profile data, export follower lists, crawl complete post history, or return one dataset row per video.
  • Logged-out TikTok profile HTML can contain profile data but omit the post list. When recent posts are requested, the Actor attempts one bounded anonymous browser fallback. recentVideosStatus distinguishes a successful list, a deliberate opt-out, an account with no public posts, and TikTok withholding the list in that run.
  • The fallback is serialized and only starts when enough shared run time remains. If it fails, the account-level profile row is still saved and recentVideosWarning explains the missing optional data.
  • A TikTok login cookie is not required. TikTok may still withhold the post-list response from some datacenter IPs; a user-configured proxy can improve availability. The Actor does not silently switch to a paid residential proxy group.
  • TikTok CDN playback, download, cover, music, and slideshow URLs may be signed and short-lived. The permanent videoUrl remains suitable for durable references.
  • TikTok can return verification challenges or rate limits. The Actor retries these responses with backoff; an optional proxy configuration can improve reliability.
  • A mixed run with usable and skipped profiles finishes with RUN_SUMMARY.status set to PARTIAL. A run with no usable profiles fails instead of reporting a misleading green success.
  • Public counts may differ from the TikTok app due to caching, localization, or delayed updates.

Integrations

You can connect TikTok profile data to downstream tools:

  • Export CSV or Excel to creator research spreadsheets.
  • Send profile rows to a CRM or influencer database.
  • Load public profile stats into BI dashboards.
  • Trigger webhooks after scheduled profile monitoring runs.
  • Combine profile outputs with TikTok hashtag, video, trends, and ads datasets.

API usage

Node.js

import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/tiktok-profile-scraper').call({
  handles: ['tiktok', 'apify'],
  maxProfiles: 5,
  includeRecentVideos: true
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
import os

client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('fetch_cat/tiktok-profile-scraper').call(run_input={
    'handles': ['tiktok', 'apify'],
    'maxProfiles': 5,
    'includeRecentVideos': True,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

cURL

curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~tiktok-profile-scraper/runs?token=YOUR_APIFY_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{"handles":["tiktok","apify"],"maxProfiles":5,"includeRecentVideos":true}'

MCP and AI agents

This Actor can be used through the official Apify MCP server at https://mcp.apify.com.

For a focused single-Actor tool setup, use:

https://mcp.apify.com?tools=fetch_cat/tiktok-profile-scraper

Use the same JSON keys shown in the input configuration table, including handles, profileUrls, maxProfiles, includeRecentVideos, maxVideosPerProfile, maxConcurrency, runTimeSecs, and proxyConfiguration.

Support

If a run fails, returns no data, or a field looks wrong, open an issue from the Actor page.

Please include the Apify run ID or run URL, input JSON, one example public URL, query, or input item, what you expected, and what the dataset returned. Small reproducible inputs make parsing or site-layout issues much faster to fix.

Privacy and data handling

This Actor runs with Apify limited permissions and only processes data needed for the documented run. It uses content lookup inputs and public posts, profiles, videos, comments, or channel metadata needed for the requested output to produce the output dataset and sends requests to public Tiktok Profile pages/endpoints; results are stored in Apify run storage for your account. FetchCat does not use your inputs or outputs for advertising, does not use them for model training, and does not retain them outside the Apify run except for transient support debugging when you explicitly share run details. You are responsible for using the Actor lawfully, respecting the target site's terms, and avoiding unnecessary personal or sensitive data in inputs.

Common questions

Questions and answers reused from the canonical actor README.

Does this Actor require a TikTok login?

No. It extracts publicly visible TikTok profile data only. Recent-post fallback uses an anonymous web session, not an account cookie. If TikTok withholds posts from the current network route, the profile row is still returned with an explicit warning.

Can I input both handles and URLs?

Yes. The Actor combines handles and profileUrls, deduplicates them, and processes up to maxProfiles.

Does it return one row per video?

No. It returns one row per profile. Recent videos are nested summaries when enabled and available.

Can I monitor follower growth?

Yes. Schedule repeat runs and compare saved profile rows over time.

Is this a TikTok user scraper or account scraper?

Yes, for public account/profile metadata. It does not export private user data or follower lists.