Meta Threads Scraper — Posts, Profiles & Engagement
Pricing
Pay per usage
Meta Threads Scraper — Posts, Profiles & Engagement
Scrape Meta Threads without login. 4 modes: user posts, profiles with engagement rate, full threads with replies, user reply history. Hybrid GraphQL + browser engine. Extract text, likes, reposts, quote counts, images, videos, mentions, follower counts. The deepest Threads data tool on Apify.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Max Gor
Actor stats
0
Bookmarked
2
Total users
0
Monthly active users
a day ago
Last modified
Categories
Share
Threads Scraper — Posts, Profiles & Replies | Engagement Rate | No Login
The deepest Meta Threads analytics tool on Apify — no API key, no login, no cookies.
$1.50 per 1,000 results. See pricing.
Why This Scraper?
| Feature | This Actor | Top competitor |
|---|---|---|
| Modes | 4 | 3 |
| Engagement rate | Yes | No |
| Quote count | Yes | Yes |
| Thread replies | Yes | No |
| User replies | Yes | No |
| Login required | No | No |
| Price per 1k | $1.50 | $2.00+ |
4 Scraping Modes
profiles — Profile Data + Engagement Rate
Extract bio, follower/following counts, verified status, and calculated engagement rate based on the last 20 posts.
{"mode": "profiles","profiles": ["zuck", "mosseri"]}
Sample output:
{"username": "mosseri","fullName": "Adam Mosseri","bio": "Father of three boys, head of Instagram and supporter of Threads.","followerCount": 964700,"followingCount": 0,"isVerified": true,"engagementRate": 0.09,"url": "https://www.threads.net/@mosseri"}
posts — User Timeline Posts
Get recent posts with full engagement metrics including quote count.
{"mode": "posts","profiles": ["zuck"],"maxResults": 20}
Sample output:
{"id": "3870872187813562164","url": "https://www.threads.net/@zuck/post/DW4Gb79kQc0","text": "Today we're sharing our new model family, Muse...","username": "zuck","userVerified": true,"publishedAt": "2026-04-08T15:59:05.000Z","likeCount": 2740,"replyCount": 312,"repostCount": 89,"quoteCount": 45,"images": [],"videos": [],"hashtags": [],"mentions": [],"isReply": false}
thread — Full Thread with Replies
Get the original post plus all reply chains — perfect for conversation analysis.
{"mode": "thread","postUrls": ["https://www.threads.net/t/C8H5FiCtESk"]}
replies — User's Replies to Others
See what a user is saying across Threads — all their replies to other people's posts. Great for competitive intelligence and sentiment tracking.
{"mode": "replies","profiles": ["mosseri"],"maxResults": 50}
Output Fields
Posts & Replies
| Field | Type | Description |
|---|---|---|
id | string | Unique post ID |
code | string | Short code (used in URL) |
url | string | Direct link to the post |
text | string | Full post text |
username | string | Author's handle |
userVerified | boolean | Blue checkmark |
publishedAt | string | ISO 8601 timestamp |
likeCount | number | Total likes |
replyCount | number | Total replies |
repostCount | number | Total reposts |
quoteCount | number | Total quote posts |
images | string[] | Image CDN URLs |
videos | string[] | Video CDN URLs |
hashtags | string[] | Extracted #hashtags |
mentions | string[] | Extracted @mentions |
isReply | boolean | Is this a reply? |
Profiles
| Field | Type | Description |
|---|---|---|
username | string | Threads handle |
fullName | string | Display name |
bio | string | Profile bio text |
profilePicUrl | string | Avatar URL |
followerCount | number | Followers |
followingCount | number | Following |
isVerified | boolean | Verified account |
isPrivate | boolean | Private account |
engagementRate | number | Avg engagement / followers (%) |
externalUrl | string | Website link from bio |
How It Works
Input (usernames, post URLs)│▼┌─────────────┐│ GraphQL API │ ← Fast, ~0.005 CU/request│ + CSRF auth │ Automatic token extraction└──────┬──────┘│ If blocked or empty response▼┌─────────────┐│ Playwright │ ← Headless browser fallback│ + intercept │ Captures API responses from page└──────┬──────┘│▼Structured JSON → Dataset
- GraphQL layer: extracts CSRF + LSD tokens, sends authenticated API requests
- Playwright fallback: headless Chromium with response interception
- HTML meta fallback: for profiles — extracts from og:tags when APIs fail
- Anti-detection: Chrome 131+ User-Agents, randomized delays, per-request proxy rotation
Pricing
$1.50 per 1,000 results — pay per event.
| Volume | Cost |
|---|---|
| 100 results | $0.15 |
| 1,000 results | $1.50 |
| 10,000 results | $15.00 |
| 100,000 results | $150.00 |
Quick Start
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("skipper_lume/threads-scraper").call(run_input={"mode": "posts","profiles": ["zuck"],"maxResults": 20,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"@{item['username']}: {item['text'][:80]}... ({item['likeCount']} likes)")
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('skipper_lume/threads-scraper').call({mode: 'profiles',profiles: ['zuck', 'mosseri'],});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach(item => {console.log(`@${item.username}: ${item.followerCount} followers, ${item.engagementRate}% engagement`);});
Use Cases
| Industry | Use Case | Mode |
|---|---|---|
| Marketing | Influencer vetting with engagement rates | profiles |
| PR | Monitor executive responses | replies |
| Sales | Prospect research & enrichment | profiles + posts |
| Agencies | Competitor content analysis | posts |
| Research | Conversation mining | thread |
| Recruiting | Candidate research | profiles + replies |
Integrations
- Google Sheets — auto-export
- Webhooks — trigger on completion
- REST API — programmatic access
- Zapier / Make / n8n — automated pipelines
- Slack / Email — notifications
- AWS S3 / Google Cloud — dataset storage
Tips
- Use residential proxies (RESIDENTIAL group) for best reliability
- Keep
maxResultsat 50–200 for optimal speed - 1 GB memory is enough for most runs
- Schedule recurring runs for continuous monitoring
FAQ
Q: Do I need a Threads account? A: No. Public profiles and posts only. No login, no tokens.
Q: What's engagement rate? A: Average (likes + replies) per post divided by follower count, as a percentage. Calculated from the last 20 posts.
Q: Can I get quote counts?
A: Yes — quoteCount is included in every post. Most competitors don't extract this.
Q: What's the replies mode for? A: It scrapes all replies a user has written to other people's posts. Useful for competitive intelligence — see how executives/influencers interact with others.
Q: Can I scrape private accounts? A: No. Only public profiles and posts.
Changelog
v1.2 (April 2026)
- Added
repliesmode — scrape all replies written by a user - Added
quoteCountto post output - Added
engagementRateto profile output (auto-calculated from last 20 posts) - Now 4 modes: profiles, posts, thread, replies
v1.1 (April 2026)
- CSRF + LSD token authentication for GraphQL
- Response interception in Playwright
- HTML meta tag fallback for profiles
- Chrome 131+ User-Agents, per-request proxy rotation
v1.0 (April 2026)
- Initial release: profiles, posts, thread scraping