100 free credits on signup · no card required

Threads Profile API

One handle in. Clean JSON out.

Give this endpoint a Threads handle and it returns that account's public profile as JSON: display name, bio, follower count, verification flag, avatar and bio link. It reads the same page anyone can open logged out, so there is no OAuth step and no Meta app review. One GET to /v1/threads/profile, 4 credits.

Credits 4 / profile
Input ?handle=
Cache 12h
GET · BEARER
Request composing…
Cached 12 hours
cheap to re-poll
Works with your stack
cURL Python Node.js Zapier n8n Make MCP
One key · one credit balance · plain REST

The difference

Stop parsing markup. Start reading fields.

On the left, what a headless browser hands you. On the right, what the endpoint hands you.

Scraping it yourself raw HTML · every call
<div class="x1a2b3c x9k2m1 xdt5ytf" data-pressable-container="true"><div class="x78zum5 xdt5ytf"><div class="x9f619 x1n2onr6"><span class="x1lliihq x1plvlek"><span dir="auto" class="x1lliihq xjkvuk6">Everyone building ai agents keeps rediscovering the same three problems.</span></span></div><div class="x6s0dn4 x78zum5 xl56j7k"><div role="button" tabindex="0" class="x1i10hfl x1qjc9v5"><svg aria-label="Like" role="img" viewBox="0 0 24 24"><path d="M16.792 3.904..."></path></svg><span class="x17qophe">88.4K</span></div><div role="button" tabindex="0" class="x1i10hfl"><svg aria-label="Reply"></svg><span>2,314</span></div></div><time datetime="2026-07-07T09:40:00.000Z" class="x1rg5ohu">2h</time></div><script>requireLazy(["ServerJS"],function(f){f().handle({"__bbox":{"complete":true,"require":[["ScheduledServerJS"...
×Class names rotate; your selectors break weekly ×Headless browsers, proxies, blocks to babysit ×Counts arrive as strings, not numbers
One GET request 8 typed fields
{
"data": {
"platform": "threads",
"handle": "zuck",
"name": "Example Creator",
"bio": "Notes on building in public. Links in profile.",
"verified": true,
"metrics": {
"followers": 2450318
}
},
"request_id": "req_01JZX4M8Q2TE9W"
}
Stable field names, documented nulls No proxies, no browser, no login session Counters are integers you can sort on

The payload

What comes back

{ data, meta?, request_id }
01 One header card per handle

One object per handle. It is a header-card scrape: who the account says it is, how many people follow it, whether Meta has verified it, and where the bio points. That covers the fields most people actually store in a creator database — enough to dedupe accounts, rank a shortlist by audience size, and follow the outbound link to a website or Linktree.

02 No posting history at all

What it does not carry is a posting history. There is no post count, no following count, no engagement figure, no join date. Threads exposes far less on a profile than Instagram or X do, and we return what is there rather than padding the shape with keys that would always be null. If you need activity, the Threads Posts API is the second call.

03 Follower counts are rounded

Follower counts are point-in-time. Threads rounds them in the UI once an account gets large, so a figure you read here is the platform's public number at call time, not an exact roster size. It is fine for ranking and tiering, less fine for anything that needs to be accurate to the person.

Field explorer Pick a key to see its type and the caveats.
number|null Nullable Sortable metric
followers

Public follower count. Rounded by the platform on large accounts; null if Threads is not showing a count.

{
"id": "…",
"handle": "zuck",
"name": "Example Creator",
"bio": "Notes on building in public. Links in profile.",
"followers": 2450318,
"verified": true,
"avatar_url": "…",
"link": "…"
}
Good fit

Reach for this when

  • Enriching a creator or lead list where you have handles and need follower counts and bios attached before anyone reviews it manually.
  • Verifying that a Threads handle in your CRM still resolves to a real, live account before a campaign goes out.
  • Tiering an influencer shortlist by audience size, then keeping only accounts above your floor for the more expensive per-post checks.
  • Pulling the bio link so you can attribute a creator to a company domain, a store, or a newsletter.
  • Tracking follower growth for a handful of accounts by calling on a daily schedule and storing each result with a timestamp.
Different job?

There's an endpoint for that

  • You want their actual Threads posts and engagement — that is the Threads Posts API, which takes the same handle and returns a list.
  • You are hunting for accounts by topic rather than by known handle. Start with the Threads Search API, then feed the handles you find into this endpoint.
  • You want the same profile data for an Instagram account. Threads and Instagram accounts share a login but not a profile payload — use the Instagram Channel Stats API for those numbers.
  • You need post counts, following counts or per-post averages. Threads does not publish them on the profile, and no endpoint of ours invents them.

Pricing

Start free, pay for what comes back

One profile is 4 credits — about 2¢ on the monthly plan, 1.8¢ annual — so $5 covers roughly 250 handles, and calls that error on a private or missing account are never charged.

Estimate your bill
$13/ month
30 profiles/day × 4 credits × 365 days = 43,800 credits/yr, or $150/yr on the annual plan plus 32 top-up blocks Whichever plan is cheaper for that volume, divided by 12.
30
102,000
Credits / yr 43,800
Plan Annual $54/yr
Per profile

Estimate only, on a full-year basis. 4 credits per returned profile. Monthly: $5 per 1,000 credits with $4/1,000 top-ups. Annual: $54 per 12,000 credits with $3/1,000 top-ups. We show whichever plan is cheaper for your annual volume, divided by 12. Failed calls are never charged; cache hits cost the same as fresh calls.

Free trial
100 credits

On signup, no card. Your key is on screen immediately.

Get your free API key
Monthly $5/mo 1,000 credits. Top-ups $4 per extra 1,000.
Annual $54/yr 12,000 credits. Top-ups $3 per extra 1,000.

Entry price, side by side

Cheapest way to start

Verified July 2026 from each vendor's live pricing page
ScraperSocial
$5 / mo 1,000 credits · 100 free credits, no card
Supadata
$5 / mo 300 credits, annual commitment · 100 free/mo
SocialKit
$29 / mo 12,000 credits · 20 free credits
Dumpling AI
$40 / mo Billed annually · free tier size unpublished
ScrapeCreators
$47 pack 25,000 credits, no subscription · 100 free once

Credits are not equivalent units across vendors — each meters differently. Price your own workload on both before deciding on entry price alone. At high volume, several of these are cheaper per credit than we are.

Engineering notes

Docs you can build on

We document exactly how every endpoint behaves — nulls, caching, billing — so what you ship on day one is still running in month six. No surprises, no support tickets.

Failed calls are never charged Public data only, no login session Built for parallel traffic

If you have built against an Instagram or X profile endpoint before, budget for a smaller object. Threads publishes eight useful things on a public profile and that is the whole list. Anything shaped like activity — posts made, replies, accounts followed — is absent from the source, not stripped by us.

The practical consequence: you cannot compute an engagement rate from this endpoint alone. You need a post sample, which means a second call to the Threads Posts API and a divide.

avatar_url points at Meta's CDN with a signed query string. It works when you receive it and stops working some hours later. Storing the string in a database and rendering it in a dashboard next week will give you broken images. Download the bytes at fetch time and put them in your own storage.

A Threads user can rename themselves and the old handle becomes available for someone else to claim. If you key a table on handle you will eventually merge two unrelated people. Key on id, keep handle as a mutable attribute, and re-resolve handles you have not seen in a while.

Private accounts return an error, not a partial profile. So do handles that never existed and accounts that have been deleted or suspended. We read logged out; if the page does not render for an anonymous visitor it does not render for us either. Errors are not billed.

Names, bios and avatars of real people are personal data under GDPR and similar regimes even though they are public. If you store them, know your lawful basis, keep a retention window, and be able to delete on request. Refreshing a profile you already hold is also the cheapest way to keep it accurate — stale records are their own compliance problem.

Profiles change slowly, so responses sit in the slow cache class. Repeat calls for the same handle inside the window come back in milliseconds and set x-cache: hit. A hit costs the same 4 credits. Pass fresh=true when you need to force a re-fetch, for instance the morning a growth job runs.

Questions

Frequently asked

Call GET /v1/threads/profile with the handle and your API key. The response includes followers as a number alongside name, bio, verification and the bio link. Meta's own Threads API only reaches accounts that have authorised your app, so it cannot read a competitor or a creator you are evaluating. This endpoint reads the public profile page instead, with no OAuth.

4 credits per handle. At $0.005 per credit on the monthly plan that is 2 cents a profile, or about 250 profiles for $5; annual credits are $0.0045 each. Cached responses cost the same as fresh ones, and calls that error — private account, wrong handle, deleted user — are not charged at all.

No. This is a profile-only call and returns no posts, no post count and no engagement figures. Threads does not publish those on the profile page. If you need the posts, call the Threads Posts API with the same handle; it returns a single batch of up to limit posts — there is no cursor to page beyond that — and costs per post returned rather than per profile.

The input is the bare handle, so strip it out of the URL first. From https://www.threads.com/@somebody you want somebody. The leading @ is tolerated. Anything else in the path — a post id, a query string — should be removed before you call, or the lookup will fail against a handle that does not exist.

It is the number Threads displays publicly, which the platform rounds once an account gets large and updates on its own delay. Good enough to sort a list, tier creators, or watch a trend over weeks. Not good enough if you need an exact figure for a contract. Sample on a fixed daily cadence if you are charting growth, so your intervals stay even.

No to both. Private profiles return an error, and we never expose contact details that Threads does not publish — there is no email or phone field in the response. The only outbound contact route here is link, the first URL in the bio, which the account holder chose to publish. We read public pages logged out and nothing else.

One handle per call — there is no batch input, so a thousand handles is a thousand calls. Issue them concurrently and back off on any rate-limit response rather than assuming a fixed safe concurrency; we do not promise a specific number of parallel calls or a wall-clock figure. Deduplicate your handle list first — the slow cache means repeats are fast, but they still cost 4 credits each, so paying twice for the same account is avoidable.

Next

Pairs well with

Full Threads API reference →
/v1/threads/posts
Threads Posts API Recent public posts from a Threads account, newest first. 3 cr / post
/v1/threads/search
Threads Search API Public Threads posts matching a keyword or hashtag. 4 cr / result
/v1/twitter/profile
X/Twitter Profile API Follower counts, bio and profile metadata for an account on X. 5 cr / lookup
/v1/instagram/channel-stats
Instagram Channel Stats API Follower counts, bio and profile metadata for an Instagram account. 3 cr / profile

More Threads endpoints

/v1/threads/stats Engagement stats and text for a single Threads post: likes, replies, reposts, quotes, media, and author. 3 credits / post /v1/threads/posts Recent public posts from a Threads account, newest first. 3 credits / post /v1/threads/search Public Threads posts matching a keyword or hashtag. 4 credits / result

Try the Threads Profile endpoint free

100 trial credits on signup — no card, key on screen immediately.

1 Sign up free no card · 30 seconds
2 Copy your key sk_live_...
3 GET the endpoint /v1/threads/profile
Get your free API key