Threads Profile API avatar

Threads Profile API

Pricing

from $2.80 / 1,000 profiles

Go to Apify Store
Threads Profile API

Threads Profile API

One Threads username in, one row out: followers, name, bio, bio links, website, e-mails and phones from the bio, verification, linked Instagram and the latest post. Built for one call per account, from an agent, n8n or code.

Pricing

from $2.80 / 1,000 profiles

Rating

5.0

(2)

Developer

Matvey

Matvey

Maintained by Community

Actor stats

0

Bookmarked

8

Total users

5

Monthly active users

a day ago

Last modified

Share

Threads Profile API turns one Threads username into one row: followers, full name, bio, the links and the website from the bio, any e-mail or phone published there, verification, the linked Instagram account, and the account's latest post with its engagement.

One call, one account, one row. That is the shape an AI agent, an n8n loop or a for loop in your code actually wants — not a batch job that returns a thousand posts you did not ask for.

No login, no cookies, no official API access. An account that does not exist comes back as an error row and is never billed.

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, link and likes 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 the Threads Profile API?

Meta publishes an API for your own Threads account and nothing for anyone else's. This Actor is the missing lookup: give it zuck, get back the profile as structured data, in about a second.

Typical uses: creator and influencer research, enriching a CRM with a social profile, checking follower counts on a schedule, pulling the contact an account publishes in its bio, and giving an AI agent a tool that answers "who is this account".

What comes back

FieldExample
username, fullName, userIdzuck · Mark Zuckerberg · 314216
followerCount5 738 024
biography"Mostly superintelligence and MMA takes"
bioLinks, websiteUrlevery link the account published
emails, phonesthe contact details put in the bio, when there are any
isVerified, isPrivatetrue · false
instagramUrl, profilePicUrl, profileUrllinked Instagram, the avatar in full size, the profile link
latestPostAt, latestPostUrl, latestPostTextwhen the account last posted, and what it said
latestPostLikes, latestPostReplieshow that post landed
recentPoststhe last N posts with text, time, engagement and media — when you ask for them

How much does it cost?

$4 per 1,000 profiles — one account, one charge, no start fee.

  • A username that does not exist, is private or was renamed: $0.
  • Rate limits and blocks: $0.

At one call per account, a thousand lookups cost four dollars. There is no monthly minimum and no quota to hit.

Bulk export

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, so a 50,000-row job costs exactly 50,000 × the row price with nothing added on top.

How to use it

  1. Put one username into 👤 Username — zuck, @natgeo, or a full profile URL.
  2. Press Start. One row comes back, usually within a second or two.
  3. To do it from code, call the run from the API, n8n, Make, Zapier or an AI agent, one account per call.
from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
def threads_profile(username: str) -> dict:
run = client.actor("lergassy/threads-profile-api").call(run_input={"username": username})
return next(client.dataset(run["defaultDatasetId"]).iterate_items())
p = threads_profile("natgeo")
print(p["fullName"], p["followerCount"], p["websiteUrl"])

Have a spreadsheet instead of a loop? 👥 Or several at once takes a short list; each account is still one row and one charge.

⬆️ Output

{
"username": "zuck",
"fullName": "Mark Zuckerberg",
"userId": "314216",
"followerCount": 5738024,
"biography": "Mostly superintelligence and MMA takes",
"bioLinks": [],
"websiteUrl": null,
"emails": [],
"isVerified": true,
"isPrivate": false,
"instagramUrl": "https://www.instagram.com/zuck/",
"profileUrl": "https://www.threads.net/@zuck",
"latestPostAt": "2026-09-15T23:01:39.000Z",
"latestPostUrl": "https://www.threads.net/@zuck/post/DAbC1dEfGh",
"latestPostLikes": 1296,
"recentPosts": [],
"scrapedAt": "2026-09-17T00:41:02.118Z"
}

A failed lookup pushes one type: "error" row naming the account and the reason — account not found, private, or renamed — free of charge.

❓ FAQ

Why a single username instead of a big list?

Because that is how it gets used. An agent asks about one account; an n8n node runs once per row; a CRM enrichment fires per contact. A batch actor makes that awkward and bills you for work you did not need. A list input is here anyway for the spreadsheet case.

Is a private account returned?

No. Threads shows a logged-out visitor nothing but the fact that the account is private, and that is what you get — as an error row, not as an invented profile.

Does it need my Threads account?

No. No login, no cookies, nothing of yours can be rate-limited because of it.

Is the follower count live?

It is what the profile page showed at the moment of the check, with scrapedAt on the row so you always know when that was.

Can I use it through the Apify API or an MCP server?

Yes to both. There is one required-looking field and a sensible default, so an agent can call it correctly without reading this page.

Your feedback

Something missing from the row? Open an issue on the Issues tab — it gets read and answered.

You might also like

ActorWhat it does
Threads ScraperThe full archive: search, an account's posts, replies, reposts, whole threads and account discovery
Threads MonitorWatch accounts or keywords and receive only what is new since the last check
Threads Profile ScraperThe same profile data in bulk, for long lists
Threads Replies ScraperReplies and conversations: who answered what