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

Fetch Cat

Fetch Cat

Maintained by Community

Actor stats

0

Bookmarked

8

Total users

3

Monthly active users

7 days ago

Last modified

Share

Export public TikTok follower and following lists for creator research, audience comparisons and outreach. This TikTok followers scraper returns relationship rows with account identities, public profile details and optional overlap summaries.

TikTok controls which lists are visible without logging in. Results can be partial, and unavailable lists do not establish that an account is private or deleted.

Quick start

Open the Actor, enter a public TikTok handle or profile URL, choose a relationship direction and start with a small limit. When the run finishes, open its dataset.

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

Prefer a video guide? This short Apify walkthrough shows you how to set up and run an Actor. It uses a different Actor, but the setup steps are the same.

Ready-to-run examples

Choose an example to start with a small, preconfigured input.

What you get

  • Public relationships: source and related account IDs, handles and profile URLs for either followers or following.
  • Profile details: biographies, public statistics, verification status, avatar URLs and account metadata when available.
  • Public biography contacts: email addresses and explicitly labelled or linked Instagram, YouTube and X/Twitter handles. Ordinary unlabelled mentions are not guessed as contact handles.
  • Overlap summaries: shared related accounts within the returned samples when requested for multiple source profiles.
  • Diagnostic records: information about limited, unavailable or unsuccessful profile lookups alongside useful results where possible.

Who is it for?

  • Influencer marketers qualifying public creators and contact details.
  • Researchers comparing public account relationships across creator samples.
  • Agencies preparing outreach lists from publicly visible biographies.
  • Automation teams exporting relationship data into spreadsheets, APIs and analysis workflows.

Input settings

SettingAPI keyMeaning
TikTok profilesprofilesHandles or profile URLs. The form requires this list and prefills NatGeo.
Relationship directiondirectionfollowing by default, or followers when publicly visible.
Maximum relationshipsmaxRelationshipsPerProfilePer-profile limit from 1 to 10000. Default 20.
Changed sincechangedSinceOptional ISO timestamp. Marks relationship rows current, but does not filter by date or calculate changes.
Include overlap summaryincludeOverlapSummaryDefault false. Adds shared-account summaries for multiple source profiles.
Proxy configurationproxyExisting Apify Proxy settings. Enabled by default.

The existing proxy setting uses automatic Apify Proxy routing when no group is selected. Select only groups available to your account. {"proxy":{"useApifyProxy":false}} explicitly disables Apify Proxy. This Actor does not advertise a custom-proxy URL input or a separate connection-mode selector.

For a comparison recipe, supply two profiles and enable overlap summaries:

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

Output data

The dataset contains three record types. Optional profile fields may be absent when TikTok does not supply them.

Field or groupMeaning
recordTyperelationship, profile-diagnostic or overlap-summary.
sourceProfileHandle, sourceProfileId, sourceProfileSecUid, sourceProfileUrl, sourceProfileNameRequested account identity.
directionWhether the row represents followers or following.
relatedProfileHandle, relatedProfileId, relatedProfileSecUid, relatedProfileUrl, relatedProfileNameRelated account identity.
sourceProfileSignature, relatedProfileSignaturePublic biography text.
sourceProfileBioLinkUrl, relatedProfileBioLinkUrlPublic biography links.
sourceProfileEmail, relatedProfileEmail, sourceProfileEmails, relatedProfileEmailsPublic biography email values and complete arrays.
sourceProfileInstagramHandle, relatedProfileInstagramHandleExplicit Instagram contact handles, with plural array variants.
sourceProfileYouTubeHandle, relatedProfileYouTubeHandleExplicit YouTube handles, with plural array variants.
sourceProfileTwitterHandle, relatedProfileTwitterHandleExplicit X/Twitter handles, with plural array variants.
sourceFollowerCount, relatedFollowerCountPublic follower counts. Following, friend, heart, video and digg counts are also returned when available.
sourceProfileRegion, relatedProfileRegionAccount region only when explicitly exposed by TikTok.
sourceProfileMetadata, relatedProfileMetadataNormalized metadata including available avatar sizes, language, timestamps, visibility, interaction and commerce settings.
relatedProfileEnrichmentStatuscomplete for a loaded public profile or base-only when optional detail was unavailable.
firstSeenAt, changeType, scrapedAtCurrent-run observation fields, not historical follow/unfollow dates.
requestedLimit, savedRelationships, truncated, pageExport progress and limit information.
diagnosticStatus, diagnosticMessageExplanation on a diagnostic record.
overlapKey, overlapProfileHandles, overlapCountShared account and matching source handles on a summary record.

Shape-only example, not an observed account or guaranteed result:

{
"recordType": "relationship",
"sourceProfileHandle": "example_source",
"sourceProfileUrl": "https://www.tiktok.com/@example_source",
"direction": "following",
"relatedProfileHandle": "example_related",
"relatedProfileUrl": "https://www.tiktok.com/@example_related",
"relatedProfileEnrichmentStatus": "base-only",
"changeType": "unknown",
"requestedLimit": 20,
"truncated": false
}

The contacts dataset view places public biography contacts beside account identities and public statistics. A base-only record still preserves the useful relationship and available baseline metadata.

Download your results

Open your run's dataset, choose Export and select JSON, CSV or Excel. JSON keeps nested fields together. CSV and Excel are useful when you want to review the records in a spreadsheet.

See Apify's download and export guide for the available formats and field options.

Pricing

This Actor uses pay-per-event pricing. The start event is charged once when the run first saves relationship rows. The result event charges for each saved relationship row.

Diagnostic records and overlap summaries do not incur those per-result charges. maxRelationshipsPerProfile bounds requested relationship rows for each source profile.

See the live Pricing tab for current rates and discounts.

Tips for best results

  • Start with a small sample. Check one profile with the default limit before requesting larger lists.
  • Try following first. TikTok may restrict followers more aggressively than following lists.
  • Keep comparisons bounded. Overlap describes only the returned samples, not the entire audience.
  • Keep prior exports. Compare saved snapshots in your own workflow if you need historical relationship changes.
  • Check enrichment status. Missing optional profile details do not invalidate an otherwise useful relationship row.

Limits and caveats

Only public data available without login is supported. No login cookies or private account access are required or offered as public inputs.

TikTok can restrict, truncate or temporarily block public lists. Diagnostic records do not guarantee successful extraction. A run with no validated relationships and unexpected lookup failures can fail while preserving diagnostic records.

The limit is a maximum, not a promised row count. Private or restricted lists can return diagnostics without relationship rows. Inaccessibility alone does not prove privacy or deletion.

changedSince does not return only new or lost followers. firstSeenAt reflects this run's observation time. Region is never inferred from proxy country, language or viewer location.

Automation and integrations

Save your settings for next time

Once you have an input that works for you, save it as an Apify task. This keeps your settings together so you can use them again without filling in the form from scratch.

Run on a schedule

Need fresh results regularly? You can schedule the Actor or a saved task to run at a time that suits you.

Each scheduled run collects the data again. If you want to compare results or highlight changes, add that step in your own workflow.

Send results to your other tools

Use n8n, Make or Zapier to connect this scraper to the rest of your workflow. For example, you could pass its results to an AI assistant or add records to a spreadsheet. Follow the Apify integration guides for your chosen tool.

For a custom connection, an Apify webhook can notify your app when a run finishes or fails. Your app can then fetch the results or handle the failure.

API usage

Want to collect this data from your own app or automation? The examples below send input to the scraper and show how to collect its results.

The Node.js and Python examples wait for the run to finish before reading its results. The cURL example starts the run and returns its details. Wait for that run to finish, then use its defaultDatasetId to fetch the results.

For setup instructions, see Apify's JavaScript client guide, Python client guide and Actor runs API reference.

cURL

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

Node.js

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)

MCP and AI agents

You can ask your AI assistant to collect data with TikTok Followers and Following Scraper and help you work with the results. The scraper returns the data, and your assistant can then summarize it, compare records or prepare notes.

Connect your assistant through the Apify MCP server. MCP gives your assistant a way to find this scraper, run it and read the results. Follow the official setup and sign-in guide for your app.

Easier setup with an Apify plugin

If you use a supported coding assistant, the official Apify plugin can set up the connection for you. It connects your assistant to Apify and includes instructions for common tasks. Follow the guide for your particular app.

Use Apify AI in Console

Prefer to keep everything in Apify? Open Apify AI in Console and ask it to find Fetch Cat's TikTok Followers and Following Scraper. You can describe the data you want and ask questions about the results.

Apify AI is currently in beta. It asks for confirmation before starting an Actor, and normal run charges apply.

Choose your assistant

Connect just this scraper

To keep your setup focused on this scraper, add this server configuration to a compatible MCP client:

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

Sign in to Apify when your client asks. If your client uses a Bearer token instead, follow its setup guide and keep the token in its secure configuration. Configuration formats vary by app, so use the linked guide if your client needs a different format.

Use Apify's general server

Already connected to the general Apify MCP server at https://mcp.apify.com? You can use it to find this scraper without adding another server. Ask your assistant to use TikTok Followers and Following Scraper by Fetch Cat, or give it the identifier fetch_cat/tiktok-followers-scraper.

Your assistant can check the available settings and retrieve the results from the returned run. If the run is still working, it should follow that run rather than start it again. Both connection options use Apify's hosted service.

Example requests

  • "Get up to 20 public accounts followed by NatGeo and put their profile URLs in a table."
  • "Collect a small public follower sample for NatGeo and summarize the available account biographies."
  • "Collect small public following samples for NatGeo and NBA, then show any accounts that appear in both."

Normal Apify charges apply. Check the live Pricing tab before asking your assistant to run a larger batch.

Pay with x402

If your AI agent has a funded wallet, it can pay for Apify usage through x402. This experimental option lets an agent use Apify without a conventional account.

Apify AGI provides a prepaid API token with a spending cap after payment. Your agent can use that token to run this scraper through the Apify API or an authenticated MCP connection.

Some MCP setups also support paying for each request directly. That is a different payment option, so check the official guide for its availability.

Follow the official guide for wallet setup, supported payment options and current terms. Apify handles the payments. Keep wallet keys and payment tokens in your agent's secure configuration.

Other ways for agents to pay

Apify also supports MPP for prepaid access through AGI and Skyfire for eligible Actors. If your agent already uses one of these, see the agentic payment guide to choose the right setup.

FAQ

Can I export a complete TikTok follower list?

Only when TikTok exposes enough public results within your requested limit. Public visibility and truncation can prevent a complete list. A returned sample is not proof that every follower was available.

Can I use this as a TikTok followers tracker?

You can collect repeated snapshots and compare them in your own workflow. The Actor does not itself calculate historical new or lost followers. changedSince only changes the current-run label.

complete means the related account's public profile loaded. base-only means optional detail was unavailable and the relationship was preserved with its available baseline fields. Neither value promises that TikTok exposed every profile field.

Can I scrape private followers or use login cookies?

No. This product exports publicly available logged-out data and does not provide a login-cookie input.

Why did I get diagnostics instead of relationship rows?

TikTok may restrict access, return an empty list or block a lookup. Read the diagnostic message rather than inferring that the account is private or deleted. Runs with unexpected failures and no validated relationships can fail while retaining diagnostic records.

Can I export to CSV or call it through an API?

Yes. Use dataset exports or the API examples above. MCP clients can also retrieve results through Apify's hosted server. Current charges are shown in the live Pricing tab.

Support and feedback

For custom additions or integrations, email hello@fetchcat.dev.

Found an error or have a feature request? Open an issue with the run URL, a non-sensitive input example and what you expected.

Need help sharing it? See Apify’s guide to sharing a run when reporting an issue. Sharing a run can give the developer access to its input, logs and results, so use a run that contains no sensitive data. Please leave out API tokens, passwords, cookies, private documents and personal data. Use a public sample URL or a redacted example instead.

Tried this scraper? We'd love to hear how it worked for you. Leave a review to help others choose the right tool and help us improve it. Your feedback means a lot to us.

Made with care for curious people, AI agents and the possibilities in data. ♥