Threads Search - Keyword & Profile Posts Scraper (No Login)
Pricing
from $2.50 / 1,000 posts
Threads Search - Keyword & Profile Posts Scraper (No Login)
Find public Threads posts by keyword, hashtag or topic (top, recent and tag results) and collect the posts and replies of any Threads profile. Each row has the text, author, likes, replies, reposts, quotes, media URLs and post date. No login or cookies. $2.50 per 1,000 posts; failed inputs are free.
Pricing
from $2.50 / 1,000 posts
Rating
0.0
(0)
Developer
Tenfold Fleet
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
11 hours ago
Last modified
Categories
Share
Not affiliated with Meta or Threads. This Actor reads only public pages that anyone can open without an account.
What does Threads Search do?
Threads Search finds public Threads posts by keyword, brand name, phrase or #hashtag, and collects the posts and replies of any Threads profile. It works like a Threads search API: give it a list of keywords and handles, and get back clean rows with the post text, author, likes, replies, reposts, quotes, media URLs, links, mentions and the exact post time.
For every keyword it can read three result tabs of Threads search: Top (most relevant), Recent (newest first) and Topic tags. For every profile it reads the profile's own posts and, if you want, the replies it wrote under other people's posts, each reply with the post it answers. It runs without a login, cookies or a browser, so it is fast and cheap: $2.50 per 1,000 posts, and empty searches or unavailable profiles cost nothing.
Why use this Threads scraper?
- Social listening: track what people say about a topic, a product launch or a news story on Threads, newest posts first.
- Brand monitoring: run your brand, product and competitor names every day on a schedule and catch mentions and complaints early.
- Creator and competitor research: pull a profile's recent posts with engagement counts to see which formats and topics get likes and replies.
- Influencer vetting: get follower count, bio, verified badge and posting history for a list of handles in one run.
- Datasets for AI and analytics: send deduplicated post text with stable IDs and timestamps to a spreadsheet, BI tool, vector store or LLM.
What data can it extract?
| Field | Example |
|---|---|
text | Coffee fixes everything |
url, code, postId | link to the post, short code, numeric ID |
author.username, author.fullName, author.isVerified, author.id | nasa, NASA, true, 28829152388 |
likes, replies, reposts, quotes, shares | 164769, 620, 11477, 654, 4170 |
mediaType, mediaUrls | image / video / carousel / text, direct media links |
links, mentions, topic | URLs in the post, @mentioned users, the Threads topic tag |
isReply, replyToUsername, replyTo | the post a reply answers (code, URL, author, text) |
quotedPost | the post being quoted, when there is one |
postedAt | 2026-10-23T14:42:06.000Z |
matchedKeyword, sourceProfile, searchType | where the row came from: top, recent, tags, profile-posts, profile-replies |
Profile rows: username, fullName, bio, followers, isVerified, isPrivate, profilePicUrl, bioLinks, userId | one row per profile |
How to search Threads posts by keyword
- Open the Actor and add your keywords (one per line). Brand names, phrases and #hashtags all work.
- Pick the search tabs: Top, Recent and Topic tags are all on by default.
- Optional: add profiles as
@handle,handleor a profile link, and switch on Include the profile's replies if you need them. - Set Max posts per keyword or profile (default 40).
- Click Start, then download the results as JSON, CSV, Excel or HTML, or read them through the Apify API.
To monitor a brand, save the input as a task and add a daily schedule in Apify Console.
How much does it cost to scrape Threads?
This Actor uses pay-per-event pricing, so you only pay for rows you get:
| Event | Price |
|---|---|
| Post (from a search or a profile) | $2.50 per 1,000 ($0.0025 each) |
| Profile row | $5.00 per 1,000 ($0.005 each) |
| Run start | $0.00005 per run |
Each post is charged once per run, even when several keywords or tabs find it. Free: keywords with no results, unknown or unavailable profiles, invalid handles and pages that stay blocked after retries are written as error rows and never charged. Proxy traffic and compute are included.
Free Apify plan: up to 50 results per run. Any paid Apify plan removes the limit. Set a maximum cost per run in Apify Console if you want a hard cap.
Input
{"keywords": ["electric cars", "#coffee", "your brand name"],"searchTypes": ["top", "recent", "tags"],"usernames": ["@nasa", "zuck"],"includeReplies": true,"includeProfile": true,"maxPostsPerInput": 100}
keywords: words, phrases or #hashtags to search.searchTypes: any oftop,recent,tags.usernames: handles or profile links.includeReplies: also collect the replies each profile wrote (counted separately from its posts).includeProfile: one profile row per handle (default on).maxPostsPerInput: limit per keyword, and per profile for posts and again for replies. Use 0 withincludeProfilefor profile rows only.
Output
{"type": "post","postId": "3947519853926308903","code": "DbIaGRtFFwn","url": "https://www.threads.com/@zuck/post/DbIaGRtFFwn","text": "Meta has always believed in giving people the power to share, connect, and shape your world in the ways you want...","author": { "username": "zuck", "fullName": "Mark Zuckerberg", "isVerified": true, "id": "63055343223" },"likes": 1126,"replies": 187,"reposts": 87,"quotes": 17,"shares": 22,"mediaType": "text","mediaUrls": [],"isReply": true,"replyToUsername": "meta","replyTo": { "postId": "3947513500025400936", "code": "DbIYp0LEq5o", "username": "meta", "text": "We believe the future will have fewer barriers and more breakthroughs..." },"postedAt": "2026-07-23T10:04:19.000Z","searchType": "profile-replies","matchedKeyword": null,"sourceProfile": "zuck"}
Profile rows have "type": "profile" and error rows have "type": "error" with the failed input and the reason in error. You can download the dataset as JSON, CSV, Excel, XML or HTML, or filter on type to split posts from profiles.
Tips
- More posts per topic: Threads shows logged-out visitors roughly 30 to 40 unique posts per keyword (Top, Recent and Tags together), with no deeper paging. Add related keywords, spellings and hashtags to cover a topic; overlapping results are returned and charged once.
- Newest posts: the Recent tab gives the latest posts for a keyword (often from the last hour for busy topics). Schedule the run hourly or daily for monitoring.
- Profiles go deeper: profile posts and replies are paged 25 at a time, so a profile can return a few hundred posts. Raise
maxPostsPerInputfor that. - Only profile details: set
maxPostsPerInputto 0 and keepincludeProfileon.
FAQ
Do I need a Threads or Instagram account?
No. The Actor reads only what Threads shows to logged-out visitors. It never logs in and needs no cookies.
Why did a keyword return fewer posts than my limit?
Threads limits logged-out search results per keyword. The Actor collects all three tabs and stops when Threads has nothing more to show. Use more keywords to get more posts.
What happens with private or deleted profiles?
Threads sends logged-out visitors to its login page for profiles it does not show publicly. Those inputs get a free error row and are not charged.
Can I sort search results by date?
Yes. Keep recent in searchTypes to get the newest posts for each keyword. Every row also has postedAt, so you can sort or filter the whole dataset by time.
Can I use it with AI agents or the API?
Yes. Call it from the Apify API, the Apify MCP server or any Apify integration, and read the dataset as JSON.
Disclaimer
This Actor collects public data only. Posts and profiles can contain personal data; you are responsible for processing it lawfully (for example under the GDPR) and for respecting the rights of the people in it. Threads is a trademark of Meta Platforms, Inc.