Threads Profile Scraper — Followers, Bio, Links, Emails avatar

Threads Profile Scraper — Followers, Bio, Links, Emails

Pricing

from $1.40 / 1,000 posts

Go to Apify Store
Threads Profile Scraper — Followers, Bio, Links, Emails

Threads Profile Scraper — Followers, Bio, Links, Emails

Every public Threads profile as a row: follower count, full name, bio, bio links, website, emails and phones from the bio, verification, HD avatar, linked Instagram and the latest post. The account's own posts in the same run. No login, no browser.

Pricing

from $1.40 / 1,000 posts

Rating

5.0

(1)

Developer

Matvey

Matvey

Maintained by Community

Actor stats

0

Bookmarked

14

Total users

10

Monthly active users

11 hours ago

Last modified

Share

Threads Profile Scraper turns a list of usernames into full public profiles: follower count, full name, biography, the links in the bio, the website, the emails and phone numbers written in the bio, verification, private flag, the HD avatar, the linked Instagram account and the latest post with its text and date. Ask for the account's own posts in the same run and they arrive alongside. No login, no cookies, no browser.

One run of Threads Profile Scraper: profiles with followers, bio, links and contacts.

Paste usernames or profile URLs, click Start, export as JSON, CSV or Excel — or call it from the API and from AI agents.

Tested head-to-head — 24 September 2026

Tested against 4 other Threads profile Actors: correct Threads follower counts for all five accounts, the latest post's date in every row, and the lowest bill for the request

The same request went to this Actor and to the four most-used Actors on the Apify Store that return a Threads profile by username, on the same afternoon from a fresh free account: five public accounts (zuck, mosseri, nasa, natgeo, nytimes), one row each. Follower counts were checked against what Threads itself shows.

This ActorThe 4 others
Accounts with the correct Threads follower count5 of 55 of 5 at two; Instagram's count at one; nothing at one
Date of the latest post in the rowYesOnly one of the four
What this request cost$0.020$0.021 – $0.045 (the one that returned nothing cost $0)

What is it for?

Influencer and creator research (who has the audience, and is the account alive), lead generation from bio contacts, competitor tracking, and AI agents asked "who is this account". Threads' official API only covers your own account; this Actor reads the public profile pages Threads serves to any visitor.

ModeYou giveYou get
Profileusernames or profile URLsthe full profile row below
Postsusernamesthe account's own posts, paged through the whole profile

What data does it return?

FieldExample
username, userId, profileUrlzuck · 63055343223 · https://www.threads.net/@zuck
fullName, biographyMark Zuckerberg · "Building things…"
followerCount4183562
bioLinks, websiteUrl[{url, title}] · https://…
emails, phonespulled out of the bio text, ready for outreach
isVerified, isPrivatetrue · false
profilePicUrl, instagramUrlHD avatar · the linked Instagram profile
latestPostAt, latestPostUrl, latestPostTextis the account still posting, and about what

Post rows (Posts mode) carry id, code, url, text, language, createdAt, author fields, likeCount, replyCount, repostCount, quoteCount, shareCount, viewCount (read from each post's own page), media URLs, hashtags, mentions, urls, linkPreview, the quoted or reposted post, isPinned, isEdited and thread position.

How much does it cost?

Pay per row, no start fee, and error rows are free. There is no browser here, so platform usage is close to zero.

RowPrice
Profile$0.004 — 1,000 profiles for $4
Post (Posts mode)$0.002

Larger monthly plans get 10–30 % off.

Bulk export: what 50,000 profiles actually cost

This Actor is built for bulk jobs — put hundreds of inputs into one run, or call it from the API on a schedule. There is no fee per run, no fee per page and no proxy charge: you pay for the rows you keep, and error rows are free. That is what decides the bill once you pull a whole market rather than a single account.

JobThis ActorMost-used Actor in this category
50,000 profiles across 100 runs$200$252

Checked on the Apify Store on 24 September 2026 against the Actor with the most monthly users in this category; its per-run fee is counted in, as ours would be if we charged one. Some Actors here ask less per row — this table compares against the one buyers actually use most.

How to scrape Threads profiles

  1. Put the accounts in 👤 Usernames — zuck, @natgeo, or a full threads.net/@name link, one per line.
  2. Leave 🧭 What to get on profile for one row per account, or switch to posts to page through what the account has written.
  3. Keep 👤 Full profiles on. With it off you get only what the account list already carries, and no contacts.
  4. Click Start. Export as JSON, CSV or Excel, or read the dataset from the API.

⬇️ Input

{
"mode": "profile",
"usernames": ["zuck", "natgeo", "nasa"],
"includeProfileDetails": true,
"maxItems": 100
}

Posts of an account, newest first, with a profile row on top:

{ "mode": "posts", "usernames": ["mkbhd"], "maxPosts": 100, "includeProfile": true }

Only the posts that mention something, published since a date:

{ "mode": "posts", "usernames": ["natgeo"], "maxPosts": 200, "postedAfter": "2026-09-01", "filterKeywords": ["ocean"] }

Every input field

FieldWhat it does
modeprofile — one row per account. posts — the account's own posts.
usernamesAccounts to read. zuck, @zuck and the profile URL all work.
startUrlsProfile links instead of usernames, for when your list is already URLs.
maxPostsPosts per account in posts mode.
postedAfterSkip posts older than this date — turns a repeat run into monitoring.
filterKeywordsKeep only posts containing one of these words. Filtering happens before billing.
includeProfileAdd a profile row alongside the posts.
includeProfileDetailsOpen each profile page for followers, bio, links and contacts. Leave on.
includeViewsFill viewCount on posts from each post's page (on by default, no extra charge). Turn off for the fastest bulk runs.
maxItemsHard ceiling on rows for the whole run — your budget.
concurrencyAccounts read in parallel. Four is polite and fast enough.

⬆️ Output

{
"type": "profile",
"username": "natgeo",
"userId": "63454848350",
"fullName": "National Geographic",
"biography": "Taking our understanding and awareness of the world further.",
"followerCount": 2100000,
"bioLinks": [{ "url": "https://on.natgeo.com/threads", "title": "on.natgeo.com" }],
"websiteUrl": "https://on.natgeo.com/threads",
"emails": [],
"phones": [],
"isVerified": true,
"isPrivate": false,
"profilePicUrl": "https://…",
"instagramUrl": "https://www.instagram.com/natgeo",
"latestPostAt": "2026-09-14T18:20:11.000Z",
"latestPostUrl": "https://www.threads.net/@natgeo/post/DdRSOdDjetX",
"scrapedAt": "2026-09-15T09:00:00.000Z"
}

An account that does not exist, or that Threads refuses, arrives as a type: "error" row with the reason. Error rows are free and the run still finishes green.

Use cases

Influencer and creator research

Pull a shortlist of accounts and sort by followerCount, then use latestPostAt to drop the ones that stopped posting months ago.

Lead generation from bios

emails, phones, websiteUrl and bioLinks are extracted from the bio text, which is where small businesses and creators actually publish their contacts.

Competitor tracking

Run the same username list on a schedule and watch follower counts and bio changes move over weeks.

Audience and content audit

Switch to posts mode and read an account's whole output with engagement counts, to see which topics earned replies.

AI agents

An agent asked "how big is this account and how do I contact them" gets both from a single profile row.

🤖 For AI agents and LLM apps

Compact reference for agents calling this Actor through the Apify MCP server or the API (lergassy/threads-profile-scraper).

Purpose: resolve a Threads handle into a full public profile — size, bio, links, contacts — and optionally its posts.

Minimal input:

{ "mode": "profile", "usernames": ["zuck"], "includeProfileDetails": true }

Behaviours an agent should know:

  • followerCount is the number to quote for reach; latestPostAt tells you whether the account is alive.
  • Contacts come from the bio only. An empty emails array means the account published none, not that the lookup failed.
  • A private account returns its public header with isPrivate: true and no posts. That is the complete answer, not a failure.
  • A handle that does not exist returns an error row, free of charge — check type before reading fields.
  • Billing is per row: one profile row per account, plus one row per post in posts mode. Set maxItems to cap the spend.
  • No login, cookies or API key are involved, so nothing expires between runs.

Use via API

Run this Actor from your own code or pipeline. Get your token in Apify Console → Settings → API & Integrations. Every input field below has the same name as in the JSON tab of the input form.

Python

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("lergassy/threads-profile-scraper").call(run_input={
"mode": "profile",
"usernames": [
"zuck"
],
"maxPosts": 100,
"includeProfileDetails": True
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });
const run = await client.actor('lergassy/threads-profile-scraper').call({
"mode": "profile",
"usernames": [
"zuck"
],
"maxPosts": 100,
"includeProfileDetails": true
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

cURL (runs the Actor and returns the results in one call)

curl -X POST "https://api.apify.com/v2/acts/lergassy~threads-profile-scraper/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"mode": "profile", "usernames": ["zuck"], "maxPosts": 100, "includeProfileDetails": true}'

Limitations, stated plainly

  • Public data only. Follower lists, following lists and anything behind a private account are not available to a logged-out visitor and are not returned here.
  • Counts are what the page shows. Threads rounds large numbers on some surfaces; the Actor reports the figure the profile serves.
  • Contacts are only as good as the bio. No email guessing, no pattern invention — if it is not written on the profile, it is not in the row.
  • Posts mode reads the account's own posts. Replies, reposts and whole conversations live in Threads Replies Scraper.

Integrations

Runs from the Apify API, the Python and JavaScript clients, and from n8n, Make or Zapier through the Apify app. Schedule it and push rows into Google Sheets or your own webhook. AI agents reach it through the Apify MCP server with no extra setup.

❓ FAQ

Do I need a Threads or Instagram account?

No. The Actor reads the public profile pages Threads serves to any visitor — no login, no cookies, no tokens to refresh.

Can I get followers or following lists?

No. Threads does not show those to a logged-out visitor, so no honest scraper can return them.

Where do the emails and phone numbers come from?

From the bio text and the bio links. They are extracted, never guessed. If you need work addresses derived from a company domain, that is Email Finder.

What happens with a username that does not exist?

You get an error row saying so, free of charge, and the rest of the list is still scraped.

How many accounts can one run handle?

Thousands. Profiles are read a few at a time; maxItems is what actually limits the run.

Is a private account still worth a row?

It returns the public header — name, avatar, follower count, isPrivate: true — and no posts. Many buyers use exactly that to filter a list.

How do I track changes over time?

Schedule the run daily or weekly on the same username list. Each run appends a snapshot with scrapedAt, and the differences are your trend.

The Actor reads public pages at a normal rate without logging in, which is ordinary public-data collection. What you do with personal data afterwards is your responsibility — GDPR and similar rules apply to you, not to the page.

You might also like

ActorWhat it does
Threads ScraperAll modes in one: search, posts, replies, profiles
Threads Search ScraperKeyword and hashtag search with filters
Threads Replies ScraperReplies, reposts and whole conversations
Email FinderWork email addresses from names and company domains

Also known as

People look for this Actor as a Threads profile scraper, a Threads user API, Threads follower count checker, Threads bio scraper, Threads contact extractor and a Threads influencer research tool.

Notes

Public accounts only: a private profile returns its public header, never its posts. A username that does not exist comes back as an error row, and error rows are free.

Looking for posts by keyword, or for replies and whole conversations? Those live in Threads Search Scraper, Threads Replies Scraper and the all-in-one Threads Scraper.