Threads Scraper - Scrape threads.net Posts, No Login
Pricing
from $3.50 / 1,000 results
Threads Scraper - Scrape threads.net Posts, No Login
No-login Threads scraper & unofficial API alternative. Export public Threads posts, replies, profiles & engagement to CSV, JSON or Excel.
Pricing
from $3.50 / 1,000 results
Rating
0.0
(0)
Developer
Logiover
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 hours ago
Last modified
Categories
Share
📌 Overview
The Threads Scraper collects public posts from Meta's Threads
(threads.com / threads.net) in three ways:
- by username — walk a profile's timeline,
- by post URL — grab a single post plus its visible reply thread,
- by search term or #tag — pull matching public posts.
Every post comes back with complete metadata: likes, replies, reposts and quotes, plus the text, hashtags, mentions, media (images & videos), language, author and the post date.
ℹ️ Note on volume: Threads shows logged-out visitors a limited timeline window — about ~25 posts per profile and ~20 per search/tag before a login wall. This Actor pushes far past that by expanding reply threads: each post's page also exposes its full visible reply thread (~25-30 posts), so one profile typically yields 300-700 posts, not 25. Volume then scales with the number of seeds — point it at many handles / tags / post URLs and it aggregates everything (deduped by post id). See Volume & limits below.
It needs no login, no cookies and no API key — it reads only public data through residential proxies, so there's zero risk to any Threads or Instagram account.
✅ Add many handles, post URLs or search terms and raise
maxResultsto assemble an analysis-ready Threads dataset in a single run.
✨ Features
| Feature | Description | |
|---|---|---|
| 🧵 | 3 input modes | Scrape by username, by post URL, or by keyword / #tag — mix them in one run. |
| 📦 | Recent public posts | Collects each target's most recent public posts (login-free window). |
| 📊 | Full engagement | Likes, replies, reposts & quotes for every post. |
| 🖼️ | Media included | Image and video URLs, including carousels. |
| 🏷️ | Rich post data | Hashtags, mentions, language, reply flag & paid-partnership flag. |
| 👤 | Author context | Username, full name, verified status and avatar per post. |
| 🛡️ | Login-free & safe | Public-page access over residential proxies — no account, no ban risk. |
| 📤 | Any format | Export to JSON, CSV, Excel, HTML or pull via API & webhooks. |
🎯 Who it's for
- Content & competitor analysis — see which Threads posts and formats win in your niche.
- Brand & creator monitoring — archive an account's output with engagement over time.
- Social listening — track keywords and #tags across public Threads conversations.
- Data science & ML — build labelled post datasets for NLP, sentiment & trend analysis.
🚀 Input
| Field | Type | Description |
|---|---|---|
usernames | array | Threads @handles or profile URLs. e.g. ["zuck", "@mosseri"] |
postUrls | array | Threads post URLs (post + visible replies). |
searchTerms | array | Keywords or #tags to search. e.g. ["ai", "#travel"] |
maxResults | integer | Max posts per target (timeline + expanded replies). 0 = unlimited (recommended). Default 0. |
includeReplies | boolean | Expand each target post's reply thread (~25-30 posts each). Main volume multiplier. Default true. |
expandFromProfiles | boolean | Expand reply threads of posts collected from profiles. Default true. |
expandFromSearch | boolean | Expand reply threads of posts returned by searches/tags. Default false. |
maxExpandPerTarget | integer | How many of a target's posts to open for expansion. Default 30. |
maxRepliesPerPost | integer | Cap on replies kept per expanded post. Default 50. |
proxyConfiguration | object | Residential proxy (default: Apify Proxy · RESIDENTIAL · US). |
Provide at least one of usernames, postUrls, or searchTerms.
Example input
{"usernames": ["zuck", "https://www.threads.com/@mosseri"],"searchTerms": ["#ai"],"maxResults": 100,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "US"}}
📤 Output
Each item is one Threads post:
{"postId": "3906263078447871896","code": "DY11ZLWG_eY","url": "https://www.threads.com/@zuck/post/DY11ZLWG_eY","text": "Today Biohub is sharing a major scientific advance...","createdAt": "2026-05-27T...Z","lang": "en","likeCount": 1948,"replyCount": 385,"repostCount": 124,"quoteCount": 25,"isReply": false,"isPaidPartnership": false,"hashtags": [],"mentions": [],"media": [{ "type": "image", "url": "https://...cdninstagram.com/..." }],"author": {"id": "63055343223","username": "zuck","fullName": "Mark Zuckerberg","isVerified": true,"profilePicUrl": "https://..."},"fromSource": "zuck","scrapedAt": "2026-..."}
| Field | Description |
|---|---|
postId / code / url | Post identifiers and canonical link. |
text | Full post text. |
createdAt | ISO 8601 timestamp. |
likeCount / replyCount / repostCount / quoteCount | Engagement metrics. |
isReply / isPaidPartnership | Post flags. |
hashtags / mentions | Parsed from the text. |
media | Array of { type, url } for images and videos. |
author | Username, full name, verified status, avatar. |
fromSource | The username, post URL, or search term this post came from. |
📈 Volume & limits (honest numbers)
Threads gates logged-out visitors. Here is what each mode actually returns, measured live:
| Mode | Raw public window | With reply expansion |
|---|---|---|
Profile (usernames) | ~25 posts (1 timeline page, then login wall) | ~300-700 posts per profile |
Post URL (postUrls) | post + full visible reply thread (~30 posts) | already includes the thread |
Search / tag (searchTerms) | ~20 posts (no guest pagination at all) | ~20 × (replies) if expandFromSearch on |
How the multiplier works: a profile timeline gives ~25 posts before the login wall. The Actor then opens each of those posts' pages, and each page also embeds its reply thread (~25-30 more posts). Aggregating and de-duplicating those turns ~25 into several hundred.
Realistic max per run = (number of seeds) × (per-seed yield). Examples:
- 10 profiles → roughly 3,000-6,000 posts
- 50 search terms (no expansion) → ~1,000 posts
- 20 post URLs → ~600 posts
Every post is deduped by id across the whole run, so overlapping seeds never produce duplicate rows.
The hard cap that remains: the profile timeline itself is capped at ~25 posts for logged-out access — Meta does not paginate a profile or a search deeper without a login, and this Actor uses no login (zero ban risk). So you cannot get a profile's full historical post list. What you can do is multiply rows via reply threads and scale breadth across many seeds. If you need a profile's deep history, no login-free method exists.
💡 Tips
- Max volume: keep
maxResults: 0andincludeReplies: true(defaults). - Even more rows: raise
maxExpandPerTarget/maxRepliesPerPost. - Breadth wins: add many handles, tags and post URLs in one run — they aggregate and dedupe automatically.
- Mix modes: combine
usernames,postUrlsandsearchTermsin a single run. - Proxies: keep the RESIDENTIAL default — Threads blocks datacenter IPs.
- Search: prefix with
#for tags, or use plain keywords for full-text search.
⚖️ Legal & ethical use
This Actor collects only publicly available Threads data and accesses no private or login-gated content. You are responsible for using the data in line with Threads' / Meta's Terms, applicable laws (including GDPR/CCPA) and privacy regulations. Do not use scraped personal data for spam or unlawful purposes.
❓ FAQ
Is this a Threads API alternative?
Yes. It scrapes public Threads posts without any official Threads / Meta API, developer account or app keys — just give it usernames, post URLs or keywords and run. There is no public Threads data API, so this is the practical way to export post data.
Does it need a Threads or Instagram login?
No. It reads public pages only — no login, no cookies you provide, no account. There's no account involved at all, so there's zero ban risk.
How many posts can I get per profile?
The profile timeline is capped at ~25 posts for logged-out access, but with reply expansion (on by default) the Actor also pulls each post's reply thread, so a single profile usually yields 300-700 posts. Run many profiles/tags in one go to reach several thousand.
Can it scrape replies to a Threads post?
Yes — pass the post URL and it returns the post plus its visible reply thread (~30 posts). This is also what powers the profile volume multiplier.
Which domains work — threads.com or threads.net?
Both. threads.com and threads.net handles and URLs are accepted
interchangeably.
Is this an unofficial Threads API for scraping without login?
Yes. There is no public Threads data API, so this Actor works as an unofficial Threads API alternative — it scrapes public posts, profiles and replies without any login, cookies or app keys.
How do I export Threads data to CSV or JSON?
Run the Actor, then download the dataset from the run's Storage tab or pull it via API. Threads posts export to CSV, JSON, Excel or HTML for analysis-ready datasets.
Can it scrape a Threads profile without an API key?
Yes. Point it at any @handle to scrape a public Threads profile's recent posts and engagement — no API key, no developer account and no login required.
📝 Changelog
2026-06-07
- Docs: added coverage for using the Actor as an unofficial Threads API alternative, exporting Threads data to CSV/JSON, and scraping a Threads profile without an API key.
2026-06-05
- 🛡️ Reliability fix: results are no longer dropped by strict output validation — runs now complete cleanly even at high volume (thousands of results).
- ⚡ Stability & performance hardening; fresh rebuild.