Tiktok Followers Following Scraper
Pricing
from $2.40 / 1,000 relationship results
Tiktok Followers Following Scraper
TikTok Followers / Following Scraper extracts public follower and following lists from TikTok profiles, including usernames, profile URLs, bios, stats, and relationship context. Use it for influencer research, lead generation, audience analysis, and competitor mapping.
Pricing
from $2.40 / 1,000 relationship results
Rating
0.0
(0)
Developer

Delowar Munna
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
TikTok Followers / Following Scraper
Extract TikTok followers and following lists with public profile metadata for influencer research, lead generation, audience mapping, and analytics workflows.

What does this actor do?
TikTok Followers / Following Scraper is an Apify Actor that extracts public follower and following lists from one or more TikTok profiles, including:
- Relationship records — one row per follower/following with full profile metadata, stats, and relationship lineage
- Lead-gen fields — email-in-bio detection, Instagram/YouTube handles, and external URLs
- Summary records — per-profile/mode run stats with item counts, duration, and status
- Deduplication — within-profile and cross-profile dedup for clean audience lists
This actor is designed as a relationship intelligence tool — not just a list extractor, but an analytics-ready pipeline for audience research, lead generation, and network mapping.
Modes
| Mode | Description |
|---|---|
followers | Scrape accounts that follow the target profile |
following | Scrape accounts that the target profile follows |
both | Scrape both followers and following in a single run |
Input
| Parameter | Type | Default | Description |
|---|---|---|---|
profiles | string[] | ["@tiktok"] | TikTok profiles to scrape — accepts username, @handle, or profile URL (required) |
mode | string | "followers" | followers, following, or both (required) |
maxItemsPerProfile | integer | 100 | Max accounts per profile per mode (1–5000) |
includeSourceProfile | boolean | true | Include source profile metadata on each row |
includeSummary | boolean | true | Emit summary records per profile/mode |
deduplicateWithinProfile | boolean | true | Remove duplicate users within each profile |
deduplicateAcrossProfiles | boolean | false | Remove users already seen from other profiles |
stopOnError | boolean | false | Stop entire run on first profile failure |
debugMode | boolean | false | Enable verbose logging |
proxyConfiguration | object | — | Apify proxy configuration (residential recommended) |
Profile input formats
The actor accepts profiles in any of these formats — you can mix them freely:
- Username:
charlidamelio - With @:
@charlidamelio - Profile URL:
https://www.tiktok.com/@charlidamelio
Duplicates are removed automatically after normalization.
Sample input: Influencer audience research
Scrape followers of AI-related profiles to discover audience composition and find adjacent creators.
{"profiles": ["claude", "@openai", "https://www.tiktok.com/@google"],"mode": "followers","maxItemsPerProfile": 100,"includeSourceProfile": true,"includeSummary": true,"deduplicateWithinProfile": true,"proxyConfiguration": {"useApifyProxy": true}}
Sample input: Competitor audience overlap
Scrape followers of competitor accounts with cross-profile dedup enabled to find unique audiences per brand and measure overlap.
{"profiles": ["@nike", "@adidas", "@puma"],"mode": "followers","maxItemsPerProfile": 500,"includeSourceProfile": true,"includeSummary": true,"deduplicateAcrossProfiles": true,"proxyConfiguration": {"useApifyProxy": true}}
Sample input: Creator network mapping
Discover who top creators follow to find niche communities and potential collaborators.
{"profiles": ["@charlidamelio", "@khaby.lame"],"mode": "following","maxItemsPerProfile": 200,"includeSourceProfile": true,"proxyConfiguration": {"useApifyProxy": true}}
Output
The actor outputs a dataset where each relationship is one row with full source lineage. Results are available in four dataset views:
- Overview — record type, source profile, relationship type, key profile data, and stats
- Profiles — full profile details with follower/following counts and metadata
- Lead Gen — contact signals: email-in-bio, Instagram handle, YouTube handle, external URL
- Summary — per-profile/mode run stats with items returned, dedup counts, and duration

Overview record
The Overview view shows each relationship with the key profile data at a glance.
{"recordType": "relationship","sourceUsername": "claude","relationshipType": "followers","position": 12,"username": "hannahustles","displayName": "Hanna 🤍","profileUrl": "https://www.tiktok.com/@hannahustles","isVerified": false,"accountPrivate": false,"followersCount": 8475,"followingCount": 1361,"likesCount": 77777,"videosCount": 417,"bio": "Tech • Fashion • Creator Commerce\nFounder scaling @Love and War\nI build income systems in public\n↓ Partnerships + collabs\nHannalaikin@gmail.com","scrapedAt": "2026-03-17T04:16:08.732Z"}
Profiles record
The Profiles view shows full profile details including avatar, external URL, and user ID.
{"username": "hannahustles","displayName": "Hanna 🤍","profileUrl": "https://www.tiktok.com/@hannahustles","userId": "7500424991441290271","isVerified": false,"accountPrivate": false,"bio": "Tech • Fashion • Creator Commerce\nFounder scaling @Love and War\nI build income systems in public\n↓ Partnerships + collabs\nHannalaikin@gmail.com","followersCount": 8475,"followingCount": 1361,"likesCount": 77777,"videosCount": 417,"profilePictureUrl": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/e4a99e9aa571bc1fe51fae0669da808d~tplv-tiktokx-cropcenter:1080:1080.jpeg?...","externalUrl": null,"sourceUsername": "claude","relationshipType": "followers","position": 12}
Lead Gen record
The Lead Gen view surfaces contact signals extracted from bios and links — useful for outreach targeting.
{"username": "chiefofstafftok","displayName": "KG | Chief of Staff","profileUrl": "https://www.tiktok.com/@chiefofstafftok","bio": "👩🏻💻 Chief of Staff in NYC helping you grow your career & work smarter \n📩 kg@coachingwithkg.com\n💡 Views and ideas are my own (not my employers)","emailInBio": "kg@coachingwithkg.com","instagramHandle": null,"youtubeHandle": null,"externalUrl": null,"isVerified": false,"followersCount": 18101,"likesCount": 110683,"videosCount": 210,"sourceUsername": "claude","relationshipType": "followers"}
Summary record
When includeSummary is enabled, the actor emits one summary record per profile/mode with run statistics.
{"recordType": "summary","sourceUsername": "claude","sourceProfileUrl": "https://www.tiktok.com/@claude","relationshipType": "followers","requestedMaxItems": 100,"returnedItems": 100,"deduplicatedItems": 0,"runStatus": "completed","isPrivateOrRestricted": false,"startedAt": "2026-03-17T04:16:06.351Z","finishedAt": "2026-03-17T04:16:16.514Z","durationSeconds": 10,"scrapedAt": "2026-03-17T04:16:16.514Z"}
Error record
Failed profiles emit structured error records so individual failures don't break the run.
{"recordType": "error","sourceInput": "@deleteduser","sourceUsername": "deleteduser","sourceProfileUrl": "https://www.tiktok.com/@deleteduser","relationshipType": "followers","errorType": "secUid_extraction_failed","errorMessage": "Could not extract secUid for @deleteduser. Profile may be private, deleted, or page structure changed.","sourceResolved": false,"isPartial": false,"scrapedAt": "2026-03-17T05:30:00.000Z","runMode": "followers"}
Output fields
Relationship / lineage fields
| Field | Description |
|---|---|
recordType | Always "relationship" for relationship rows |
sourceInput | The original profile input as provided |
sourceUsername | Normalized username of the source profile |
sourceProfileUrl | Full TikTok profile URL of the source |
sourceUserId | TikTok user ID of the source profile |
relationshipType | "followers" or "following" |
position | Position/rank in the returned list |
scrapedAt | ISO 8601 timestamp of extraction |
runMode | The mode setting for this run |
Related profile identity fields
| Field | Description |
|---|---|
username | TikTok username |
profileUrl | Full TikTok profile URL |
userId | TikTok user ID |
displayName | Display name / nickname |
bio | Profile bio/signature |
isVerified | Verified badge status |
profilePictureUrl | Avatar URL |
accountPrivate | Whether the account is private |
Profile stats fields
| Field | Description |
|---|---|
followersCount | Follower count |
followingCount | Following count |
likesCount | Total likes/hearts received |
videosCount | Number of videos posted |
Lead-gen / contact fields
| Field | Description |
|---|---|
externalUrl | Bio link URL |
emailInBio | Email address detected in bio text |
instagramHandle | Instagram handle detected in bio or bio link |
youtubeHandle | YouTube handle detected in bio or bio link |
Source profile fields (when includeSourceProfile is enabled)
| Field | Description |
|---|---|
sourceDisplayName | Source profile display name |
sourceBio | Source profile bio |
sourceIsVerified | Source profile verified status |
sourceFollowersCount | Source profile follower count |
sourceFollowingCount | Source profile following count |
sourceLikesCount | Source profile total likes |
sourceVideosCount | Source profile video count |
Quality / parsing fields
| Field | Description |
|---|---|
inputNormalized | Normalized source username |
sourceResolved | Whether the source profile was successfully resolved |
isPartial | Whether results are partial (interrupted) |
errorType | Error classification (null on success) |
errorMessage | Error message (null on success) |
Best-effort fields
The following fields depend on what TikTok includes in its API responses. They are extracted when available and returned as null when not:
emailInBio, instagramHandle, youtubeHandle, externalUrl, profilePictureUrl
Use cases
- Influencer audience research — get follower lists from seed creators to find adjacent creators in the same niche
- Competitor audience mining — scrape follower lists of competitor accounts to identify potential audience pools
- Creator network mapping — understand who a creator follows and how creators cluster in a niche
- Lead generation — extract public bio links, emails, Instagram handles for outreach targeting
- Community segmentation — compare accounts across several seed profiles and identify overlap with cross-profile dedup
- Enrichment pipeline — use returned usernames as input into TikTok Profile Scraper or external CRMs
How this differs from TikTok Profile Scraper
| Feature | Profile Scraper | Followers/Following Scraper |
|---|---|---|
| Focus | Single profile metadata | Relationship lists |
| Output | 1 row per profile | 1 row per follower/following |
| Lead-gen | Basic profile fields | Email, Instagram, YouTube detection from bios |
| Modes | N/A | Followers, following, or both |
| Dedup | N/A | Within-profile and cross-profile |
| Summary | N/A | Per-profile/mode run stats |
| Batching | Multiple profiles | Multiple seed profiles with error isolation |
Tips and best practices
- Start small — use
maxItemsPerProfile: 20–50for initial exploration, then increase - Use
bothmode sparingly — it doubles the API calls per profile - Enable cross-profile dedup for audience overlap reduction across competitor accounts
- Filter by
recordType— use"relationship"to get only relationship rows,"summary"for run health - Use the Lead Gen view — surfaces contact signals (email, Instagram, YouTube) for outreach workflows
- Schedule for monitoring — run on a schedule to track audience changes over time
- Chain with other actors — feed returned usernames into TikTok Profile Scraper for deeper analysis
Proxy configuration
Residential proxies are recommended for reliable TikTok scraping.
{"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Integrations
- Google Sheets — export follower/following data to spreadsheets for team dashboards
- Slack/email — set up notifications when a run completes
- Webhooks — trigger downstream workflows on completion
- API — access results programmatically via the Apify API
- Other actors — feed discovered usernames into TikTok Profile Scraper for deeper analysis
Limitations
- Results per profile depend on how much data TikTok returns via its API. The actual number may be lower than
maxItemsPerProfile. - Some fields are best-effort and may be
nulldepending on what TikTok includes in its responses (see "Best-effort fields" above). - This actor scrapes public data only. Private accounts will return error records.
- Very large follower lists (millions) may be partially extracted depending on TikTok's rate limiting.
- TikTok may change its API structure, which could affect extraction reliability.
FAQ
How many results can I get per profile? Up to 5000 per profile per mode. The actual number depends on TikTok's API response behavior and rate limiting.
Why are some fields null?
Lead-gen fields (emailInBio, instagramHandle, youtubeHandle) and externalUrl depend on what users have in their bios and what TikTok includes in its API responses. They are extracted on a best-effort basis and returned as null when not available.
What happens if a profile fails?
Failed profiles emit a structured error record with recordType: "error" and errorMessage. Other profiles continue unless stopOnError is enabled.
What is the difference between within-profile and cross-profile dedup? Within-profile removes duplicate users in a single profile's list. Cross-profile removes users already seen from other profiles in the same run — useful for identifying unique followers across competitors.
Can I scrape private accounts? No. Private accounts will return an error record indicating the profile is restricted.
How does "both" mode work? The actor navigates to the profile once, extracts the secUid, then runs both the followers and following API pagination loops sequentially. This is more efficient than two separate runs.
What is the recordType field?
Every output row has a recordType for easy filtering: "relationship" for follower/following rows, "summary" for run stats, or "error" for failed profiles. Use this to separate record types in spreadsheets or downstream workflows.
How does the actor extract emails and social handles? The actor scans each user's bio text for email patterns, Instagram mentions (e.g., "IG: @handle", "instagram: handle"), and YouTube references. It also checks bio link URLs for Instagram and YouTube domains.