Threads Scraper $1/1k Posts Likes Replies Bio & Followers avatar

Threads Scraper $1/1k Posts Likes Replies Bio & Followers

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Threads Scraper $1/1k Posts Likes Replies Bio & Followers

Threads Scraper $1/1k Posts Likes Replies Bio & Followers

Extract Threads (Meta) profiles & posts: likes, replies, reposts, bio, followers, profile pic, post images. $1/1K. Perfect for social media analytics.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

deusex machine

deusex machine

Maintained by Community

Actor stats

0

Bookmarked

18

Total users

6

Monthly active users

19 hours ago

Last modified

Categories

Share

Threads Scraper — Extract Posts, Profiles, Likes, Replies & Reposts from Meta Threads

Useful? Leave a review — it takes 10 seconds and is the single biggest thing that helps other social-media researchers find this Threads scraper.

A reliable Threads scraper for Meta's Threads platform that pulls posts, profile metadata, follower counts, engagement stats (likes, replies, reposts) and author handles from any public Threads profile. No Threads login, no Meta API token, no Instagram linking required — just clean JSON or CSV output. Built for social-listening teams, influencer-marketing platforms, brand-monitoring dashboards, content researchers, trend analysts, growth marketers and anyone doing Threads competitive analysis at scale.

✨ Why use this scraper

Given a list of Threads usernames (like zuck, instagram, mosseri, or any public handle) and an optional post cap, this scraper navigates each profile page, waits for lazy-loaded content, scrolls to pull the long tail of posts, and returns two kinds of records: a profile record for each account and a post record for each post it finds.

Every run pulls fresh data — engagement counts change by the minute on active accounts, so the scraper hits Threads live each time. Export the dataset as JSON, CSV, Excel, or XML directly from the Apify console or via the Apify API.

Threads doesn't have a public API for developers, and Meta hasn't exposed Threads data through the Instagram Graph API either. That leaves three options: build your own Puppeteer stack (expensive to maintain against frequent DOM changes), pay for an enterprise social-listening suite, or use this scraper. This Threads scraper handles the browser stealth setup, proxy rotation, scroll automation, DOM parsing and multiple fallback selectors so you don't have to.

📤 Output fields

Profile records (type: "profile")

FieldTypeDescription
usernamestringThreads handle without the @
displayNamestringProfile display name (e.g. "Mark Zuckerberg")
followersstringFollower count in human-readable format ("5.4M", "970K")
followingstring|nullFollowing count (Threads exposes this only for some profiles)
biostring|nullProfile bio text
verifiedbooleanWhether the profile has a verified badge
profilePicUrlstring|nullURL of the profile picture (CDN)
externalUrlstring|nullExternal link in profile bio (if any)
urlstringCanonical profile URL on threads.com
typestringAlways "profile" for profile records
scrapedAtstringISO 8601 timestamp

Post records (type: "post")

FieldTypeDescription
usernamestringAuthor's Threads handle
profileUrlstringDirect link to the author's profile
postUrlstring|nullPermalink to the individual post
textstringPost body (truncated to 2,000 characters)
datestringPost date — relative ("2h", "3d") or absolute ("03/15/26")
likesstring|nullLike count ("7.3K", "1.4K", "190")
repliesstring|nullReply count
repostsstring|nullRepost count
sharesstring|nullShare count (when available)
imageUrlsstring[]Image URLs attached to the post
typestringAlways "post" for post records
scrapedAtstringISO 8601 timestamp

🎯 Use cases

  • Brand monitoring on Threads — track what your brand's own accounts publish and how audiences engage post-by-post.
  • Influencer discovery and vetting — compare engagement rates (likes/replies per post) across a list of creators before partnership.
  • Competitor content analysis — snapshot your top three competitors' Threads feeds weekly to spot their tentpole content and posting cadence.
  • Trend detection — aggregate posts from 50+ industry thought leaders and surface the topics gaining momentum.
  • Social listening for PR and crisis response — pre-configure a watchlist of public figures and sync their Threads posts into Slack.
  • Content idea generation — feed high-engagement Threads posts into a ChatGPT prompt to brainstorm variations for your own channel.
  • Academic research on Meta's newest social platform — build reproducible datasets for studies on post format evolution, network effects, and migration from X/Twitter.
  • Dataset enrichment for LLM fine-tuning — curate Threads content as conversational training data (be mindful of Meta's terms).

🚀 How to use

Scrape posts from a single profile

{
"profiles": ["zuck"],
"maxPosts": 30
}

Scrape multiple Threads profiles in one run

{
"profiles": ["zuck", "instagram", "mosseri", "threads"],
"maxPosts": 20
}

Deep-scrape a single profile

{
"profiles": ["maboroshi"],
"maxPosts": 100
}

Note: Threads profiles vary wildly in how many posts their DOM exposes. Accounts with heavy reposts or quote-posts may hit a natural cap below maxPosts.

📥 Input

ParameterTypeDefaultDescription
profilesarrayThreads usernames to scrape. Don't include the @ prefix.
maxPostsinteger20Max posts to collect per profile (1–200).

📋 Output example

Profile record

{
"type": "profile",
"username": "zuck",
"displayName": "Mark Zuckerberg",
"followers": "14.2M",
"bio": null,
"url": "https://www.threads.net/@zuck",
"scrapedAt": "2026-04-22T10:30:00.000Z"
}

Post record

{
"type": "post",
"username": "zuck",
"profileUrl": "https://www.threads.net/@zuck",
"text": "Threads just hit 200 million monthly actives. Grateful for this community.",
"date": "03/12/25",
"likes": "142538",
"replies": "8924",
"reposts": "3201",
"scrapedAt": "2026-04-22T10:30:00.000Z"
}

Export the full dataset as CSV directly from the Apify console, or programmatically via the Apify API.

💻 Code examples

From the Apify API (curl)

curl -X POST 'https://api.apify.com/v2/acts/makework36~threads-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"profiles": ["zuck", "mosseri"],
"maxPosts": 25
}'

From Python (apify-client)

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("makework36/threads-scraper").call(run_input={
"profiles": ["zuck", "instagram", "threads"],
"maxPosts": 30,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
if item["type"] == "post":
print(item["username"], "→", item["text"][:80], "|", item["likes"], "likes")

From Node.js (apify-client)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('makework36/threads-scraper').call({
profiles: ['maboroshi', 'polygondotio'],
maxPosts: 40,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
const posts = items.filter((i) => i.type === 'post');
console.table(posts.map((p) => ({
user: p.username,
likes: p.likes,
replies: p.replies,
text: p.text.slice(0, 60),
})));

Export to CSV

From the console run page → ExportCSV. Or via API:

https://api.apify.com/v2/datasets/DATASET_ID/items?format=csv&token=YOUR_TOKEN

⚡ Performance

  • ~30–60 seconds per profile depending on maxPosts
  • Uses Puppeteer with the stealth plugin — heavier compute than pure HTTP scrapers, but necessary to render Threads' client-side React app
  • Concurrency = 1 by design. Running multiple profiles in parallel triggers Threads' bot-detection layer; serial execution is the reliable path.
  • 5 retries per request with exponential backoff
  • Apify Proxy rotates residential IPs automatically

📊 Comparison

Threads is a young platform and dedicated scrapers are few. Here's how ours stacks up against the closest alternatives.

FeatureThis Threads scraperGeneric "Meta scraper" with residential proxyCustom Puppeteer stack (DIY)Social-listening enterprise suite
Fields per post6+ (text, date, likes, replies, reposts)3–4Depends on you10+ but behind paywall
Fields per profile6 (displayName, followers, bio, URL)2–3Depends6+
Stealth plugin / bot evasionYesSometimesManual setupN/A (licensed API)
Infinite scroll supportYesPartialDIYYes
Residential proxy rotationYes (via Apify Proxy)YesBuy separatelyYes
Handles Threads' DOM changesYes (maintained)Often brokenYou fix itYes
Typical cost per 1K posts~$2.00–3.00$3–$5Hosting + dev time$500+/month
Setup time30 secondsMinutesHours to daysWeeks (sales cycle)

The honest take: if you already operate a Puppeteer + proxy stack, you can build this yourself — but maintaining DOM parsers against Meta's weekly frontend changes is a surprising amount of work. If Threads data is a side-need, this scraper saves you the plumbing.

💵 Pricing

Pay-per-result model:

  • ~$0.003 per post + profile record (exact pricing in the actor console)
  • Apify gives every new user a $5 free trial → ~1,500 records to evaluate the scraper
  • No subscription, no minimum, no egress fees

❓ FAQ

Do I need a Threads or Instagram account?

No. This Threads scraper reads publicly visible profile pages — the same view any unauthenticated browser visitor sees. No login, no Instagram linking, no Meta app review.

This actor accesses only public profile pages. Meta's terms restrict automated access; most jurisdictions treat public-page scraping as permissible for research, journalism and market analysis. For commercial products, consult legal counsel and minimize personal data retention under GDPR.

Can I scrape by hashtag or search query?

Not in v1. The scraper is profile-driven: you provide usernames and it collects their posts. Hashtag and search support is on the roadmap — leave a review requesting it to bump priority.

Can I scrape replies to a post?

Only top-level posts are extracted. Individual reply threads aren't supported yet. The replies field tells you how many replies a post has.

Why is the scraper limited to one concurrent browser?

Running Puppeteer with concurrency > 1 against Threads consistently triggers Meta's bot-detection heuristics and leads to empty results across the whole batch. Running serially with the stealth plugin has a much higher success rate.

Does Threads enforce rate limits?

Yes, implicitly. Scraping 20+ profiles in rapid succession can trigger a challenge page. The scraper's built-in pacing and 5-retry logic handle most cases, but for very large runs (100+ profiles) consider splitting into several scheduled runs spaced 10–15 minutes apart.

Can I scrape posts with media attachments (images, videos)?

The scraper captures post text and engagement metrics. Media URL extraction is on the roadmap — for now, you can visit the post's individual URL manually if needed.

Does this work for non-English Threads accounts?

Yes. The scraper is locale-agnostic — it parses DOM structure, not translated labels. Profiles and posts in Spanish, Portuguese, Japanese, Korean, Arabic and other scripts all work.

Can I scrape multiple languages in one run?

Yes. Mix any public handles from any language into the profiles array.

📝 Changelog

  • v1.1 (2026-04-22) — Full SEO rewrite, added Python / Node / curl examples, anonymized comparison table, advanced usage patterns, categorized field list.
  • v1.0 (2026-03-20) — Initial release with profile + post extraction, stealth Puppeteer, residential-proxy rotation and fallback text parsers.