Threads Scraper
Pricing
Pay per usage
Threads Scraper
Scrape Threads (by Meta) public data: user profiles, posts/threads, replies, and keyword search. Extracts follower counts, engagement metrics, media URLs, and more.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
abdulrahman alrashid
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Threads Scraper — Profiles, Posts, Replies & Search
Scrape public data from Threads (by Meta) at scale. Extract user profiles, posts, replies to any thread, and search results by keyword or hashtag.
What does Threads Scraper do?
Threads has over 200M+ users and is one of the fastest-growing social platforms. This actor lets you collect structured data from Threads without needing any login or API key.
Features
- User Profiles — username, display name, bio, follower/following counts, verified status, profile picture URL
- User Posts — full text, image/video URLs, like count, reply count, repost count, timestamps
- Thread Replies — all replies to a specific thread with author info and engagement metrics
- Keyword Search — search threads by any keyword or hashtag
- Pagination — configurable result limits (up to 500 per query)
- Anti-detection — user-agent rotation, random delays, browser fingerprint masking
Input
| Field | Type | Description |
|---|---|---|
scrapeType | string | One of: profiles, userPosts, threadReplies, search |
usernames | string[] | Threads usernames (without @). For profiles and userPosts |
threadUrls | string[] | Full thread URLs. For threadReplies |
searchQueries | string[] | Keywords/hashtags to search. For search |
maxResults | integer | Max results per query (default: 25, max: 500) |
includeReplies | boolean | Include user's replies when scraping posts (default: false) |
proxyConfiguration | object | Proxy settings (residential recommended) |
Example input — Scrape profiles
{"scrapeType": "profiles","usernames": ["zuck", "mosseri"],"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Example input — Scrape posts
{"scrapeType": "userPosts","usernames": ["zuck"],"maxResults": 50,"includeReplies": false}
Example input — Search
{"scrapeType": "search","searchQueries": ["artificial intelligence", "#tech"],"maxResults": 100}
Example input — Thread replies
{"scrapeType": "threadReplies","threadUrls": ["https://www.threads.net/@zuck/post/ABC123"],"maxResults": 50}
Output
Profile output
{"type": "profile","userId": "314216","username": "zuck","displayName": "Mark Zuckerberg","bio": "Building the future...","followerCount": 12500000,"followingCount": 450,"isVerified": true,"profilePicUrl": "https://scontent...","url": "https://www.threads.net/@zuck","scrapedAt": "2025-01-15T10:30:00.000Z"}
Post output
{"type": "post","postId": "3456789012345678","code": "CxAbCdEfG","authorUsername": "zuck","authorDisplayName": "Mark Zuckerberg","authorVerified": true,"text": "Excited to share what we've been working on...","likeCount": 45000,"replyCount": 1200,"repostCount": 3400,"quoteCount": 560,"imageUrls": ["https://scontent..."],"videoUrls": [],"timestamp": "2025-01-15T08:00:00.000Z","url": "https://www.threads.net/@zuck/post/CxAbCdEfG","scrapedAt": "2025-01-15T10:30:00.000Z"}
How it works
The scraper uses a dual approach:
- GraphQL API (primary) — Makes direct requests to Threads' internal GraphQL endpoints from a browser context, extracting structured data with full engagement metrics
- Page scraping (fallback) — If the API approach is blocked, falls back to rendering the full page with Playwright and extracting data from the DOM
Both methods run inside a real Chromium browser with anti-detection measures to avoid blocks.
Proxy recommendations
Threads actively blocks datacenter IPs. For reliable results, use residential proxies:
{"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Pricing
This actor uses the Pay-Per-Event pricing model at $0.60 per 1,000 results ($0.0006 per result).
Limitations
- Only public profiles and posts can be scraped (no login required, no private data)
- Threads may rate-limit or temporarily block IPs — residential proxies are strongly recommended
- Engagement metrics (likes, replies, reposts) are available via the GraphQL approach; the page fallback may return null for some metrics
- Search is limited to what Threads exposes publicly on their search page
Changelog
- 1.0.0 — Initial release: profiles, posts, replies, search with GraphQL + page fallback