Threads Scraper & Mentions Monitor avatar

Threads Scraper & Mentions Monitor

Pricing

from $1.80 / 1,000 post scrapeds

Go to Apify Store
Threads Scraper & Mentions Monitor

Threads Scraper & Mentions Monitor

Scrape public Threads posts from profiles and keyword searches without login: text, author, likes, replies, reposts, quotes and media. Monitor mode returns only posts that are new since the last run, with webhook alerts. Pay per post.

Pricing

from $1.80 / 1,000 post scrapeds

Rating

0.0

(0)

Developer

Yushi Homma

Yushi Homma

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 hours ago

Last modified

Categories

Share

Scrape public Threads posts from profiles and keyword searches, without logging in. Each post comes back as a flat row with text, author, likes, replies, reposts, quotes and media. Run it on a schedule with Only new posts turned on, and you only get (and pay for) posts that appeared since the previous run, plus a webhook alert for each one.

  • Profiles: the latest posts of any public account, paginated up to 1,000 posts per profile.
  • Keyword search: the newest and top-ranked posts mentioning a brand, product or topic.
  • Monitoring built in: newSinceLastRun on every row, an Only new posts switch, and webhook alerts for new posts (to Slack, email or a spreadsheet via Zapier, Make or n8n).
  • API and AI agent tool: fetch a profile's posts in one API call, or let an AI agent call it as a tool through the Apify MCP server.
  • No browser, no cookies, no account: plain HTTP requests, 256 MB memory.

Use cases

  • Brand and competitor monitoring: get a webhook whenever someone posts about your brand on Threads.
  • Track what creators, executives or competitors publish, with engagement numbers for each post.
  • Collect posts on a topic for research, sentiment analysis or an LLM pipeline.
  • Give an AI agent a "what is @someone posting on Threads?" tool.

How to use it

  1. Add Profiles (zuck, @zuck or https://www.threads.com/@zuck) and/or Search keywords (apify, web scraping).
  2. Choose Max posts per profile or keyword (default 25).
  3. For monitoring, turn on Only new posts, optionally set an Alert webhook URL, and run the Actor on a schedule (for example hourly). The first run returns everything and becomes the baseline; later runs return only new posts.

Which posts were already seen is stored per profile or keyword in your account's key-value store threads-mentions-monitor-state.

Tutorial: get a Slack message whenever someone mentions your brand on Threads

  1. In Zapier, Make or n8n, create a scenario that starts with a webhook trigger ("Catch Hook" in Zapier, "Custom webhook" in Make, "Webhook" node in n8n) and copy its URL.
  2. Add a Slack → Send message step. Map item.authorUsername, item.text, item.likeCount and item.url into the message.
  3. In this Actor, add your brand name, product names and common misspellings under Search keywords (and your own or competitors' handles under Profiles), turn on Only new posts, and paste the webhook URL into Alert webhook URL.
  4. Run it once. That run records the current posts as the baseline and sends no alerts.
  5. Open Schedules in Apify Console and run the Actor hourly with the same input. Each new mention then becomes one Slack message, and you pay only for new posts.

For sentiment analysis, send the same webhook to an AI step (e.g. OpenAI or Claude in Zapier or Make) before posting to Slack.

Input

{
"profiles": ["zuck"],
"searchQueries": ["apify"],
"searchSort": "all",
"maxPostsPerSource": 25,
"onlyNewPosts": true,
"alertWebhookUrl": "https://hooks.example.com/threads"
}
FieldRequiredDescription
profilesone of these twoUsernames or profile URLs.
searchQueriesone of these twoKeywords, topics or Threads search URLs. A leading # is dropped, because Threads searches topics without it.
searchSortnoall (default: top-ranked and newest posts merged, newest first), recent or top. Logged-out Threads returns only a handful of "recent" posts, so all gives the best coverage.
maxPostsPerSourceno1 to 1,000 posts per profile or keyword (default 25).
onlyNewPostsnoReturn only posts not seen in earlier runs (default false).
alertWebhookUrlnoReceives a POST for every post that is new since the previous run.
proxyConfigurationnoLeave empty: Threads is fetched directly, falling back to Apify datacenter and then residential proxies only if Threads rate-limits the run. Set a proxy to use it for every request.

Output

One dataset item per post:

{
"postId": "4006434140014576097",
"code": "DeZtp-TkQHh",
"url": "https://www.threads.com/@zuck/post/DeZtp-TkQHh",
"text": "Introducing Muse Wonder, our new family of frontier models…",
"createdAt": "2026-10-12T16:56:29.000Z",
"authorUsername": "zuck",
"authorFullName": "Mark Zuckerberg",
"authorVerified": true,
"authorProfilePicUrl": "https://scontent.cdninstagram.com/…",
"likeCount": 2121,
"replyCount": 556,
"repostCount": 168,
"quoteCount": 60,
"isReply": false,
"mediaUrls": ["https://scontent.cdninstagram.com/…"],
"source": "profile:zuck",
"newSinceLastRun": false,
"scrapedAt": "2026-10-25T13:21:14.020Z"
}

The webhook body is { "actor": "threads-mentions-monitor", "item": { ...same fields... }, "detectedAt": "<ISO time>" }.

API and AI agents

Run it and get the results in one call:

curl -X POST "https://api.apify.com/v2/acts/yushi3~threads-mentions-monitor/run-sync-get-dataset-items" \
-H "Authorization: Bearer <APIFY_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"profiles": ["zuck"]}'

It returns the dataset items as a JSON array. AI agents can call the Actor as a tool through the Apify MCP server.

Pricing

EventPrice
Post returned$0.0018
New-post alert delivered to your webhook$0.002

With Only new posts on, posts you already received are neither returned nor charged, so an hourly brand monitor costs only for genuinely new mentions. Nothing is charged for a profile or keyword that fails; failed webhook deliveries are not billed either.

Limitations

  • Only public data visible to a logged-out visitor. Private profiles, followers lists and likes lists are not available.
  • Threads returns about 30 posts per keyword search; for more coverage, add related keywords.
  • Replies are included only when they appear in a profile's posts (for example an author continuing their own thread); other people's replies to a post are not collected.
  • Like counts are null when the author hides them.
  • A username that doesn't exist (or isn't public) is reported in FAILED_TARGETS as not found and is not billed.

When a profile or keyword fails

Every profile and keyword is processed even if one fails. Failures are listed in the run's key-value store under FAILED_TARGETS with the reason, such as a missing profile or a Threads rate limit. The run fails outright only when Threads changed its page format in a way the Actor can no longer read (it is re-tested against the live site every 12 hours) or when every source failed.

Questions and issues

Open an issue on the Actor's Issues tab.