Threads Search Scraper · Language & Engagement Filters avatar

Threads Search Scraper · Language & Engagement Filters

Pricing

from $2.10 / 1,000 posts

Go to Apify Store
Threads Search Scraper · Language & Engagement Filters

Threads Search Scraper · Language & Engagement Filters

Threads scraper for brand monitoring and content research: search Threads by keyword and keep only the Posts you want - language per post, minimum likes, replies or reposts, date window, required and excluded words. Posts that fail a filter are never charged.

Pricing

from $2.10 / 1,000 posts

Rating

0.0

(0)

Developer

TheQuietStack

TheQuietStack

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

15 days ago

Last modified

Share

Search Threads by keyword and keep only the posts you actually want - in your language, with real engagement, from your date range, without the flood of one-line replies.

Threads search mixes languages, replies and zero-like posts into every keyword. In our test on 04 Oct 2026, 13 of 19 visible posts for "vibe coding" were not in English, and 11 of 17 for "AI agents" were replies. This Actor detects the language of every post, applies your engagement, date and post-type filters, and charges only for the posts that pass.

No login, no cookies, no account needed.

What you get

This ActorTypical Threads search scrapers
Languagedetected per post from its text (language, languageReliable); filter with languages: ["en"]whatever the search returns
EngagementminLikes, minReplies, minReposts on the exact counts0-like posts included
Replies / reposts / quotesdropped by default (replies, reposts) or on request (quotes); a kept reply comes with its parent postmixed in
Date rangepostedAfter / postedBefore on the exact publish time, also relative ("7 days")often missing
Text relevancerequireQueryInText (all keyword words in the post), excludeWords-
MonitoringonlyNewPosts: later runs deliver only posts you have not received yetsame posts again, charged again
Duplicatesremoved across keywordsoften duplicated
What you pay foronly kept posts (+ a small fee per keyword searched)every scraped row
Transparencyrun summary: posts visible per keyword and how many each filter removed-

Use cases

  • Brand and product monitoring: your brand, product and competitor names as keywords, languages: ["en"], onlyNewPosts: true, scheduled hourly - each run delivers only new posts, straight into Google Sheets, Slack, Make, n8n or Zapier.
  • Lead and conversation discovery: keywords like "looking for a designer" with requireQueryInText: true and excludeReplies: true.
  • Trend research in one market: German keywords with languages: ["de"] and postedAfter: "3 days".
  • Content research: what performs in your niche - minLikes: 100 shows only posts that already got traction.
  • Datasets for research or AI: clean JSON with language, exact engagement and timestamps.

Input example

{
"queries": ["AI agents", "vibe coding", "#buildinpublic"],
"languages": ["en"],
"minLikes": 5,
"excludeReplies": true,
"excludeReposts": true,
"postedAfter": "7 days",
"onlyNewPosts": true
}
  • queries - keywords, phrases or #hashtags, or a threads.com/search?q=... link. Up to 100 per run.
  • languages - ISO 639-1 codes (en, de, es, ...) or names (English). keepUncertainLanguage keeps posts too short to detect ("Coffee?").
  • minLikes, minReplies, minReposts - minimums on the exact counts. Hidden like counts never pass a minimum above 0.
  • postedAfter, postedBefore - 2026-10-01, an ISO timestamp, or "24 hours", "7 days", "2 weeks".
  • excludeReplies (default on), excludeReposts (default on), excludeQuotes (default off).
  • requireQueryInText, excludeWords.
  • onlyNewPosts, stateStoreName, dedupeAcrossQueries (default on), maxResults, requestDelaySecs.

Output example

A real row from a test run on 04 Oct 2026 (languages: ["en"], minLikes: 5; media URLs shortened):

{
"query": "AI agents",
"rankInResults": 2,
"resultsVisible": 20,
"id": "3988374200540594977",
"url": "https://www.threads.com/@themattberman/post/DdZjTQ-jgMh",
"text": "jev is INSANE.\n\nin 40 seconds it broke down 724 live ads from 37 brands. ...",
"language": "en",
"languageReliable": true,
"languageSource": "detected",
"postedAt": "2026-09-17T19:00:47.000Z",
"likes": 1349,
"replies": 87,
"reposts": 98,
"quotes": 12,
"engagement": 1546,
"countsHidden": false,
"username": "themattberman",
"userFullName": "Matthew Berman",
"userVerified": false,
"profileUrl": "https://www.threads.com/@themattberman",
"isReply": false,
"parentPost": null,
"isRepost": false,
"isQuote": false,
"mediaType": "video",
"imageUrl": "https://scontent-....cdninstagram.com/...jpg",
"videoUrl": "https://scontent-....cdninstagram.com/...mp4",
"linkUrl": null,
"code": "DdZjTQ-jgMh",
"scrapedAt": "2026-10-04T18:23:38.090Z"
}

The SUMMARY record in the key-value store shows the filter funnel per keyword, for example: "AI agents": 20 posts visible, 2 written, dropped: minLikes 6, language 3, excludeReplies 9.

Honest numbers

  • Threads shows a logged-out visitor one window of about 15-20 posts per keyword (measured 04 Oct 2026 on 8 keywords: 14-20 posts each; one German two-word keyword showed none). There is no "Recent" tab and no further pages without logging in. This Actor never logs in, so it works with exactly that window - and tells you how many posts it saw (resultsVisible).
  • The window rotates. Running the same keyword again a minute later brought 7 posts that were not in the first run. For volume, run many keywords and schedule the Actor with onlyNewPosts: true - each run adds the new posts, and you never pay twice for the same post.
  • Language detection uses the ELD n-gram detector on the post text (links, mentions, hashtags and emoji removed). Real sentences are detected reliably; one-word posts are marked languageReliable: false. Closely related languages (Malay / Indonesian) can be confused.
  • The date filter works on the exact publish time of each post, but only within the visible window: it does not find older posts that Threads does not show.

Bot protection is never bypassed

One plain page request per keyword, at a pace of one every 2 seconds, identified as this Actor. No login, no cookies, no proxies, no browser disguise. If Threads refuses (HTTP 403/429, a login or challenge page), the run stops with a clear message; posts written before stay in the dataset, and nothing is retried.

How much does it cost?

Pay per event:

  • post - $0.003 per post written (= $3 per 1,000 kept posts)
  • query - $0.001 per keyword searched that returned posts

Posts removed by a filter, posts already delivered in an earlier run, duplicates, keywords without results and blocked or failed searches are never charged. Example: 50 keywords with strict filters that keep 5 posts each = 50 x $0.001 + 250 x $0.003 = $0.80. Set "Max cost per run" in the run options to cap any run.

FAQ

Why do I get fewer posts than I asked for? Threads shows only about 15-20 posts per keyword to a visitor who is not logged in, and your filters remove what does not match. The summary shows exactly what each filter removed.

Can I get "Recent" posts? Not logged out. Schedule the Actor with onlyNewPosts instead - the rotating window plus the memory collect fresh posts over time.

Is it legal? It reads only what Threads shows publicly to any visitor. You are responsible for how you use personal data in the results (GDPR and similar laws).

Does it need my Threads or Instagram account? No. It never logs in and never uses cookies.