Threads User Follower Scraper API
Pricing
from $1.00 / 1,000 results
Threads User Follower Scraper API
Collect the accounts that follow any public Threads profile — usernames, full names, profile pictures and account status — plus a profile summary (bio, links, tags) for each account you look up. Up to 10 accounts per run. Requires your own Threads Session ID. (Beta)
Pricing
from $1.00 / 1,000 results
Rating
5.0
(1)
Developer
Rush
Maintained by CommunityActor stats
1
Bookmarked
6
Total users
0
Monthly active users
3 days ago
Last modified
Categories
Share
Collect the accounts that follow any public Threads user — username, full name, verification status and profile picture for each follower, plus a full profile summary for each account you look up. Process up to 10 accounts in a single run.
What does Threads User Follower Scraper API do?
This Actor collects the accounts that follow Threads users and returns detailed profile information for each one. You can process multiple usernames in a single run.
For each user, the Actor first returns a profile summary row followed by individual follower rows — one per account that follows them.
Data you can extract
For the source user (profile row):
- Identity — username, full name, biography, bio links (all URLs from the profile link section)
- Stats — follower count, following count
- Status — verified badge, private account flag, Fediverse federation status
- Media — profile picture (standard and HD)
- Profile enrichment — community/interest tags, linked podcast name, URL, and platform
- Links — profile URL
For each follower account:
- Identity — username, full name
- Status — verified badge, private account flag, Threads account status (whether the account has joined Threads)
- Media — profile picture
- Links — profile URL
- Metadata — collection order
How to get your Session ID
This Actor requires a Threads Session ID for authentication. Here's how to get it:
Option 1: Browser Developer Tools
- Open threads.com in your browser and log in
- Press F12 to open Developer Tools
- Go to Application → Cookies →
https://www.threads.com - Find the cookie named
sessionidand copy its value - Paste it into the Session ID field in the Actor input
Option 2: Cookie Editor Extension
You can also use a browser extension like Cookie-Editor to quickly view and copy cookies. Simply install the extension, visit threads.com, and search for the sessionid cookie.
Disclaimer: Cookie-Editor is a third-party extension not affiliated with this Actor. As with any browser extension that accesses cookie data, please review its permissions and use at your own discretion.
Important notes
-
Get a fresh Session ID before each run. Session IDs can expire at any time — often without warning. For best results, copy a fresh Session ID from your browser immediately before starting each run.
-
Use a secondary account. Automated access may cause Threads to flag your account or temporarily restrict it. We strongly recommend using a secondary account rather than your primary one.
-
Collection stops at 50 followers per account unless you say otherwise. Set Max Followers Per Account to
0to remove your own limit — a single run still collects as much of each list as Threads serves it, which for a large account can be a small part of the total.
Input example
{"usernames": ["zuck","instagram"],"sessionId": "your-session-id-here","maxFollowers": 50}
| Field | Type | Description |
|---|---|---|
usernames | Array | Threads usernames to scrape (1–10). Accepts @username, username, or full profile URL |
sessionId | String | Your Threads sessionid cookie |
maxFollowers | Number | How many followers to collect from each account (default 50). Use 0 to remove your own limit |
Output example
Profile row (item_type: "profile"):
{"item_type": "profile","sourceUsername": "zuck","username": "zuck","userId": "63055343223","fullName": "Mark Zuckerberg","biography": "Mostly superintelligence and MMA takes","bioUrl": null,"bioUrls": [],"profileUrl": "https://www.threads.com/@zuck","profilePicUrl": "https://...","profilePicHdUrl": "https://...","isVerified": true,"fediverseEnabled": true,"profileTags": ["AI Threads", "UFC Threads", "AI", "MMA", "memes"],"podcastName": null,"podcastUrl": null,"podcastPlatform": null,"followerCount": 5704809,"followingCount": 464,"isPrivate": false,"index": null,"scrapedAt": "2026-08-10T02:30:54.611Z"}
The follower shown above is a placeholder. Field names and types are exactly what a run produces; counts and bios change over time, and a profile with no link in its bio returns
bioUrl: nulland an emptybioUrls.
Follower row (item_type: "follower"):
{"item_type": "follower","sourceUsername": "zuck","username": "example_follower","userId": "10000000001","fullName": "Example Follower","profileUrl": "https://www.threads.com/@example_follower","profilePicUrl": "https://...","isVerified": false,"isPrivate": false,"hasThreadsAccount": true,"index": 1,"scrapedAt": "2026-08-10T02:30:55.889Z"}
Output schema
Each run produces two row types in the same dataset:
| Field | Type | Profile | Follower |
|---|---|---|---|
item_type | String | "profile" | "follower" |
sourceUsername | String | ✓ | ✓ |
username | String | ✓ | ✓ |
userId | String | ✓ | ✓ |
fullName | String | ✓ | ✓ |
biography | String | ✓ | — ¹ |
bioUrl | String | ✓ | — ¹ |
bioUrls | Array | ✓ | — ¹ |
profileUrl | String | ✓ | ✓ |
profilePicUrl | String | ✓ | ✓ |
profilePicHdUrl | String | ✓ | — ¹ |
isVerified | Boolean | ✓ ³ | ✓ ³ |
fediverseEnabled | Boolean | ✓ ³ | — ¹ |
profileTags | Array | ✓ | — ¹ |
podcastName | String | ✓ | — ¹ |
podcastUrl | String | ✓ | — ¹ |
podcastPlatform | String | ✓ | — ¹ |
followerCount | Integer | ✓ | — ¹ |
followingCount | Integer | ✓ ³ | — ¹ |
isPrivate | Boolean | ✓ ³ | ✓ ³ |
hasThreadsAccount | Boolean | — | ✓ ³ |
index | Integer | null ² | ✓ |
scrapedAt | String | ✓ | ✓ |
¹ Only available on the source user's profile row — not included for individual follower accounts.
² Field is always present in the row but set to null — collection order only applies to follower rows. It records the order followers arrived during the run, not their position in the account's followers list, and it is not stable between runs.
³ Null when Threads does not state it for that account.
Run summary
Every run that reaches the collection stage publishes a Run Summary you can open from the Output tab. It states, for each account you asked for, how many followers were collected and how the collection ended:
| Outcome | Meaning |
|---|---|
complete | The full accessible followers list was collected |
limit_reached | Your Max Followers Per Account limit was reached |
limited_by_threads | Threads served only part of this account's followers list |
partial | Collection was cut short — some followers are missing |
private_account | The account is private, so its followers are not accessible |
not_found | No account with that username exists on Threads |
not_readable | The profile could not be read on this attempt |
not_reachable | Threads could not be reached for this account |
stopped_early | The run stopped while this account was still being collected — anything already collected for it is in the results |
not_attempted | The run ended before this account was reached |
Example:
{"requestedUsers": 3,"usersWithFollowers": 2,"followersCollected": 60,"perUser": [{ "username": "zuck", "outcome": "limit_reached", "followersCollected": 30, "profileFollowerCount": 5704836 },{ "username": "nonexistent_user_xyzabc99999", "outcome": "not_found", "followersCollected": 0, "profileFollowerCount": null },{ "username": "mosseri", "outcome": "limit_reached", "followersCollected": 30, "profileFollowerCount": 1033850 }]}
Each entry also carries profileFollowerCount — the follower total the profile itself lists — so
you can compare what was collected against what the account claims without opening the dataset.
How it works
- Checks your Session ID before any collecting starts, so a session that cannot work fails immediately
- Looks up each username and collects their profile information
- Collects available follower accounts — usernames, display names, verification status, and more
- Keeps going until your limit is reached, the collection is complete, or Threads stops serving more of that list
- Saves results as they come in — no need to wait for the full run to finish
- Publishes a run summary stating, per account, whether the list came back whole
Tips for best results
- Private accounts are automatically handled. Their profile information will still be collected, but their followers list is not accessible. You can identify them by the
isPrivate: truefield. - A username that does not exist is reported as such. It is called out separately from a profile that could not be read, so a typo is easy to spot.
Frequently asked questions
Why is a Session ID required?
Threads requires authentication to access followers lists. Without a valid session, the Actor cannot retrieve the data.
Is it safe to use my Session ID?
Your Session ID is marked as a secret field, and this Actor never writes it to the run log or to the results. We strongly recommend using a secondary Threads account rather than your primary one as a precaution.
Why did I get fewer followers than the profile count shows?
Threads decides how much of a followers list it serves, and how much that is varies by account. Every account returned is deduplicated, and the Run Summary marks any account whose list came back short — so you always know which lists are whole. Setting Max Followers Per Account to 0 removes your own limit; it does not make Threads serve more than it will.
Can I scrape private accounts?
No. Private accounts are not accessible. Their profile information will be collected and returned with isPrivate: true, but their followers list will not be available.
What happens if authentication fails?
The Actor checks your Session ID before it starts collecting and stops immediately with a clear message if the session is expired or not signed in, so the run stops before it starts collecting. Obtain a fresh Session ID and try again.
How do I know whether a followers list is complete?
Open the Run Summary in the Output tab. Each requested account carries an outcome —
complete, limited_by_threads, partial, and so on — so a short list is never ambiguous.
Can I scrape multiple users at once?
Yes. The usernames field accepts up to 10 usernames per run.
Integrations
Connect Threads User Follower Scraper API with other apps and services using Apify integrations. Export data to Google Sheets, Slack, Zapier, Make, and many more.
More Threads and social media tools
Looking for post content, replies, search results, or video downloads from Threads and other platforms? Browse the rest of the collection on our Apify profile.
Disclaimer
This Actor is intended for learning, research, and personal use. You are solely responsible for how you use it and for ensuring that your use of it, and of any data it returns, complies with all laws, regulations and agreements applicable to you.
Threads may change its platform at any time, which can affect what this Actor is able to collect.
Using a Session ID involves providing authentication credentials to the Actor. We strongly recommend using a secondary account, as automated access may result in account restrictions or temporary bans. You are solely responsible for how you use this tool and any consequences that may arise from its use.
Threads follower scraper, Threads followers list, Threads follower list extractor, Threads user follower API, Threads account tracker, Threads network analysis, Threads influencer followers, Threads social graph, Threads data export, social media scraper, Apify actor, OpenClaw, Claude Code, Gemini, Codex, Antigravity