Threads Scraper - Posts, Profiles & Search
Pricing
from $1.56 / 1,000 threads posts
Threads Scraper - Posts, Profiles & Search
[$3.00 / 1K] Scrape public Meta Threads posts, profiles, keyword search results, engagement metrics, media, hashtags, mentions, and timestamps without a Threads login.
Pricing
from $1.56 / 1,000 threads posts
Rating
0.0
(0)
Developer
WebData Labs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Extract public Meta Threads posts, profiles, and keyword search results without a Threads login. Get clean structured rows for content monitoring, creator research, PR analysis, and data pipelines.
Use the Actor from Apify Console, schedule recurring runs, download JSON/CSV/Excel, or call it through the Apify API and MCP.
โ What you get
- Public profile metadata with exact follower counts when Threads exposes them
- Public posts with full text, publication timestamps, and canonical URLs
- Likes, direct replies, reposts, and quote counts
- Images, videos, carousel items, dimensions, and video thumbnails
- Parsed hashtags, mentions, and absolute URLs
- Keyword search results with the source query attached to every row
- Consistent
profileandpostresult types in one dataset
๐ Why use this Threads scraper
Threads returns deeply nested, frequently changing web payloads. This Actor uses a browser to load the public page, then normalizes the structured data into stable fields. A recursive extractor tolerates changes in wrapper paths while keeping the buyer-facing schema consistent.
The result is ready for:
- Brand mention monitoring
- Competitor and executive account tracking
- Creator and influencer discovery
- Campaign and content research
- Academic NLP datasets built from public content
- Scheduled exports to Sheets, data warehouses, or webhooks
๐ What data you get
| Field | Type | Description |
|---|---|---|
type | string | profile or post |
username | string | Threads account username |
fullName | string | Public display name |
followerCount | number | Exact public follower count when available |
text | string | Full public post text |
date | string | ISO 8601 publication time |
likeCount | number | Visible likes |
replyCount | number | Visible direct replies |
repostCount | number | Visible reposts |
quoteCount | number | Visible quote posts |
media | array | Normalized image/video attachments |
hashtags | array | Hashtags parsed from the post text |
mentions | array | Mentioned usernames |
url | string | Canonical Threads profile or post URL |
sourceUsername | string | Input username that produced the row |
searchQuery | string | Input keyword that produced a search row |
scrapedAt | string | ISO 8601 collection time |
๐ฅ Who it's for
- Social media and brand teams monitoring public conversations
- PR agencies tracking spokespeople, journalists, and campaign mentions
- Researchers collecting public Threads data for analysis
- Data teams feeding dashboards, warehouses, and AI workflows
- Developers who need a simple Threads scraper API instead of maintaining browser extraction
โ๏ธ How to scrape Threads
- Open the Actor in Apify Console.
- Choose
Profiles,Profile posts, orKeyword search. - Enter up to 20 usernames/profile URLs or up to 20 search queries.
- Start with
maxPosts: 5to check the output shape cheaply. - Run the Actor and inspect the dataset. Network routing is managed automatically.
- Download results or connect a schedule, webhook, Make, Zapier, or API client.
๐ฅ Input
Profile posts example:
{"mode": "posts","usernames": ["zuck", "mosseri"],"maxPosts": 20,"includeProfile": true,"maxScrolls": 4}
Keyword search example:
{"mode": "search","searchQueries": ["artificial intelligence", "product launch"],"maxPosts": 20,"postedAfter": "2026-08-01T00:00:00Z"}
| Input | Type | Default | Description |
|---|---|---|---|
mode | string | posts | profile, posts, or search |
usernames | string[] | ["zuck"] | Usernames or profile URLs for profile/posts mode |
searchQueries | string[] | ["artificial intelligence"] | Keywords for search mode |
maxPosts | integer | 20 | Maximum post rows per username/query, 1 to 200 |
postedAfter | string | - | Inclusive ISO 8601 lower date bound |
postedBefore | string | - | Exclusive ISO 8601 upper date bound |
includeProfile | boolean | true | Add one profile row in posts mode |
maxScrolls | integer | 4 | Browser scroll attempts, 0 to 30 |
๐ค Output
{"type": "post","postId": "3912345678901234567","code": "ExampleCode1","username": "exampleuser","fullName": "Example Creator","isVerified": true,"text": "A sample public post about a product launch.","likeCount": 420,"replyCount": 35,"repostCount": 18,"quoteCount": 7,"mediaType": "image","media": [{"type": "image","url": "https://example.com/media.jpg","thumbnailUrl": null,"width": 1080,"height": 1350}],"hashtags": ["launch"],"mentions": [],"date": "2025-01-15T12:00:00.000Z","url": "https://www.threads.com/@exampleuser/post/ExampleCode1","sourceUsername": "exampleuser","searchQuery": null,"scrapedAt": "2025-01-15T12:05:00.000Z"}
Download the dataset as JSON, CSV, Excel, XML, RSS, or HTML, or read it through the Dataset API.
๐ต How much does it cost to scrape Threads?
The Actor uses pay-per-result pricing with no separate Actor-start charge:
- Post result: $3.00 per 1,000 on the Free tier
- Profile result: $5.00 per 1,000 on the Free tier
A run with 20 posts and one profile costs about $0.065 in event charges on the Free tier. Higher Apify plans can receive lower per-result prices. Set a maximum charge per run in Apify to enforce your own spending cap.
๐ Run it on the Apify platform
Schedule daily competitor checks, send datasets to Google Sheets, trigger Slack/webhook alerts, or call the Actor from Node.js, Python, cURL, and MCP. Every row includes its input source so multi-seed runs remain easy to split downstream.
โ ๏ธ Limits and caveats
- Threads controls how many results are visible to logged-out visitors.
maxPostsis a ceiling, not a completeness guarantee. - Search results are ranked by Threads and may not be exhaustive or chronological.
- Media CDN URLs can expire. Persist permitted assets promptly if your workflow needs long-term copies.
- Large jobs take longer because browser concurrency and request pacing are intentionally conservative.
- Meta can change its public web payloads without notice. Report a failed public URL in the Issues tab so the extractor can be updated.
- Only collect and use public data in accordance with applicable law, privacy rules, and Meta's terms.
๐งฉ Related Actors
- Reddit Signal Scraper for community monitoring and public discussion signals
- Bluesky Data API for public Bluesky posts and profiles
- Website Change Intelligence API for monitoring competitor pages and announcements
Combine these sources into a broader brand-monitoring pipeline covering social posts, communities, and owned websites.
โ FAQ
Does this Threads scraper require login?
No. It reads only data exposed on public Threads web pages without a Threads or Instagram account.
Can it scrape private accounts?
No. The Actor does not bypass privacy controls or login walls.
Why did I get fewer posts than maxPosts?
Threads may expose only a bounded set of public logged-out results. Date filters can reduce the set further. Try another public username, remove date filters, or rerun later if the site temporarily rate-limited the request.
Is this an official Threads API?
No. It is an independent public-web scraper running on Apify. It is not affiliated with or endorsed by Meta.
Can I monitor accounts automatically?
Yes. Create an Apify Task with your input, schedule it daily or weekly, and deliver each dataset through an integration or webhook. Deduplicate downstream by postId.
๐ ๏ธ Support
Open the Actor's Issues tab and include the run URL, sanitized input, public Threads URL, expected behavior, and actual behavior. Do not include account credentials or private personal data.