Threads Scraper - Posts, Profiles, Replies, Views & Search
Pricing
from $1.50 / 1,000 results
Threads Scraper - Posts, Profiles, Replies, Views & Search
Scrape Threads without login: posts, replies, profiles, keyword & #hashtag search, with view counts, likes and bio e-mails. Filters and monitoring. $2.50 per 1,000 on Free, $1.50 on Business.
Pricing
from $1.50 / 1,000 results
Rating
5.0
(1)
Developer
Alom Dev
Maintained by CommunityActor stats
0
Bookmarked
27
Total users
13
Monthly active users
12 hours ago
Last modified
Categories
Share
Threads Scraper
Get Threads posts, replies, profiles and search results as a table, without logging in. Paste a username, a post URL or a keyword, press Start, and download likes, replies, reposts and view counts as JSON, CSV or Excel.
- No login, nothing to ban. It reads what a logged-out visitor of threads.com sees.
- Every kind of Threads data in one Actor: a profile's posts, its Replies and Reposts tabs, the replies under a post, keyword and #hashtag search, and account search with the e-mails people list in their bio.
- View counts and filters: the exact number behind "423K views", plus minimum likes, minimum replies and language.
- 3-4x more search results without login: about 60-85 posts per keyword instead of the ~20 one result page shows.
- $2.50 per 1,000 results on the Free plan, $1.50 on Business. Many Threads scrapers charge $5-20.
How to scrape Threads in 3 steps
- Enter usernames (e.g.
zuck), post URLs or keywords / #hashtags in the form. Leave What to scrape on Everything I fill in below: usernames give the profile and its posts, post URLs give the post and its replies, keywords give a post search. - Press Start. A profile with 20 posts usually takes well under a minute.
- Open the Output tab, or export to CSV, Excel or JSON. You can also pull results through the Apify API, Make, Zapier or n8n, and schedule the run to get only new posts.
The Free plan's $5 monthly credit covers about 2,000 results, so you can try it on your real use case first.
What can you use Threads data for?
- Brand and competitor monitoring: what competitors post, how often, and how much engagement each post gets.
- Brand mentions and hashtag tracking: every new post that mentions your brand or uses your #hashtag, hourly.
- Lead generation: find accounts in a niche by keyword and collect the contact e-mails they list in their bio.
- Influencer vetting: followers, verification, posting frequency and real engagement per post.
- Audience research: read the replies under a viral post, or what people write about a keyword or #hashtag.
- Social listening and alerts: schedule a run every hour; get only what's new.
- AI and research datasets: post text with timestamps, authors and engagement counts.
What can it scrape?
mode | Input | Output |
|---|---|---|
posts (default for usernames) | usernames or profile URLs | one profile row + the account's posts, newest first, with paging |
profile | usernames or profile URLs | profile rows only (followers, bio, links, topics): 1 request each |
post | post URLs | the post, the author's own thread continuation, and its replies (with nested reply chains) |
user_replies | usernames or profile URLs | the replies the account wrote (its Replies tab), each with the post it answered (repliedToPost) |
user_reposts | usernames or profile URLs | the posts the account reposted (its Reposts tab): the original post + repostedByUsername, repostedAt |
search | keywords, #hashtags, search or /tag/ URLs | posts for each keyword: top order, or newest first (searchSort: "recent") |
accounts | keywords | accounts matching each keyword (up to 100), with followers, bio, bio links, e-mails and phones from the bio |
Leave mode empty (or auto) and fill in any mix of usernames, postUrls and searchQueries: every group runs.
{ "usernames": ["zuck", "@mosseri", "https://www.threads.net/@nasa"], "maxPosts": 100 }
{ "postUrls": ["https://www.threads.com/@zuck/post/Dd1MqfcG0aH"], "maxReplies": 300 }
{ "searchQueries": ["espresso machine", "#coffee"], "searchSort": "recent", "requireKeywordMatch": true }
{ "searchQueries": ["ai agents"], "maxPosts": 50, "minLikes": 10, "languages": ["en"], "includeViews": true }
{ "mode": "user_replies", "usernames": ["mosseri"], "maxPosts": 100 }
{ "mode": "accounts", "searchQueries": ["coffee roaster", "specialty coffee"], "maxPosts": 50 }
Also accepted from other scrapers: mode user_reposts / reposts, user_replies / replies (with usernames),
profiles (with keywords only = account search), search_filter. In the profile modes, keywords don't search: they
flag matching rows (keywordMatch), nothing is removed.
Output example
{"type": "post","postId": "3994109866205639942","code": "Ddt7cL5EfUG","url": "https://www.threads.com/@zuck/post/Ddt7cL5EfUG","text": "Agrippa said it's time to get back to work 😎","username": "zuck","fullName": "Mark Zuckerberg","userId": "63055343223","isVerified": true,"likeCount": 5007,"replyCount": 491,"repostCount": 258,"quoteCount": 47,"reshareCount": 140,"mediaType": "carousel","media": [{ "type": "image", "url": "https://scontent…webp", "width": 2160, "height": 2700 }],"hashtags": [],"topicTag": null,"mentions": [],"urls": [],"linkPreview": null,"isReply": false,"replyToUsername": null,"parentPostId": null,"rootPostId": null,"isPinned": false,"isRepost": false,"repostedFrom": null,"quotedPost": null,"timestamp": 1790355021,"date": "2026-09-25T16:50:21.000Z","source": "user:zuck","scrapedAt": "2026-09-30T11:35:10.000Z"}
(media is shortened here: this carousel has 9 images and videos.)
- Replies (
type: "reply") have the same fields plusrootPostId(the post you asked for) andparentPostId(what they answer: the root, or another reply in a chain). - More on every post:
quotedPost/repostedFromwith the original's text, likes, replies, reposts and date;isQuotePost,linkPreview(url, title, description, image),mentionedAccounts(with user ids),taggedUsers,isEdited,isPaidPartnership,isAiGenerated(Meta's AI label),isSpoiler,language,accessibilityCaption,hasAudio,music(title, artist),location,replyControl,isLikedByAuthor. - View counts:
viewCountis the exact number behind "423K views". A post you give by URL always has it. For every other row turn onincludeViews: each count is read from the post's own page (one extra request per post, not charged), which adds about 1.5 seconds per post: 60 profile posts took 109 s instead of 20 s in our test. It was filled on 597 of 600 profile posts and 33 of 40 search posts; where Threads shows none (mostly small, new posts), it isnull. - Language:
languageis Threads' own label when the post has one (e.g.zh_TW), otherwise a two-letter code guessed from the text (en,es,pt,fr,de,it,nl,id,tr,pl,vi,ru,uk,ja,ko,zh,th,hi,he,ar,el). Posts too short to tell ("Coffee?") staynull. - Filters:
minLikes,minRepliesandlanguageskeep only matching rows; you pay only for rows you receive. Thelanguagesfilter keeps posts whose language could not be told, so pair it withminLikesfor a clean feed. - Engagement rate: posts from a profile carry
authorFollowerCountandengagementRate= (likes + replies + reposts) / followers. It isnullwhere followers are unknown (search, post URLs, reposts). - Where it came from:
sourceTab(posts,replies,reposts),searchKeywordandkeywordMatch(the text, topic tag or link title contains the keyword). - Profiles (
type: "profile"):username,fullName,userId,biography,followerCount,isVerified,isPrivate,profilePicUrl(largest),bioLinks,emailsandphones(written in the bio),profileTags,url;followingCountwhen Threads shows it (usuallynull);searchKeywordin accounts mode. sourcesays which input produced the row (user:zuck,post:Dd1MqfcG0aH,search:#coffee).- Values Threads doesn't show are
null, never a made-up0(for example, likes the author has hidden). - A post that several inputs return is delivered (and charged) once per run.
How much does it cost?
From $1.50 per 1,000 results, plus $0.005 per run. One result = one post, one reply, or one profile.
| Apify plan | Price per 1,000 results |
|---|---|
| Free | $2.50 |
| Starter (Bronze) | $2.00 |
| Scale (Silver) | $1.75 |
| Business (Gold) and above | $1.50 |
- 100 posts from each of 10 competitors: $2.50 on the Free plan, $1.50 on Business
- 500 replies under a viral post: $1.25 on the Free plan
You only pay for results you get: nothing for failed inputs, duplicates or posts a monitor already returned. Platform usage is included. For comparison, 10,000 posts cost $25 on the Free plan and $15 on Business here; Threads search actors in the Store charge $50-200 for the same, profile scrapers often $50.
Switching from another Threads scraper?
Keep your input and change the Actor ID: it takes a minute.
usernames,searchQueries,maxPosts,includeProfile,postedAfterandpostedBeforework the same way. Also accepted:mode: "user",keywords,max_posts,start_date/end_date,startUrls.- Rows use the familiar field names (
postId,code,username,text,likeCount,replyCount,repostCount,quoteCount,mediaType,media,hashtags,mentions,urls,isReply,isRepost,timestamp,date,url; profiles:followerCount,biography,isVerified,profilePicUrl), so your pipeline keeps working.
Monitoring (only new posts)
Turn on "Only new posts since my last run", give it a name (e.g. competitors-daily), and schedule the run in
Apify Console. Each run returns only posts no earlier run with that name returned. For profiles it stops at the first
post it already knows, so an hourly run of 20 accounts costs almost nothing when nobody posted. It also works for
replies (only new replies under a post) and search.
{ "usernames": ["nike", "adidas", "puma"], "maxPosts": 50, "onlyNewSinceLastRun": true, "monitorName": "competitors-daily" }
Own session cookie (optional, at your own risk)
You never need it. If you paste the cookies of your own logged-in threads.com tab into sessionCookie (the
Cookie header or a JSON export with at least sessionid), searches use Threads' real Recent tab and page
through it like the app does: in our test a Recent search for "news" returned 300 posts from the last 6 hours, against
155 without a cookie. A search never fails because of the cookie: if Threads rejects a logged-in request, the run
notes it in the log and fills up from logged-out result pages.
⚠️ Requests are then made as your account (from one IP, at most 2 in parallel). Meta may rate-limit, checkpoint or ban accounts that scrape: use a spare account, and you carry that risk. The cookie is stored encrypted as a secret input and is never logged or written to the results. If Threads doesn't accept it (expired, logged out), the run says so in the log and continues logged out.
Limitations
- Search: Threads shows logged-out visitors ~20 posts per result page and no "next page". The Actor opens several
result pages (keyword search, tag search, tag page) from fresh IPs and merges them: measured 60-85 unique posts per
keyword; it stops when 3 pages in a row bring nothing new. Without a session cookie,
searchSort: "recent"sorts what was found newest first (Threads' own "Recent" tab needs login), and date filters are applied to what was found. - Profiles: Threads lets logged-out visitors page back only so far: measured 138 threads for @nasa, 165 (~260
posts) for @zuck and 419 for @mosseri.
maxPostsabove that returns what Threads shows. Replies and Reposts tabs page the same way. - Replies: about the first 1,000 replies of a post, in Threads' "top" order or newest first (
repliesSort). - Not available without login: following and post counts, polls. Account search returns up to ~100 accounts per keyword.
- An unknown username or post URL fails that input (the run finishes as
partial), not the whole run. Threads answers them with a redirect to its login or home page, so we double-check from a second IP first.
FAQ
Do I need a Threads or Instagram account? No. Nothing is logged in by default, so there is nothing to ban. The optional session cookie only unlocks Threads' real "Recent" search tab and deeper search paging, at your own risk.
Is it legal? It collects publicly visible data. You are responsible for how you use it, including data protection rules for personal data (usernames, replies).
The run says partial. What does it mean? Some inputs didn't finish: an unknown username, a deleted post, or the
run hit its timeout. The status message and the log say which. You are only charged for rows you received.
Use it from AI agents (Claude, ChatGPT, Cursor and other MCP clients)
The Actor works as a tool through the Apify MCP server. The URL that loads only this Actor:
https://mcp.apify.com/?tools=alom/threads-scraper
- Claude (claude.ai or Desktop): Settings → Connectors → Add custom connector, paste the URL and sign in with your Apify account.
- Claude Code:
claude mcp add --transport http threads "https://mcp.apify.com/?tools=alom/threads-scraper", then/mcpto sign in. - Cursor and other clients with an
mcpServersconfig:{ "mcpServers": { "threads": { "url": "https://mcp.apify.com/?tools=alom/threads-scraper" } } }
The agent gets a tool named alom--threads-scraper with the same inputs as this page. Ask it, for example: "Get the
last 20 posts of @mosseri with view counts and tell me which topics got the most views" or "Find English posts about
espresso machines from this week with at least 10 likes and summarise the complaints." Two tips: keep maxPosts small
(10-30) so the answer fits the context, and use minLikes and languages so the rows are worth reading. Each call is
a normal run at the normal price.
More scrapers from the same developer
- Threads Search Scraper: posts by keyword or #hashtag, top or newest first, with filters
- Threads Profile Scraper: followers, bio, bio links and contacts of any Threads account
- Threads Replies Scraper: the replies under any Threads post with whole reply threads, or every reply an account wrote
- Threads Account Finder: Threads accounts by keyword with followers, bio links and the contacts they list
- Threads Hashtag & Keyword Monitor: only the new posts for your keywords and #hashtags, for scheduled runs
- Google Trends API & Scraper: interest over time, regions, related queries and Trending Now, a pytrends alternative
- YouTube Scraper: videos, channels, Shorts, comments, subtitles and community posts without the API quota
- Bilibili Scraper: videos, creators, full comment threads and danmaku from B站, no login
- Google Hotels Scraper: hotel prices from every booking site across dates, room rates and reviews
- Google Ads Transparency Scraper: every Google ad a competitor runs, with the real ad copy
- YouTube Comments Scraper: comments and replies of any YouTube video or Short
- YouTube Channel Scraper: every video of a channel with views, likes, dates and channel stats
- YouTube Shorts Scraper: Shorts by channel or keyword with views and likes
- Google Flights Scraper: flight prices, airlines, layovers and a cheapest-date calendar for any route
Feedback
Missing a field, found a bug, or need a feature? Open an issue in the Issues tab and I'll take a look. If this Actor saved you time, a short review on the Store page helps other people find it.