Threads Profile Scraper - Follower Count Tracker & Bio Emails avatar

Threads Profile Scraper - Follower Count Tracker & Bio Emails

Pricing

from $1.20 / 1,000 post scrapeds

Go to Apify Store
Threads Profile Scraper - Follower Count Tracker & Bio Emails

Threads Profile Scraper - Follower Count Tracker & Bio Emails

Scrape Threads profiles in bulk: follower count, bio, bio links, emails and @mentions in the bio, verification and posts. Schedule it to track follower growth and get only new posts. No login.

Pricing

from $1.20 / 1,000 post scrapeds

Rating

0.0

(0)

Developer

Mayowa Ogedengbe

Mayowa Ogedengbe

Maintained by Community

Actor stats

0

Bookmarked

12

Total users

2

Monthly active users

4 days ago

Last modified

Share

Threads Profile Scraper and API: Follower Count Tracker, Bio, Emails and Posts

Scrape Threads (Meta) profiles in bulk by handle. This Threads profile scraper returns follower count, bio, bio links, emails and @mentions found in the bio, verification status, profile pictures, and the account's posts as structured JSON, CSV or Excel.

Put it on a schedule and it becomes a Threads follower tracker: every run reports each account's follower change since the last run and returns only the posts that are new.

No login. No cookies. No account pool.

New: follower change and only new posts since the last run. Turn on monitoring mode and every scheduled run reports each account's follower gain or loss, and returns and bills only posts you have not received before. How it works

Sample output (real run)

HandleDisplay nameFollowersVerifiedBio
@zuckMark Zuckerberg5,731,614YesMostly superintelligence and MMA takes

Each profile record also carries bio links with titles, privacy status, standard and high-resolution profile pictures, the stable numeric id, and the canonical profile URL. Turn on posts to get that account's content with full text, media, and engagement counts.

Why choose this Threads profile scraper

FeatureThis ActorOfficial Threads APITypical Store alternative
Login or Meta tokenNoneApp review plus tokenOften none
Follower count and full bioYesYesVaries
Profile posts beyond the first pageYesLimitedRarely
Follower change since the last runYes, built inNoRarely
Emails and @mentions pulled from the bioYesNoRarely
Only new posts on scheduled runsYesNoRarely
Thousands of handles in one runYesOne at a timeVaries
Price per profile$0.002Free, cappedVaries
Price per 1,000 posts$1.80, no start feeFree, capped$2.50 to $20

What it costs: building a 1,000-account list with details only is about $2. Pulling posts adds $1.80 per 1,000 posts.

What you get

One profile record per handle:

FieldDescription
username, fullNameHandle and display name
followerCountCurrent follower count
biographyBio text
bioLinksOutbound links in the bio, with titles
bioEmailsEmail addresses written in the bio or linked with mailto:
bioMentionsOther accounts the bio tags as @handle: brands, agencies, alt accounts
previousFollowerCount, followerChange, previousScrapedAtMonitoring mode: follower count at the last run, the change since, and when that was (null otherwise)
isVerifiedVerification status
isPrivateWhether the Threads account is private
profilePicUrl, hdProfilePicUrlStandard and high-resolution avatars
id, urlStable numeric id and canonical profile URL

Plus, unless you turn it off, that account's posts with full text, media, and engagement counts, paginated well beyond the first page up to your limit.

Input

Handles are accepted in any form.

{
"profiles": ["zuck", "@mosseri", "https://www.threads.com/@threads"],
"includeProfilePosts": true,
"maxPostsPerProfile": 200,
"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}

Running with no input. If you start a run without setting anything, the Actor returns a small live sample so you can see the output shape immediately. Set your own handles for a real run.

Set includeProfilePosts to false for profile details only. That is faster and cheaper when you are building an account list rather than analysing content. Set maxPostsPerProfile to how many posts you want per handle, and the Actor pages through the feed to reach it.

Output

{
"type": "profile",
"id": "63055343223",
"username": "zuck",
"fullName": "Mark Zuckerberg",
"biography": "Mostly superintelligence and MMA takes",
"bioLinks": [{ "title": "site", "url": "https://example.com" }],
"bioEmails": [],
"bioMentions": [],
"followerCount": 5746614,
"previousFollowerCount": 5746613,
"followerChange": 1,
"previousScrapedAt": "2026-10-02T22:02:56.843Z",
"isVerified": true,
"isPrivate": false,
"profilePicUrl": "https://...",
"hdProfilePicUrl": "https://...",
"url": "https://www.threads.com/@zuck",
"source": "profile",
"scrapedAt": "2026-09-10T04:31:00.000Z"
}

A run that also returns posts mixes two record shapes in one dataset. Filter on type, which is "profile" or "post". Do not filter on source, because a profile's own posts are tagged source: "profile" too.

Post records carry authorUsername as a flat copy of author.username, because spreadsheet and table views cannot read nested paths.

Who uses it

  • Influencer and creator agencies building Threads creator lists with follower counts and contact emails from bios.
  • Brand and social teams tracking competitors' follower growth and new posts week by week.
  • Researchers following a fixed panel of accounts over time.

Monitoring mode: only new posts since the last run

Turn on Only new since last run (onlyNewSinceLastRun) and put the Actor on a schedule, hourly or daily. The first run returns everything it finds and remembers it. Every run after that returns only the posts it has not delivered before, so you pay only for what is new and your sheet, Slack channel or pipeline receives only fresh items.

  • Follower growth comes free. Each profile record gets previousFollowerCount and followerChange against the previous run, so a daily schedule is a Threads follower tracker with no spreadsheet maths.
  • Memory is kept per profile, in a key-value store named threads-monitor-… in your own Apify account. Nobody else can see it.
  • Running several schedules? Give each one its own Monitor name (monitorName), one per client or campaign for example, and they keep separate memory.
  • Every run writes a SUMMARY record to its key-value store with the number of new and skipped items, which suits integrations and AI agents.
  • To start over, change the monitor name.
{
"profiles": ["@zuck", "@mosseri"],
"onlyNewSinceLastRun": true,
"monitorName": "creator-watchlist"
}

Pricing

Pay per result. Profiles and posts are billed as separate events, so a profile-only run never pays for post scraping.

Free Apify plan: runs started on Apify's free plan return up to 10 results per run (profiles and posts together). Any paid Apify plan removes this limit.

Limits, stated plainly

Profile posts. The Actor pages through a profile's posts up to maxPostsPerProfile, well beyond the first page Threads shows. Profile fields themselves are always complete.

Follower lists are not available. This returns the follower count, not the list of followers. Threads does not expose follower lists publicly, so no scraper can return them.

Proxies. Threads rate-limits single IP addresses quickly. Residential proxies are strongly recommended beyond a handful of requests.

Public data only. A private Threads account returns its profile shell with isPrivate: true and no posts.

This Actor reads only public Threads pages, the same ones any logged-out visitor can open. It does not log in and does not bypass an access control.

Profiles contain personal data. If you are in the EU or UK, GDPR applies to what you collect and what you do with it, and having a lawful basis is your responsibility as the data controller. Do not resell profile-level personal data as a lead list without the regional carve-outs that apply to you.

  • Threads Scraper for posts, reply trees, profiles, and search in one Actor
  • Threads Keyword Search Scraper for tracking keywords and brand mentions

FAQ

Do I need a Threads or Instagram account? No. Nothing here authenticates, and there is nowhere to enter credentials.

Can I get more than 25 posts from a profile? Yes. The Actor follows the profile's post feed page by page up to maxPostsPerProfile, so you can pull hundreds of posts from a single handle. On Apify's free plan a run returns up to 10 results; any paid Apify plan removes this limit.

How do I track a Threads account's follower count over time? Turn on monitoring mode and schedule the Actor. Each run adds followerChange against the previous run, and every record carries scrapedAt, so appending runs to one dataset gives you a follower-count time series per account.

Is this an official Threads API? No. It is an independent Threads API alternative that reads the public profile pages a logged-out visitor sees, so it needs no Meta app review and no access token.

Can I get a list of an account's followers? No. Threads does not publish follower lists, so no scraper can return them. You get the count.

What happens with a handle that does not exist? The run logs a warning for that handle and continues with the rest. It does not fail the whole run.

Does this work with threads.net links? Yes. Threads moved from threads.net to threads.com, and both forms are accepted, as are bare handles and bare post shortcodes. You do not need to rewrite old links.

How is this different from the official Threads API? Meta's Threads API needs an app, an access token, and it caps keyword search at roughly 500 queries per rolling seven days. This Actor needs none of that and has no weekly quota, because it reads the same public pages a logged-out visitor sees.

Can I use it from Make, Zapier, n8n, or a script? Yes. Every Apify Actor is callable over the REST API and through Apify's integrations, and results come back as JSON, CSV, or Excel.

Does it break when Meta ships an update? Less often than most. Meta changes Threads often, and many scrapers break with each change. This Actor is engineered to keep working through those changes, so your runs and integrations stay stable.

Use it as an API

Run it from your own code and get the results back in one call. Replace YOUR_TOKEN with your Apify API token.

curl -X POST "https://api.apify.com/v2/acts/headply~threads-profile-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"profiles": ["@zuck"], "maxPostsPerProfile": 100}'
from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run_input = {'profiles': ['@zuck'], 'maxPostsPerProfile': 100}
run = client.actor("headply/threads-profile-scraper").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

It also works from Make, Zapier, n8n, Google Sheets, and as a tool for AI agents through the Apify MCP server.

More data tools from the same developer