Threads Account Scraper avatar

Threads Account Scraper

Pricing

from $0.99 / 1,000 results

Go to Apify Store
Threads Account Scraper

Threads Account Scraper

Get Threads profile data without login.

Pricing

from $0.99 / 1,000 results

Rating

0.0

(0)

Developer

Farhan Febrian Nauval

Farhan Febrian Nauval

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

20 days ago

Last modified

Categories

Share

Extract public profile data from any Threads (Meta) user in bulk — username, full name, biography, follower count, profile picture, verification status, and the Threads user ID — as a clean structured JSON output.

Why use this actor

  • No account / no login required — just give it a Threads username or profile URL.
  • Accepts usernames or full URLs — pass zuck or https://www.threads.com/@zuck, the actor normalizes both.
  • Sister to Instagram — Threads identities are still tied to Instagram, so this is the fastest way to enrich an IG-first list with Threads-side counters.
  • Rich profile detail — full biography text, follower count, hi-res profile picture variants, verification badge, and the stable numeric pk you can use to cross-reference with other Threads or Instagram records.
  • Automatic retries — transient failures retry with exponential backoff; profiles that don't exist or are deactivated surface as _error: "not_found" so you can triage failures.
  • Stable JSON output suitable for pipelines, spreadsheets, and databases — every row carries _input, _source, _scrapedAt envelope fields so you can join results back to your input list.

How it works

  1. You provide a list of Threads usernames (e.g. zuck) or full profile URLs.
  2. The actor fetches each profile page and reads the user record the same way the Threads web app shows it, then assembles a flat JSON record.
  3. Results stream into your dataset, ready to download as JSON, CSV, or Excel.

You do not need to manage scrapers, browsers, or rotating IPs — all handled internally.

Input

{
"usernames": [
"zuck",
"mosseri"
],
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["DATACENTER"]
}
}
FieldTypeDescription
usernamesarrayList of Threads usernames or profile URLs to scrape. Both zuck and https://www.threads.com/@zuck are accepted.
proxyConfigurationobjectApify Proxy settings. Datacenter proxy works for most cases; switch to Residential for very large jobs.

Output

Input: zuck

{
"_input": "zuck",
"_source": "S1-primary",
"_scrapedAt": "2026-05-18T10:58:52.093975+00:00",
"pk": "63055343223",
"id": "63055343223",
"username": "zuck",
"full_name": "Mark Zuckerberg",
"biography": "Mostly superintelligence and MMA takes",
"follower_count": 5456674,
"is_verified": true,
"text_post_app_is_private": false,
"has_onboarded_to_text_post_app": true,
"show_text_post_app_badge": true,
"profile_pic_url": "https://instagram.fcgk12-1.fna.fbcdn.net/v/t51.82787-19/550174606_17925811725103224_8363667901743352243_n.jpg?stp=dst-jpg_s150x150_tt6...",
"hd_profile_pic_versions": [
{ "height": 320, "width": 320, "url": "https://instagram.fcgk12-1.fna.fbcdn.net/.../s320x320..." },
{ "height": 640, "width": 640, "url": "https://instagram.fcgk12-1.fna.fbcdn.net/.../s640x640..." }
],
"bio_links": [],
"profile_tags": {
"edges": [
{ "node": { "display_name": "AI Threads", "name": "aithreads", "id": "18399895213044171" } },
{ "node": { "display_name": "UFC Threads", "name": "ufcthreads", "id": "18398478472015746" } },
{ "node": { "display_name": "AI", "name": "ai", "id": "18392111818029156" } },
{ "node": { "display_name": "MMA", "name": "mma", "id": "18400625521011745" } },
{ "node": { "display_name": "memes", "name": "memes", "id": "18402364270062744" } }
]
}
}
FieldTypeDescription
_inputstringThe username or URL exactly as you supplied it. Use this to join results back to your input list.
_sourcestringInternal tag for the path used to fetch the record. S1-primary means the fastest, richest path; values starting with S2- indicate a fallback was used.
_scrapedAtstringISO-8601 UTC timestamp when the record was scraped.
pkstringThreads' internal numeric user ID. Stable across username changes — same value as id.
idstringMirror of pk. Both are returned for convenience.
usernamestringThreads handle (the part after @).
full_namestringDisplay name shown on the profile.
biographystringFree-text bio shown on the profile.
follower_countintegerNumber of accounts following this profile.
is_verifiedbooleantrue if Threads shows the verified badge.
text_post_app_is_privatebooleantrue if the profile is set to private on Threads.
has_onboarded_to_text_post_appbooleantrue if the underlying Instagram account has activated its Threads identity.
show_text_post_app_badgebooleantrue if the Threads badge is shown on the linked Instagram profile.
profile_pic_urlstringURL of the standard-size profile picture.
hd_profile_pic_versionsarrayHigher-resolution profile picture variants (320px and 640px). Each item has height, width, url.
bio_linksarrayExternal links the user added to their bio.
profile_tagsobjectTopic tags the user picked for their profile (e.g. AI, MMA). Each tag has a display_name, slug name, and stable id.

Error envelope

Profiles that don't exist, are deactivated, or fail to fetch return a structured error instead of crashing the run:

{
"_input": "this-user-does-not-exist-xyz",
"_error": "not_found",
"_errorDetail": "profile not found",
"_source": "S1-primary",
"_scrapedAt": "2026-05-18T10:58:55.012345+00:00"
}

Filter on _error to triage failed rows.

Pricing

This actor is billed per result: $6.00 per 1,000 profiles. Each successful profile = 1 result. Errors (not-found, deactivated) are not billed.

Other Sosmed Actors

PlatformActorBest for
ThreadsThreads Posts ScraperPull a user's Threads posts timeline
ThreadsThreads Replies ScraperPull a user's replies timeline
ThreadsThreads Post Detail ScraperFull post detail by URL or shortcode
InstagramInstagram Account ScraperBio, followers, post count for an IG handle
X / TwitterX Account ScraperProfile + tweet counts for any handle
BlueskyBluesky Account Scraperatproto profile + counters
FacebookFacebook Page ScraperPage info, follower / like counts

Browse the full catalog at apify.com/xtracto.

Notes

  • Threads identities are still backed by Instagram — if a user has never tapped "Join Threads" on Instagram, has_onboarded_to_text_post_app is false and most Threads-specific fields will be empty.
  • Deactivated, banned, or never-existed profiles return {"_error": "not_found", "_input": "..."}.
  • The numeric pk is the most reliable identifier — usernames can change but pk does not, and it's the same ID used on the linked Instagram account.
  • Sister to the Instagram Account Scraper — pair the two to enrich a single creator list with both IG and Threads counters.
  • Counters (follower_count) are eventually-consistent and may lag the live network by a few minutes.
  • For large jobs (>500 profiles), switch proxyConfiguration to RESIDENTIAL to avoid per-IP rate limits.