TikTok Followers and Following Scraper

Export public TikTok follower and following relationship rows for audience analysis, outreach, and monitoring.

Data fields

FieldTypeDescription
recordTypestringRelationship, profile diagnostic, or overlap summary row.
sourceProfileHandlestring | nullValue exported as sourceProfileHandle.
sourceProfileIdstring | nullValue exported as sourceProfileId.
sourceProfileSecUidstring | nullTikTok's stable public secure identifier for the requested profile.
sourceProfileUrlstring | nullValue exported as sourceProfileUrl.
sourceProfileNamestring | nullCurrent public display name of the requested profile.
sourceProfileSignaturestring | nullPublic biography or signature shown on the requested profile.
sourceProfileBioLinkUrlstring | nullPublic external link shown in the requested profile's biography.

Input preview

profilesTikTok profiles *
directionRelationship direction
maxRelationshipsPerProfileMaximum relationships per profile
changedSinceChanged since
includeOverlapSummaryInclude overlap summary
proxyProxy configuration

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

This TikTok followers scraper exports public TikTok follower and following relationship rows for audience research, influencer outreach, creator monitoring, and audience overlap analysis.

Use this Actor as a TikTok followers tracker when you need the identity graph behind public TikTok profiles: who a creator follows, which public followers are visible, and which related accounts overlap across multiple creators. It can also produce a TikTok follower list for research workflows when TikTok exposes the public follower surface.

What can you do with it?

  • Build creator outreach lists from public TikTok relationship data
  • Compare audiences across multiple creator profiles
  • Monitor public relationship lists on a schedule
  • Enrich influencer research with biographies, public emails, explicitly labelled Instagram, YouTube, and X/Twitter handles, bio links, account regions when available, all avatar sizes, account timestamps, friend counts, public stats, and account metadata
  • Keep private, limited, empty, or blocked profiles visible through diagnostic rows instead of silent failures
  • Resume the same run after a migration or restart without duplicating completed profiles, relationship rows, or the start charge

Who is it for?

  • Influencer marketers building creator or outreach lists
  • Agencies comparing public creator audiences
  • Researchers mapping public TikTok account relationships
  • Analysts monitoring public follower and following lists over time
  • Automation teams connecting TikTok relationship data to APIs, schedules, or AI agents

Input example

{
  "profiles": ["natgeo", "tiktok"],
  "direction": "following",
  "maxRelationshipsPerProfile": 20,
  "includeOverlapSummary": true
}

Output example

{
  "recordType": "relationship",
  "sourceProfileHandle": "natgeo",
  "sourceProfileId": "6780344874811442181",
  "sourceProfileSignature": "Step into wonder and find your inner explorer with National Geographic 🌎",
  "sourceProfileBioLinkUrl": "spr.ly/natgeotiktok",
  "sourceProfileLanguage": "en",
  "sourceProfileVerified": true,
  "sourceFriendCount": 58,
  "sourceProfileUrl": "https://www.tiktok.com/@natgeo",
  "direction": "following",
  "relatedProfileId": "6731478322289017861",
  "relatedProfileHandle": "izzy_observes",
  "relatedProfileUrl": "https://www.tiktok.com/@izzy_observes",
  "relatedProfileName": "Izzy | Brooklyn Mom",
  "relatedProfileSignature": "Wildly specific parenting analogies nobody asked for.",
  "relatedProfileLanguage": "en",
  "relatedProfileCreatedAt": "2019-08-31T23:40:17.000Z",
  "relatedProfileVerified": false,
  "relatedFollowerCount": 401,
  "relatedFollowingCount": 534,
  "relatedFriendCount": 49,
  "relatedHeartCount": 11721,
  "relatedVideoCount": 37,
  "relatedProfileEnrichmentStatus": "complete",
  "relatedProfileMetadata": {
    "avatarThumbUrl": "https://...",
    "avatarMediumUrl": "https://...",
    "avatarLargeUrl": "https://...",
    "followingVisibility": 2,
    "commentSetting": 0,
    "duetSetting": 0,
    "stitchSetting": 0,
    "downloadSetting": 0,
    "organization": false,
    "commerceUser": false,
    "playlistTabVisible": false
  },
  "firstSeenAt": "2026-07-30T01:08:21.552Z",
  "changeType": "unknown",
  "truncated": false,
  "scrapedAt": "2026-07-30T01:08:21.552Z"
}

Input settings

Field Type Description Default
profiles array of strings TikTok handles or profile URLs to inspect. []
direction string following or followers. Public follower visibility depends on TikTok's logged-out surface. following
maxRelationshipsPerProfile integer Maximum relationship rows per source profile. 20
changedSince string Optional ISO timestamp for scheduled monitoring workflows. none
includeOverlapSummary boolean Add summary rows for related profiles seen under more than one source profile. false
proxy object Apify Proxy configuration. Automatic routing is used unless you explicitly select a group available to your account. Apify Proxy enabled

Tips and limits

  • Start with following; TikTok may limit public follower lists more aggressively than following lists.
  • Use smaller limits for new profiles, then increase after you confirm output quality.
  • Leave the proxy group empty to use automatic Apify Proxy routing. Choose a named group only if your Apify account has access to it.
  • Private, limited, unavailable, or blocked profiles produce diagnostic rows when possible.
  • The Actor only exports public TikTok data visible through TikTok's logged-out public experience. It does not use login cookies or access private account data.
  • Email and social-handle fields are emitted only for explicit biography text or direct public bio links. Ordinary unlabelled @mentions are not guessed as Instagram handles.
  • Region is emitted only when TikTok explicitly returns an account-region value. The Actor does not substitute the proxy country, viewer locale, language, or latest-video location.

API usage

import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/tiktok-followers-scraper').call({
  profiles: ['natgeo'],
  direction: 'following',
  maxRelationshipsPerProfile: 20,
});
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-followers-scraper').call(run_input={
    'profiles': ['natgeo'],
    'direction': 'following',
    'maxRelationshipsPerProfile': 20,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

cURL:

curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~tiktok-followers-scraper/runs?token=YOUR_APIFY_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{"profiles":["natgeo"],"direction":"following","maxRelationshipsPerProfile":20}'

MCP and AI agents

Claude CLI setup:

claude mcp add --transport http apify "https://mcp.apify.com?tools=fetch_cat/tiktok-followers-scraper"

Claude Desktop configuration:

{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com?tools=fetch_cat/tiktok-followers-scraper"
    }
  }
}

Example prompts:

  • "Export the first 20 public accounts followed by natgeo and return their profile URLs."
  • "Compare the public following lists for these two creators and show any overlap."
  • "Run this Actor for this TikTok handle and summarize verified related accounts."

Support

Open an issue from the Actor page if a run fails, returns unexpected diagnostics, or has missing fields. Include the Apify run ID or run URL, the input JSON, expected output, actual output, and one reproducible public TikTok profile URL.

Common questions

Questions and answers reused from the canonical actor README.

What data can this Actor export?

You can export source profile identity, relationship direction, related profile IDs, handles, URLs, public profile metadata, first-seen timestamps, truncation fields, diagnostics, and optional overlap summaries.

For each public related profile, the Actor also returns its signature, bio link, account region when explicitly exposed, validated biography emails, explicitly labelled or linked Instagram, YouTube, and X/Twitter handles, all avatar sizes, language, creation and modification timestamps, friend/follower/following/like/video counts, visibility settings, interaction settings, organization and commerce flags, and visible profile tabs. Missing source fields are omitted rather than filled with invented values.

The contacts dataset view puts public biography contact fields beside the TikTok handle, profile URL, follower count, and verification status for outreach qualification.

What does relatedProfileEnrichmentStatus mean?

complete means the Actor loaded the related account's full public profile metadata. base-only means TikTok did not make that optional profile detail available during the run, so the Actor preserved the relationship and the identity, signature, status, and count fields already supplied with the relationship list.

Can I run TikTok Followers and Following Scraper through an API, schedule, or MCP client?

Yes. You can call it with the Apify API, schedule it from Apify, or connect agent workflows through the Apify MCP URL shown above.

How much does it cost to use TikTok Followers and Following Scraper?

The Actor uses pay-per-event pricing. Check the live Pricing tab linked above for current rates.

Can it scrape private followers?

No. It only exports public data available through TikTok's public logged-out experience.