Threads Scraper
Pricing
from $2.30 / 1,000 post results
Threads Scraper
[💰 $2.30 / 1K] Extract public Threads profiles and posts — follower counts, bios, verified status, post text, likes, replies, reposts, media, hashtags and mentions. Paste profile URLs, @handles, or search by keyword. No login needed.
Pricing
from $2.30 / 1,000 post results
Rating
0.0
(0)
Developer
SolidCode
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Pull public profiles and posts from Threads at scale — follower counts, verified status, bios, full engagement metrics, and media in one structured feed. No login, no accounts, no manual scrolling: paste a handle, a profile link, a single post link, or a keyword and get clean JSON back. Built for social-media analysts, brand-monitoring teams, and lead-generation researchers who need public Threads data without managing logins or babysitting a browser.
Why This Scraper?
- Both profiles and posts in a single run — two record types side by side:
profilerows (handle, full name, bio, follower count, verified badge, user ID) andpostrows (text, engagement, media), each tagged with arecordTypeso you can split them downstream. - 20+ fields per post — likes, replies, reposts, quotes, media type, media URLs with width/height, hashtags, mentions, external links, reply/repost flags, repost lineage, Unix timestamp, ISO date, and the canonical post URL.
- Four input modes, auto-detected — paste a
@handle, a bare username, a full profile URL, or an individual post URL, and mix all four in one list. The scraper figures out what each entry is — no mode toggle to configure. - Keyword search built in — type a topic like
artificial intelligenceorworld cupand collect the matching public posts, complete with the same engagement and media fields. - Date-window filtering —
postedAfterandpostedBeforekeep only posts inside the date range you care about, so a profile sweep returns just the period you're analyzing. - Verified-status and follower counts on every profile — flag influential and authentic accounts instantly with the
isVerifiedbadge and exactfollowerCount. - Media broken out per item — photo, video, and carousel posts each return a
mediaarray of{ type, url, width, height }entries, withmediaTypesummarizing the post at a glance. - Hashtag and mention extraction — every post ships clean
hashtags,mentions, andurlsarrays, parsed from the post's own link structure rather than guessed from raw text. - Repost lineage —
isRepostandrepostedFromdistinguish genuine reposts from self-thread replies, so your reach analysis isn't polluted by in-thread chatter.
Use Cases
Brand Monitoring
- Track what verified accounts and large creators are posting about your brand
- Watch engagement on your own Threads posts (likes, replies, reposts, quotes) over time
- Catch keyword mentions of your product or campaign as they surface in public search
Influencer & Creator Research
- Build shortlists by follower count and verified status
- Capture a creator's most recent public posts with full engagement metrics
- Compare media mix (photo vs. video vs. carousel) across candidate creators
Lead Generation
- Collect public profile details — handle, name, bio, follower count — for outreach lists
- Surface accounts posting about a niche topic via keyword search
- Enrich existing contact lists with verified-status and audience-size signals
Trend & Content Analysis
- Mine hashtags and mentions across a topic to map conversation clusters
- Measure which content formats earn the most reposts and replies
- Window posts by date to study a launch, event, or news cycle
Competitive Intelligence
- Benchmark a competitor's posting cadence and engagement against your own
- Track follower-count movement on rival accounts over repeated runs
- See which of a competitor's posts go viral by reposts and quote counts
Getting Started
Scrape one profile
{"startUrls": ["https://www.threads.net/@zuck"]}
Multiple profiles, posts only
{"startUrls": ["@zuck", "mosseri", "https://www.threads.net/@natgeo"],"includeProfile": false,"maxPostsPerProfile": 10}
Keyword search with a date window
{"searchQueries": ["artificial intelligence", "world cup"],"postedAfter": "2025-01-01","postedBefore": "2025-12-31","maxResults": 5}
Input Reference
What to Scrape
| Parameter | Type | Default | Description |
|---|---|---|---|
startUrls | array | ["https://www.threads.net/@zuck"] | Profile links, @handles, plain usernames, or individual post links — mix them freely. A profile or handle returns that profile plus its public posts; a post link returns just that post. |
searchQueries | array | [] | Keywords or phrases to find matching public posts, e.g. world cup. Each keyword returns the public posts available without logging in. |
Profiles & Posts
| Parameter | Type | Default | Description |
|---|---|---|---|
includeProfile | boolean | true | Also return the profile row (full name, bio, follower count, verified status) for each handle. Turn off if you only want posts. |
includePosts | boolean | true | Collect each profile's public posts (text, likes, replies, reposts, media). Turn off for faster, cheaper profile-only runs. |
maxPostsPerProfile | integer | 25 | Maximum public posts per profile, newest first. Set to 0 for all available. |
Filters & Limits
| Parameter | Type | Default | Description |
|---|---|---|---|
postedAfter | string | "" | Keep only posts published on or after this date, e.g. 2025-01-01. Blank means no lower limit. |
postedBefore | string | "" | Keep only posts published on or before this date, e.g. 2025-12-31. Blank means no upper limit. |
maxResults | integer | 50 | Maximum number of profiles and search keywords to process across the whole run. Set to 0 for no limit. |
Output
The dataset contains two record types. Use the recordType field to separate them, or open the Profiles and Posts views in the dataset tab.
Profile record
{"recordType": "profile","userId": "314216","username": "zuck","fullName": "Mark Zuckerberg","biography": "Building the future of human connection.","followerCount": 3850000,"isVerified": true,"profilePicUrl": "https://instagram.fxxx.fbcdn.net/v/zuck.jpg","url": "https://www.threads.com/@zuck","scrapedAt": "2026-06-28T14:02:11.482000+00:00"}
| Field | Type | Description |
|---|---|---|
recordType | string | Always "profile". |
userId | string | Numeric Threads user ID. |
username | string | Handle without the @. |
fullName | string | Display name. |
biography | string | Profile bio text. |
followerCount | integer | Number of followers. |
isVerified | boolean | Whether the account carries a verified badge. |
profilePicUrl | string | Profile picture URL (highest available resolution). |
url | string | Canonical profile URL. |
scrapedAt | string | ISO timestamp of capture. |
Post record
{"recordType": "post","postId": "3141592653589793","code": "Cxyz123AbCd","username": "zuck","fullName": "Mark Zuckerberg","isVerified": true,"text": "Excited to share what we've been building. #AI","likeCount": 48210,"replyCount": 1320,"repostCount": 905,"quoteCount": 211,"mediaType": "photo","media": [{ "type": "photo", "url": "https://.../image.jpg", "width": 1080, "height": 1350 }],"hashtags": ["AI"],"mentions": ["mosseri"],"urls": ["https://about.fb.com/news"],"isReply": false,"isRepost": false,"repostedFrom": null,"timestamp": 1751120400,"date": "2026-06-28T13:00:00+00:00","url": "https://www.threads.com/@zuck/post/Cxyz123AbCd","scrapedAt": "2026-06-28T14:02:11.482000+00:00"}
Core fields
| Field | Type | Description |
|---|---|---|
recordType | string | Always "post". |
postId | string | Internal post ID. |
code | string | Shortcode in the post URL. |
username | string | Author handle. |
fullName | string | Author display name. |
isVerified | boolean | Whether the author is verified. |
text | string | Post caption / body text. |
url | string | Canonical post URL. |
timestamp | integer | Publish time as Unix epoch seconds. |
date | string | Publish time as an ISO date. |
scrapedAt | string | ISO timestamp of capture. |
Engagement & thread
| Field | Type | Description |
|---|---|---|
likeCount | integer | Number of likes. |
replyCount | integer | Number of replies. |
repostCount | integer | Number of reposts. |
quoteCount | integer | Number of quote posts. |
isReply | boolean | Whether the post is a reply. |
isRepost | boolean | Whether the post is a genuine repost. |
repostedFrom | string | Original author handle when the post is a repost, otherwise null. |
Media & entities
| Field | Type | Description |
|---|---|---|
mediaType | string | text, photo, video, or carousel. |
media | array | Media items, each { type, url, width, height }. |
hashtags | array | Hashtags found in the post. |
mentions | array | @mentions found in the post. |
urls | array | External links found in the post. |
Tips for Best Results
- Mix entry types in one list.
startUrlshappily accepts handles, profile links, and post links together — combine a handle sweep with a few specific post links in a single run. - Expect the most recent public posts per profile. Without a login, Threads publishes roughly the latest dozen posts on a profile's public page. The scraper returns those newest posts; set a smaller
maxPostsPerProfileif you only need the top few. - Keyword search returns the current public results. Each search keyword yields the public posts Threads shows for that term — about 20 of the most recent matches per keyword. Use several focused keywords rather than one broad one to widen coverage. Search returns
postrows only (noprofilerows) — add the post authors' handles tostartUrlsif you also want their profile details. - Turn off
includePostsfor fast contact lists. When you only need profile details (name, bio, followers, verified status), disabling posts makes runs faster and cheaper. - Use the date window to isolate a campaign. Set
postedAfterandpostedBeforearound a launch or event to drop everything outside the period you're analyzing. - Filter on
isVerifiedandfollowerCountdownstream to rank creators and prioritize authentic, high-reach accounts for outreach. - Re-run on a schedule to track movement. Follower counts and engagement change over time — repeat runs build a trend line for the accounts and topics you watch.
Pricing
From $2.30 per 1,000 results — one of the most cost-effective ways to collect public Threads data. You're charged per result, with two simple rates: each profile collected costs $4.80 per 1,000 ($0.0048 each), and each post collected costs $2.30 per 1,000 ($0.0023 each), plus a small fixed $0.01 start fee per run. There are no compute or time-based charges — you pay per result, plus that one-time per-run start fee.
| Run | Profiles cost | Posts cost | Start fee | Total |
|---|---|---|---|---|
| 10 profiles + 100 posts | $0.05 | $0.23 | $0.01 | $0.29 |
| 50 profiles + 500 posts | $0.24 | $1.15 | $0.01 | $1.40 |
| 100 profiles + 1,000 posts | $0.48 | $2.30 | $0.01 | $2.79 |
| 500 profiles + 5,000 posts | $2.40 | $11.50 | $0.01 | $13.91 |
Apify's loyalty discount tiers apply automatically on top of these rates — Bronze, Silver, and Gold subscribers pay progressively less, so the more you run, the lower your effective cost per result.
Integrations
Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps:
- Zapier / Make / n8n — Workflow automation
- Google Sheets — Direct spreadsheet export
- Slack / Email — Notifications on new results
- Webhooks — Trigger custom APIs on run completion
- Apify API — Full programmatic access
Legal & Ethical Use
This scraper collects only publicly available Threads data — no login, no private content, no follower lists, and no data behind any access wall. Use it in line with Threads' and Meta's terms of service and all applicable laws, including data-protection regulations such as GDPR and CCPA. Do not use collected personal data for spam, harassment, or any purpose that infringes on individuals' privacy rights. You are responsible for ensuring your use of the data is lawful and ethical.