Threads Scraper | Profiles, Posts & Search (HTTP)
Pricing
from $2.00 / 1,000 item scrapeds
Threads Scraper | Profiles, Posts & Search (HTTP)
Scrape public Meta Threads profiles and posts without login. Profile mode (followers, bio, recent posts) and keyword search mode. $0.002/item + $0.02 start.
Pricing
from $2.00 / 1,000 item scrapeds
Rating
0.0
(0)
Developer
Andok
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Threads Scraper | Profiles, Posts & Keyword Search over HTTP
Scrape public Meta Threads (threads.com) data without logging in and without a browser. Get profile stats (followers, thread count, bio, avatar), the full text of public posts, and keyword-based post discovery, all as clean JSON. It is fast, cheap, and designed for social listening, creator research, brand monitoring and AI agents that need Threads context.
Modes
Profile mode takes a list of usernames or profile URLs. For each one it returns a profile item (display name, followers, thread count, bio, avatar) and then up to postsPerProfile recent public post items discovered for that user.
Search mode takes keyword queries. Threads does not offer anonymous search, so posts are discovered through public web search restricted to threads.com, and each discovered post is then fetched directly. This works well for topic and brand monitoring.
You can also pass postUrls[] in either mode to scrape specific posts directly.
Output
Profile item: record_type: "profile", username, display_name, bio, followers, followers_text, threads_count, avatar_url, url.
Post item: record_type: "post", username, display_name, text, image_url, video_url, post_code, posted_at, url, plus source (profile, search or url) and the originating query or source_username.
posted_at is decoded from the post shortcode, which embeds the creation timestamp, so it is accurate to the millisecond without extra requests. Engagement counters (likes, replies) are not exposed on logged-out pages and are therefore not returned.
How it works
Threads serves rich Open Graph metadata to link-preview crawlers. The Actor requests public profile and post pages the same way a link unfurler does and parses the metadata with Cheerio, so no JavaScript rendering, cookies or login are needed. Keyword and per-profile post discovery uses public search results. If Threads answers with its login wall or rate limits the request, you get a free error row with blocked: true instead of a failed run.
Proxy recommendation
Small runs work from a datacenter IP. Meta rate limits aggressively, so for more than a few dozen items use residential proxies in proxyConfiguration and keep delayMs at 500 or higher.
Input example
{"mode": "profile","usernames": ["zuck", "https://www.threads.com/@mosseri"],"postsPerProfile": 5,"maxItems": 20,"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
{ "mode": "search", "queries": ["ai agents", "open source llm"], "maxItems": 30 }
Pricing (pay per event)
| Event | Price |
|---|---|
| Actor start | $0.02 |
| Item scraped (profile or post) | $0.002 |
Example: 100 profiles with 5 posts each is 600 items, which costs 600 x $0.002 + $0.02 = $1.22. Error and blocked rows are free. maxItems and Apify's max-total-charge setting both cap spending, and the run stops cleanly when the limit is hit.
Limitations
- Only public content is available. Private accounts, replies threads and follower lists require login and are not supported.
- Post discovery depends on what public search engines have indexed, so it is a sample of recent posts rather than a complete timeline.
- Meta changes its markup and anti-bot rules without notice. Structured errors tell you when that happens.
- Respect Threads' terms and applicable privacy law when storing personal data.
Run locally
cd apify-threads-scraperecho '{"mode":"profile","usernames":["zuck"],"postsPerProfile":3}' > storage/key_value_stores/default/INPUT.jsonapify run