Threads Profile Scraper - Follower Count, Bio, Links & Posts avatar

Threads Profile Scraper - Follower Count, Bio, Links & Posts

Pricing

from $1.20 / 1,000 post scrapeds

Go to Apify Store
Threads Profile Scraper - Follower Count, Bio, Links & Posts

Threads Profile Scraper - Follower Count, Bio, Links & Posts

Scrape Threads profiles by handle: follower count, bio, bio links, verification, avatar and recent posts with engagement. Track Threads follower counts over time or build creator lists. No login or Meta API token.

Pricing

from $1.20 / 1,000 post scrapeds

Rating

0.0

(0)

Developer

Mayowa Ogedengbe

Mayowa Ogedengbe

Maintained by Community

Actor stats

0

Bookmarked

7

Total users

3

Monthly active users

19 minutes ago

Last modified

Share

Threads Profile Scraper

Scrape Threads (Meta) profiles by handle. Returns follower count, bio, bio links, verification status, profile pictures and recent posts as structured JSON.

No login. No cookies. No account pool.

Sample output (real run, keyword "anthropic")

AuthorPostLikesRepliesReposts
@bodylikeseafoamIn case you need another reason to hate AI, OpenAI just scraped...11,3051822,049
@novaramediaAn artificial intelligence researcher has quit Anthropic, accusing...2871789
@aditijain.aiFormer OpenAI and Anthropic researcher Jacob Coxon, who publicly...1011

Every row also carries the post URL, timestamp, language, media, quoted post and the keyword that found it.

Why this one

This ActorOfficial Threads APITypical Store alternative
Keyword searchesUnlimitedAbout 500 per 7 daysVaries
Login or Meta tokenNoneApp review + tokenOften none
Full reply trees with depthYesLimitedRarely
Price per 1,000 posts$1.80, no start feeFree, capped$2.50 to $20, often plus $0.02 per run

What it costs: 1,000 posts = $1.80. Monitoring 10 brand keywords at 200 posts each = about $3.60 per run.


What you get

One profile record per handle:

| Field | |

|---|---|

| username, fullName | Handle and display name |

| followerCount | Current follower count |

| biography | Bio text |

| bioLinks | Outbound links in the bio, with titles |

| isVerified | Verification status |

| isPrivate | Whether the Threads account is private |

| profilePicUrl, hdProfilePicUrl | Standard and high-resolution avatars |

| id, url | Stable numeric id and canonical profile URL |

Plus, unless you turn it off, that account's recent posts with full text, media, and engagement counts.


Input

Handles are accepted in any form.

{
"profiles": ["zuck", "@mosseri", "https://www.threads.com/@threads"],
"includeProfilePosts": true,
"maxPostsPerProfile": 50,
"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 keywords, profiles or post URLs 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.


Output

{
"type": "profile",
"id": "63055343223",
"username": "zuck",
"fullName": "Mark Zuckerberg",
"biography": "Mostly superintelligence and MMA takes",
"bioLinks": [{ "title": "site", "url": "https://example.com" }],
"followerCount": 5731614,
"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.


Tracking follower growth

Schedule the Actor with your list of handles and append each run to the same dataset. Every record carries scrapedAt, so you get a follower-count time series per account without any extra work.


Pricing

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


Limits, stated plainly

Post depth. Threads embeds roughly the first page of an account's posts in the page it serves, about 25. Profile fields themselves are complete.

Follower lists are not available. This returns the follower count, not the list of followers. Threads does not expose follower lists publicly.

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 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. Scrapers that call the internal GraphQL API depend on persisted query ids that Meta rotates without notice. This one reads what Threads server-renders into the page and recognises records by shape rather than by a fixed path.

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"], "maxPostsPerQuery": 100}'
from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run_input = {'profiles': ['@zuck'], 'maxPostsPerQuery': 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