Threads Scraper
Pricing
from $1.40 / 1,000 posts
Threads Scraper
Posts, replies, reposts, profiles, keyword and hashtag search, whole threads with replies and account discovery on Meta Threads. Every post with text, media, links, mentions and engagement. No login.
Pricing
from $1.40 / 1,000 posts
Rating
5.0
(1)
Developer
Matvey
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Threads Scraper turns Meta's Threads into rows: an account's posts as far back as you want, its replies and reposts, its profile with follower count, bio links and contacts, public posts for any keyword or hashtag, a whole thread with its replies, and people or brands that match a keyword. Every post comes with text, time, author, likes, replies, reposts, quotes and shares, image and video URLs, links, mentions and hashtags, the quoted or reposted post, the reply context and the link preview. No login, no cookies, no browser: an account's last 100 posts take about four requests and a few seconds.

Pick what you need, paste usernames, keywords or URLs, and click Start. Export as JSON, CSV or Excel, run it on a schedule, or call it from the API and AI agents.
What is Threads Scraper?
It is a Threads API for people who need the network as data rather than as a feed: social listening and brand monitoring, creator and influencer research, lead generation from bios, content archiving, academic research, and AI agents asked "what is this account posting about" or "what are people saying about X". Threads has an official API only for your own account; this Actor reads the public pages Threads serves to any visitor, so it works for any public account and any public post.
Seven modes in one Actor, all with the same row shape:
| Mode | You give | You get |
|---|---|---|
| Posts | usernames | the account's own posts, paged through the whole profile (hundreds or thousands) |
| Replies | usernames | replies the account wrote, each with the post it answered |
| Reposts | usernames | posts the account reposted |
| Profile | usernames | followers, full name, bio, bio links, emails and phones in the bio, verification, latest post |
| Search | keywords, #hashtags | public posts from the top, recent and tag result pages, deduplicated |
| Thread | post URLs | the post (with its self-thread) and its replies |
| Accounts | keywords | people and brands matching the keyword, optionally with full profile details |
What data does it return?
Post rows
| Field | Example |
|---|---|
id, code, url | 3977518562965884838 ยท Dcy_A8pGo-m ยท https://www.threads.net/@zuck/post/Dcy_A8pGo-m |
text, language | "Muse Spark 1.3 is rolling out todayโฆ" ยท en |
createdAt, timestamp | 2026-09-02T19:26:23.000Z ยท 1788377183 |
username, userId, fullName, isVerified, profilePicUrl, profileUrl | zuck ยท 63055343223 ยท Mark Zuckerberg ยท true ยท โฆ |
likeCount, replyCount, repostCount, quoteCount, shareCount, viewCount | 1453 ยท 196 ยท 148 ยท 28 ยท 78 ยท null |
mediaType, imageUrl, videoUrl, images[], videos[], hasAudio, accessibilityCaption | carousel ยท โฆ ยท [{url,width,height,alt}] ยท [{url,thumbnail,hasAudio}] |
hashtags, mentions, urls, linkPreview | ["ai"] ยท ["natgeo"] ยท ["https://โฆ"] ยท {url, displayUrl, title, imageUrl, faviconUrl} |
isReply, replyToUsername, replyToUserId, rootPostUsername, replyControl | true ยท zuck ยท โฆ ยท everyone |
isQuote, quotedPost, isRepost, repostedPost, repostedBy | {code, username, url, text, likeCount} |
isPinned, isEdited, isPaidPartnership, isSpoiler, likesHidden, location | booleans, place name |
threadId, positionInThread, threadLength | a multi-post thread keeps its order |
source, query, sourceUsername, parentPostId, parentPostUrl | posts ยท search-top ยท search-recent ยท search-tag ยท thread ยท reply ยท replies ยท reply-context ยท reposts |
Profile and account rows
username, userId, fullName, biography, bioLinks, websiteUrl, emails, phones (extracted from the bio), followerCount, isVerified, isPrivate, profilePicUrl (HD), profileUrl, instagramUrl, latestPostAt, latestPostUrl, latestPostText (Profile mode), query (Accounts mode).
How much does it cost?
Pricing is pay per row. There is no browser in this Actor, so platform usage is close to zero; error rows are free.
| Row | Price |
|---|---|
| Post (any mode, replies included) | $0.002 โ 1,000 posts for $2 |
Profile (Profile mode, includeProfile, Accounts with details) | $0.004 |
| Account match without details | $0.002 |
An account's last 1,000 posts cost $2 and about 40 requests. Larger monthly plans get 10โ30 % off.
How to scrape Threads
- Choose What to get.
- Paste Usernames (posts, replies, reposts, profile), Keywords (search, accounts) or Post URLs (thread). Any Threads URL pasted into Any Threads URLs is routed by itself.
- Set Posts per account or keyword, and optionally Only posts after a date or Keep only posts containing words.
- Click Start; export, or read the dataset through the API.
โฌ๏ธ Input
{"mode": "posts","usernames": ["zuck", "natgeo"],"maxPosts": 200,"includeProfile": true}
Monitor keywords and hashtags
{ "mode": "search", "keywords": ["AI agents", "#nba", "apify"], "maxPosts": 100, "searchTypes": ["top", "recent", "tags"] }
A post with its replies
{ "mode": "thread", "postUrls": ["https://www.threads.net/@zuck/post/Dcy_A8pGo-m"], "maxRepliesPerPost": 100 }
Find accounts and their contacts
{ "mode": "users", "keywords": ["coffee roaster brooklyn", "specialty coffee"], "maxUsersPerKeyword": 20, "includeProfileDetails": true }
Posts since a date, about a topic
{ "mode": "posts", "usernames": ["nasa"], "maxPosts": 500, "postedAfter": "2026-06-01", "filterKeywords": ["artemis", "moon"] }
โฌ๏ธ Output
{"type": "post","id": "3977518562965884838","code": "Dcy_A8pGo-m","url": "https://www.threads.net/@zuck/post/Dcy_A8pGo-m","text": "Muse Spark 1.3 is rolling out today with frontier performance almost too cheap to meterโฆ","createdAt": "2026-09-02T19:26:23.000Z","timestamp": 1788377183,"username": "zuck","userId": "63055343223","fullName": "Mark Zuckerberg","isVerified": true,"likeCount": 1453,"replyCount": 196,"repostCount": 148,"quoteCount": 28,"shareCount": 78,"mediaType": "image","imageUrl": "https://instagram.fdps8-1.fna.fbcdn.net/v/t51.82787-15/โฆ.webp","images": [{ "url": "โฆ", "width": 1080, "height": 970, "alt": null }],"videos": [],"hashtags": [],"mentions": [],"urls": [],"linkPreview": null,"isReply": false,"isQuote": false,"isRepost": false,"isPinned": false,"threadId": "3977518562965884838","positionInThread": 0,"threadLength": 1,"source": "posts","sourceUsername": "zuck","scrapedAt": "2026-09-06T10:05:12.000Z"}
Profile rows have type: "profile". An account or post that cannot be read arrives as a type: "error" row with the reason (profile not found, post not found or unavailable, rate limit), never as a silently missing item.
Use cases
Social listening
Search keywords and hashtags on a schedule, keep the rows, and watch likeCount, replyCount and new authors over time.
Creator and competitor research
Pull an account's whole history with Posts mode and its profile; compare posting cadence, media mix (mediaType), best-performing posts and who they reply to.
Lead generation
Accounts mode with a niche keyword returns matching profiles with emails, phones and websiteUrl taken from public bios.
Archiving and research
Posts mode with postedAfter builds a dated corpus with language, media and links for every post.
AI agents
An agent asked "what did @nasa post this week" or "what are people saying about X on Threads" gets typed rows it can summarise.
Integrations and Threads API
Run it from the Apify API, the JavaScript and Python clients, a schedule, or a webhook, and push results to Google Sheets, Slack, Discord, Notion or a database through n8n, Make or Zapier. The Apify MCP server exposes it to Claude, ChatGPT and other agents as a tool.
๐ค For AI Agents & LLM Apps
Compact reference for agents calling this Actor through the Apify MCP server or the Apify API (lergassy/threads-scraper).
Purpose: read public Threads content โ an account's posts, replies or reposts, its profile, posts matching a keyword or hashtag, a post with its replies, or accounts matching a keyword.
Minimal inputs:
{ "mode": "posts", "usernames": ["zuck"], "maxPosts": 50 }{ "mode": "search", "keywords": ["#nba"], "maxPosts": 50 }{ "mode": "thread", "postUrls": ["https://www.threads.net/@zuck/post/Dcy_A8pGo-m"] }{ "mode": "profile", "usernames": ["natgeo"] }{ "mode": "users", "keywords": ["coffee roaster"] }
Output: rows with type = post, profile or error. Post rows: url, text, createdAt, username, fullName, likeCount, replyCount, repostCount, quoteCount, shareCount, mediaType, imageUrl, videoUrl, hashtags, mentions, urls, linkPreview, isReply, replyToUsername, isQuote, quotedPost, isRepost, repostedPost, threadId, positionInThread, source, query. Profile rows: username, fullName, biography, bioLinks, emails, phones, followerCount, isVerified, profileUrl.
Behaviors an agent should know:
- Posts mode pages through the profile until
maxPostsorpostedAfter; a multi-post thread yields one row per post withpositionInThread. - Search, Replies, Reposts and Thread read what Threads shows a logged-out visitor: roughly 20 posts per result page (top, recent, tag), the first ~25 replies of a post and the latest replies/reposts of an account.
maxPostsis a cap, not a promise. - Search matches keywords the way Threads does (not exact phrase); use
filterKeywordsfor a strict filter. sourcesays where a row came from; in Replies modereply-contextrows are the posts being answered,repliesrows are the account's own replies.- Counts are numbers; missing counts (hidden likes, no view count) are null.
timestampis Unix seconds,createdAtISO 8601 UTC. - Usernames are accepted bare, with @ or as URLs. Private accounts and deleted posts return an
errorrow. - A datacenter proxy is on by default and is enough; switch to Residential only if rate-limit errors appear.
โ FAQ
Do I need a Threads account or cookies?
No. The Actor reads public pages only and never logs in, so there is no account to get banned.
How many posts can I get from one account?
All of them, subject to maxPosts โ Posts mode uses the same pagination the site uses when you scroll.
Why does Search return fewer posts than I asked for?
Threads shows a logged-out visitor one page of results per keyword. The Actor combines the top, recent and tag pages and removes duplicates, which usually gives 20โ60 posts per keyword. Use several related keywords for more.
Can I get followers or following lists?
Not without a login; Threads does not expose them publicly. Follower counts are included in profile rows.
Is it legal?
The Actor reads publicly available content that Threads serves to anyone and does not bypass logins. Whether you may store or reuse it depends on your purpose and jurisdiction; respect people's privacy and Meta's terms. This is not legal advice.
Can I use it with the Apify API or an MCP server?
Yes. The Actor is pay-per-event with limited permissions, so agents can run it through the Apify MCP server without extra setup.
Your feedback
Missing a field or a mode? Open an issue in the Issues tab and it will be looked at within a day.
You might also like
- Sports Scores & Schedules API โ scores, schedules and standings for 33 leagues.
- Booking.com Hotels Scraper โ hotels, rooms, rates, reviews and price calendars.
- Website Contacts API โ emails, phones and social links from any website.