TikTok Followers and Following Scraper avatar

TikTok Followers and Following Scraper

Pricing

from $0.14 / 1,000 relationship rows

Go to Apify Store
TikTok Followers and Following Scraper

TikTok Followers and Following Scraper

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

Pricing

from $0.14 / 1,000 relationship rows

Rating

0.0

(0)

Developer

Hanna Nosova

Hanna Nosova

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

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

FieldTypeDescriptionDefault
profilesarray of stringsTikTok handles or profile URLs to inspect.[]
directionstringfollowing or followers. Public follower visibility depends on TikTok's logged-out surface.following
maxRelationshipsPerProfileintegerMaximum relationship rows per source profile.20
changedSincestringOptional ISO timestamp for scheduled monitoring workflows.none
includeOverlapSummarybooleanAdd summary rows for related profiles seen under more than one source profile.false
proxyobjectApify Proxy configuration.Apify Proxy enabled

Output fields

  • recordType - relationship, profile-diagnostic, or overlap-summary
  • sourceProfileHandle, sourceProfileId, sourceProfileSecUid, sourceProfileUrl, sourceProfileName
  • sourceProfileSignature, sourceProfileBioLinkUrl, sourceProfileRegion, sourceProfileLanguage, sourceProfileCreatedAt
  • sourceProfileEmail, sourceProfileEmails, plus singular and complete-array Instagram, YouTube, and X/Twitter handle fields extracted from explicit public biography labels or links
  • sourceProfileVerified, sourceProfilePrivate
  • sourceFollowerCount, sourceFollowingCount, sourceFriendCount, sourceHeartCount, sourceVideoCount, sourceDiggCount
  • sourceProfileMetadata - complete normalized source-profile metadata
  • direction
  • relatedProfileId, relatedProfileSecUid, relatedProfileHandle, relatedProfileUrl
  • relatedProfileName, relatedProfileSignature, relatedProfileBioLinkUrl, relatedProfileRegion
  • relatedProfileEmail, relatedProfileEmails, plus singular and complete-array Instagram, YouTube, and X/Twitter handle fields extracted from explicit public biography labels or links
  • relatedProfileAvatarUrl, relatedProfileVerified, relatedProfilePrivate, relatedProfileLanguage, relatedProfileCreatedAt
  • relatedFollowerCount, relatedFollowingCount, relatedFriendCount, relatedHeartCount, relatedVideoCount, relatedDiggCount
  • relatedProfileIsOrganization, relatedProfileCommerceUser, relatedProfileCommerceCategory
  • relatedProfileMetadata - complete normalized metadata, including all avatar sizes, account modification times, story and embed status, visibility and interaction settings, seller and organization flags, and visible profile tabs
  • relatedProfileEnrichmentStatus - complete when the full public profile was available or base-only when the relationship row was preserved with its baseline metadata
  • firstSeenAt, changeType, scrapedAt
  • requestedLimit, savedRelationships, truncated, page
  • diagnosticStatus, diagnosticMessage for limited, empty, or blocked profiles
  • overlapKey, overlapProfileHandles, overlapCount for overlap summary rows

Ready-to-run examples

Pricing

This Actor uses pay-per-event pricing: you pay for starting a productive run and for relationship rows saved to the dataset. Diagnostic rows are not charged. See the Actor's live Pricing tab for the current rates before running it.

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.
  • 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."

FAQ

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.

Why did I get a diagnostic row?

A diagnostic row means the source profile was private, limited, empty for the selected direction, temporarily blocked, or unavailable. This makes partial runs auditable instead of silently returning zero rows.

Does changedSince return only new or lost followers?

In v1, changedSince supports monitoring workflows but rows are marked from the current scrape. True historical new/lost comparison requires a prior saved snapshot.

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.