Threads Keyword Search API - Search & Export Threads Posts
Pricing
from $1.20 / 1,000 post scrapeds
Threads Keyword Search API - Search & Export Threads Posts
Search Threads by keyword or brand name and export every matching post with text, author, likes, replies, reposts and media. A Threads search API with no login and no weekly quota, for social listening and brand monitoring.
Pricing
from $1.20 / 1,000 post scrapeds
Rating
0.0
(0)
Developer
Mayowa Ogedengbe
Maintained by CommunityActor stats
0
Bookmarked
25
Total users
13
Monthly active users
20 minutes ago
Last modified
Categories
Share
Threads Keyword Search Scraper
Search Threads (Meta) by keyword and export every matching public post as structured JSON.
No login. No cookies. No weekly search quota.
Sample output (real run, keyword "anthropic")
| Author | Post | Likes | Replies | Reposts |
|---|---|---|---|---|
| @bodylikeseafoam | In case you need another reason to hate AI, OpenAI just scraped... | 11,305 | 182 | 2,049 |
| @novaramedia | An artificial intelligence researcher has quit Anthropic, accusing... | 287 | 17 | 89 |
| @aditijain.ai | Former OpenAI and Anthropic researcher Jacob Coxon, who publicly... | 10 | 1 | 1 |
Every row also carries the post URL, timestamp, language, media, quoted post and the keyword that found it.
Why this one
| This Actor | Official Threads API | Typical Store alternative | |
|---|---|---|---|
| Keyword searches | Unlimited | About 500 per 7 days | Varies |
| Login or Meta token | None | App review + token | Often none |
| Full reply trees with depth | Yes | Limited | Rarely |
| Price per 1,000 posts | $1.80, no start fee | Free, capped | $2.50 to $20, often plus $0.02 per run |
What it costs: 1,000 posts = $1.80. Monitoring 10 brand keywords at 200 posts each = about $3.60 per run.
The problem this solves
Meta's official Threads API allows roughly 500 keyword searches per rolling seven days. Social listening burns through that in an afternoon. Brand monitoring across a handful of terms burns through it faster.
This Actor reads Threads search the way a logged-out visitor does. There is no weekly cap, nothing to authenticate, and no account pool to keep alive.
What you get
For every keyword you supply, every matching public post with:
-
Full post text, language, and the canonical URL
-
Author handle, display name, verification status and profile picture
-
Likes, replies, reposts, quotes and reshares
-
Images, video and carousels, at the largest available resolution
-
Link previews, and quoted posts resolved inline
-
The keyword that found it, in
searchQuery, so one run can track many terms
Threads offers two orderings, by relevance and by recency. They return overlapping but different sets. Choose Both for the widest coverage.
Input
{"searchQueries": ["your brand", "competitor brand", "category term"],"searchSort": "both","maxPostsPerQuery": 200,"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
Running with no input. If you start a run without setting anything, the Actor returns a small live sample so you can see the output shape immediately. Set your own keywords, profiles or post URLs for a real run.
The same run can optionally take profiles and postUrls as well, if you want profile records or reply trees alongside your keyword results.
Output
{"type": "post","id": "3981852126213720917_63055343223","pk": "3981852126213720917","code": "DdCYWl7GktV","url": "https://www.threads.com/@zuck/post/DdCYWl7GktV","text": "Mostly superintelligence and MMA takes","language": "en","createdAt": "2026-09-08T14:56:24.000Z","likeCount": 2715,"replyCount": 1602,"repostCount": 231,"quoteCount": 142,"isQuotePost": false,"quotedPost": null,"mediaType": "text","media": [],"author": {"username": "zuck","fullName": "Mark Zuckerberg","isVerified": true,"profileUrl": "https://www.threads.com/@zuck"},"authorUsername": "zuck","source": "search","searchQuery": "superintelligence","scrapedAt": "2026-09-10T04:31:00.000Z"}
Three details that matter downstream:
-
authorUsernameis the flat copy ofauthor.username. Spreadsheet and table views cannot read nested paths, so use the flat field for CSV exports and the nestedauthorobject in code. -
pkis a string. Threads primary keys exceed 2^53, so pipelines that read them as JSON numbers silently corrupt the last digits and break de-duplication. This Actor never emits them as numbers. -
Missing counters stay
null, never0. You can tell "no likes" apart from "not published by Threads".
Tracking a keyword over time
Schedule the Actor with your keywords and append every run to the same dataset. Each record carries searchQuery and scrapedAt, so de-duplicating on id gives you a clean time series of when each post first appeared and how the conversation grew.
Pricing
Pay per result. A run that returns nothing costs nothing. Search results are billed as posts scraped.
Limits, stated plainly
Depth. Threads embeds roughly the first page of results in the page it serves, about 25 posts per keyword and ordering. Running both orderings roughly doubles coverage per term. If you need thousands of posts on one term, this version will not get you there; if you need broad coverage across many terms, it will.
Proxies. Threads rate-limits single IP addresses quickly. Residential proxies are strongly recommended beyond a handful of requests.
Public data only. Private accounts and anything behind a login are out of scope by design.
Legal and compliance
This Actor reads only public Threads pages, the same ones any logged-out visitor can open. It does not log in and does not bypass an access control.
Threads posts contain personal data. If you are in the EU or UK, GDPR applies to what you collect and what you do with it, and having a lawful basis is your responsibility as the data controller.
Related Actors
-
Threads Scraper for posts, reply trees, profiles and search in one Actor
-
Threads Profile Scraper for handles, follower counts and profile posts
FAQ
Do I need a Threads or Instagram account?
No. Nothing here authenticates, and there is nowhere to enter credentials.
How many keywords can I track in one run?
As many as you like. Each is fetched separately, and concurrency is configurable.
Why is text empty on a few records?
Those are quote posts where the author added no words of their own. The post they quoted is in quotedPost, with its text and author.
Does this work with threads.net links?
Yes. Threads moved from threads.net to threads.com, and both forms are accepted, as are bare handles and bare post shortcodes. You do not need to rewrite old links.
How is this different from the official Threads API?
Meta's Threads API needs an app, an access token, and it caps keyword search at roughly 500 queries per rolling seven days. This Actor needs none of that and has no weekly quota, because it reads the same public pages a logged-out visitor sees.
Can I use it from Make, Zapier, n8n or a script?
Yes. Every Apify Actor is callable over the REST API and through Apify's integrations, and results come back as JSON, CSV or Excel.
Does it break when Meta ships an update?
Less often than most. Scrapers that call the internal GraphQL API depend on persisted query ids that Meta rotates without notice. This one reads what Threads server-renders into the page and recognises records by shape rather than by a fixed path.
Use it as an API
Run it from your own code and get the results back in one call. Replace YOUR_TOKEN with your Apify API token.
curl -X POST "https://api.apify.com/v2/acts/headply~threads-keyword-search-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"searchQueries": ["openai"], "maxPostsPerQuery": 100}'
from apify_client import ApifyClientclient = ApifyClient("YOUR_TOKEN")run_input = {'searchQueries': ['openai'], 'maxPostsPerQuery': 100}run = client.actor("headply/threads-keyword-search-scraper").call(run_input=run_input)for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
It also works from Make, Zapier, n8n, Google Sheets and as a tool for AI agents through the Apify MCP server.
More data tools from the same developer
- Threads Scraper & API: posts, reply trees, profiles and keyword search from Threads
- Yelp Scraper & API: every business in a city with phones, websites and all reviews
- TikTok & YouTube Transcript API: video to text, even without captions
- Google Trends Scraper & API: hundreds of keywords on one scale, daily history
- Airbnb & Vrbo Scraper: listings, calendars, occupancy and revenue
- Jumia Scraper & API: prices and sellers across 11 African countries