Meta Threads Scraper — Posts, Profiles & Engagement
Pricing
from $1.50 / 1,000 results
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
from $1.50 / 1,000 results
Rating
0.0
(0)
Developer
Max Gor
Actor stats
0
Bookmarked
7
Total users
2
Monthly active users
19 days 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