Threads Search Scraper
Pricing
from $2.50 / 1,000 post scrapeds
Threads Search Scraper
Search Meta Threads by keyword for public posts or by username for profiles. Each post row has text, hashtags, mentions, likes, replies, reposts, media URLs and author data; results are de-duplicated across queries. No cookies or login.
Pricing
from $2.50 / 1,000 post scrapeds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
27
Total users
9
Monthly active users
5 days ago
Last modified
Categories
Share
What is Threads Search Scraper?
Threads Search Scraper is an Apify Actor for people and teams that need Meta Threads search results in structured form. It accepts keyword searches for public Threads posts or username searches for public Threads user profiles, and it returns one record per matched result. The output includes fields such as post text, author identifiers, engagement counts, timestamps, profile URLs, verification flags, and the originating query so you can route each record into downstream analysis, monitoring, or agent workflows. It needs no cookies or login and is usable through Apify MCP.
Best fit and connected workflows
Use this Actor when you want search-result lists from Threads rather than a single post URL or a full profile history. It fits well with:
- topic monitoring from keyword searches across public Threads posts
- account discovery from username-fragment searches
- data prep for dashboards, CRM enrichment, content research, and AI agent steps
- tool-style integrations through Apify MCP, where a single search query produces structured dataset records
If your workflow starts with a topic, hashtag, or handle fragment, this Actor gives you a clean search layer before any follow-up enrichment or analysis.
Practical scenario
Maya, a social media analyst, starts with the keyword ai agents and sets searchType to posts. The run returns records with text, authorUsername, likeCount, replyCount, repostCount, quoteCount, takenAt, url, and query. Maya uses those fields to identify posts that deserve manual review, then shares the post URLs with a content lead for follow-up tracking.
Input
| Field | Type | Default | Description |
|---|---|---|---|
searchType | string enum | posts | Search mode. posts searches public Threads post text by keyword. users searches public Threads accounts by username fragment. |
queries | array of strings | ["ai agents"] | One or more independent search terms. Results are merged and de-duplicated across queries. |
maxResults | integer | 100 | Total cap across all queries for cost control. |
maxResultsPerQuery | integer | 25 | Cap per query before the Actor moves on to the next query. |
startDate | string | - | Earliest post date in YYYY-MM-DD format. Applied only in posts mode. |
endDate | string | - | Latest post date in YYYY-MM-DD format. Applied only in posts mode. |
Focused input example
{"searchType": "posts","queries": ["ai agents", "vibe coding"],"maxResults": 20,"maxResultsPerQuery": 10,"startDate": "2026-01-01","endDate": "2026-06-30"}
Output
The Actor writes results to the default dataset. The dataset record shape depends on the selected search mode.
| Mode | Record fields |
|---|---|
posts | postId, code, url, text, hashtags, mentions, authorUsername, authorFullName, authorIsVerified, likeCount, replyCount, repostCount, quoteCount, reshareCount, isReply, mediaType, imageUrl, videoUrl, takenAt, query |
users | username, fullName, userId, isVerified, isActiveOnThreads, profilePicUrl, followerCount, profileUrl, query |
hashtags and mentions are parsed from the post text (lowercased, de-duplicated).
Example post row (subset of a real result)
{"text": "I literally have a business that is 100% automated by my AI agents","authorUsername": "kevbuildsai","authorFullName": "Kev | AI Agent Automation","likeCount": 30,"replyCount": 11,"repostCount": 0,"quoteCount": 0,"takenAt": "2026-06-15T10:23:34.000Z","url": "https://www.threads.com/@kevbuildsai/post/DZlvKb5FPll","query": "ai agents"}
How it works
The Actor runs each query against a managed public-data search route for Threads, with an automatic fallback route when the primary returns an empty result or fails. Results from all queries are merged and de-duplicated by post ID or user ID.
The input schema supports two search modes:
postsfor public post text searches by keywordusersfor public account searches by username fragment
For posts, optional date filtering is available through startDate and endDate. Each mode has its own dataset view in the Apify Console.
Outcome codes
The OUTPUT and RUN_SUMMARY records carry an outcome field:
COMPLETE: every query was fetched.VALID_EMPTY: the search worked but nothing matched; nothing is charged for results.PARTIAL: some queries could not be fetched, or the run stopped shortly before its timeout; saved results are kept.INVALID_INPUT: no usable query or an unknown search type; nothing is charged for results.UPSTREAM_FAILED: every query failed on every route and nothing was saved; the run is marked failed.
Pricing
This Actor uses Pay per event with Apify platform usage included. It has these charge events:
- Actor start
- Post scraped
- User found
Each saved post or user is billed as one result event, plus one Actor start event per run. For example, a run that returns one hundred results in one mode is billed for one Actor start event and one hundred result events. Empty searches and invalid input charge no result events. See the Pricing tab for current event prices.
Free Apify plan
Runs started from a free Apify plan return up to 25 results per run, with every input mode and output field available. Paid Apify plans have no per-run limit, so your usual result settings apply.
Use with AI agents (MCP)
This Actor is available as an Apify Actor usable through Apify MCP. The exact Actor identity is khadinakbar/threads-search-scraper.
Tool purpose: run a Threads search and receive structured dataset rows that an agent can inspect, summarize, classify, or hand off to another step.
Search Threads for public posts about "ai agents", return the top 10 results, and include the post URL, author, counts, timestamp, and the originating query for each record.
Output interpretation:
- In
postsmode, each row represents one matched public post. - In
usersmode, each row represents one matched public account. - The
queryfield shows which search term produced the record. - The dataset is the source of truth for run results.
- The output schema exposes a
resultslink to the dataset items endpoint. - If you use multiple queries, the Actor merges and de-duplicates results across those queries.
maxResultscontrols the total run cap, andmaxResultsPerQuerycontrols per-query yield.
Scope and provenance:
- Results come from public Threads search.
- The Actor needs no cookies or login.
Pagination and cost guidance:
- Each query typically returns about 20 to 25 results from public search.
- Larger
maxResultsPerQueryvalues rarely add more beyond that range. - Use
maxResultsto cap the total number of billed records across all queries.
Apify API example
import { ApifyClient } from 'apify-client';const client = new ApifyClient({token: process.env.APIFY_TOKEN,});const input = {searchType: 'posts',queries: ['ai agents'],maxResults: 10,};const run = await client.actor('khadinakbar/threads-search-scraper').call(input);const datasetId = run.defaultDatasetId;const { items } = await client.dataset(datasetId).listItems();console.log('Dataset items:');for (const item of items) {console.log(item);}
Best results and outcome guidance
Pick posts when you want topic or hashtag monitoring, and pick users when you want account discovery from a handle fragment. Keep queries specific enough to match the search intent you want to analyze. If you are collecting posts, use startDate and endDate when a time window matters. For broader coverage, add several related queries and review the merged dataset output.
Continue the workflow
- After discovery, then use Meta Threads Profile Posts Scraper to pull the recent posts of an account you found here.
Design note
In my testing, public Threads search returns a short page of roughly 20 to 25 items per query, so depth comes from several related queries rather than a higher maxResultsPerQuery. I designed the Actor to de-duplicate across queries by post or user ID, so overlapping keywords and hashtag variants never bill the same post twice.
FAQ
Is this Actor for a single Threads post URL?
This Actor is built for search-result lists. Use a post-detail workflow for a single post URL, or a profile workflow for a full account page.
Can I search public Threads users by name fragment?
Yes. Set searchType to users and pass username fragments in queries, such as openai.
Can I search public Threads posts by topic?
Yes. Set searchType to posts and pass keywords or hashtags in queries, such as ai agents or climate tech.
What happens when I use multiple queries?
Each query runs independently, then the Actor merges and de-duplicates the results before writing them to the dataset.
How do I get more than about 25 posts on a topic?
Add related keywords, hashtag variants or phrases to queries. Each query is searched separately and duplicates are removed before billing.
Responsible use
Use the results in line with Meta's public access terms and applicable law. This Actor is intended for public Threads search data, structured analysis, and approved automation workflows.