Threads Search Scraper avatar

Threads Search Scraper

Pricing

from $2.50 / 1,000 post scrapeds

Go to Apify Store
Threads Search Scraper

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

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

27

Total users

9

Monthly active users

5 days ago

Last modified

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

FieldTypeDefaultDescription
searchTypestring enumpostsSearch mode. posts searches public Threads post text by keyword. users searches public Threads accounts by username fragment.
queriesarray of strings["ai agents"]One or more independent search terms. Results are merged and de-duplicated across queries.
maxResultsinteger100Total cap across all queries for cost control.
maxResultsPerQueryinteger25Cap per query before the Actor moves on to the next query.
startDatestring-Earliest post date in YYYY-MM-DD format. Applied only in posts mode.
endDatestring-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.

ModeRecord fields
postspostId, code, url, text, hashtags, mentions, authorUsername, authorFullName, authorIsVerified, likeCount, replyCount, repostCount, quoteCount, reshareCount, isReply, mediaType, imageUrl, videoUrl, takenAt, query
usersusername, 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:

  • posts for public post text searches by keyword
  • users for 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 posts mode, each row represents one matched public post.
  • In users mode, each row represents one matched public account.
  • The query field shows which search term produced the record.
  • The dataset is the source of truth for run results.
  • The output schema exposes a results link to the dataset items endpoint.
  • If you use multiple queries, the Actor merges and de-duplicates results across those queries.
  • maxResults controls the total run cap, and maxResultsPerQuery controls 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 maxResultsPerQuery values rarely add more beyond that range.
  • Use maxResults to 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

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.