Threads User Posts Scraper API
Pricing
from $1.00 / 1,000 results
Threads User Posts Scraper API
Collect the complete post history from any public Threads account along with engagement metrics (likes, replies, reposts, shares, view counts), media URLs, hashtags, mentions, and full author details. Requires a Threads Session ID.
Pricing
from $1.00 / 1,000 results
Rating
5.0
(1)
Developer

Futurize Rush
Actor stats
0
Bookmarked
1
Total users
0
Monthly active users
2 days ago
Last modified
Categories
Share
Collect posts from any public Threads user profile — including post text, engagement numbers, author details, and media attachments. Process multiple accounts in a single run.
What does Threads User Posts Scraper API do?
This Actor collects posts from Threads user profiles and returns detailed information for each post and account. You can process multiple usernames in a single run.
For each user, the Actor first returns a profile summary row followed by individual post rows.
Profile data you can extract
- Identity — username, full name, biography
- Stats — follower count
- Status — verified badge, private account flag
- Links — profile URL, profile picture (standard and HD), bio links
- Profile tags — community and interest tags (e.g. "AI Threads", "science")
- Podcast — linked podcast name, URL, and platform (e.g. Spotify)
Post data you can extract
- Post content — full text, post URL, hashtags, mentions, embedded links
- Author info — username, profile URL, profile picture, verification status
- Engagement metrics — likes, replies, reposts, shares, quotes, view count
- Media details — media type (text/photo/video/carousel), primary media URL, all media URLs (carousel posts include one URL per slide)
- Metadata — timestamp, position index
How to get your Session ID
This Actor requires a Threads Session ID for authentication. Here's how to get it:
Option 1: Browser Developer Tools
- Open threads.com in your browser and log in
- Press F12 to open Developer Tools
- Go to Application → Cookies →
https://www.threads.com - Find the cookie named
sessionidand copy its value - Paste it into the Session ID field in the Actor input
Option 2: Cookie Editor Extension
You can also use a browser extension like Cookie-Editor to quickly view and copy cookies. Simply install the extension, visit threads.com, and search for the sessionid cookie.
Disclaimer: Cookie-Editor is a third-party extension not affiliated with this Actor. As with any browser extension that accesses cookie data, please review its permissions and use at your own discretion.
Important notes
- Use a secondary account. Automated access may cause Threads to flag your account or temporarily restrict it. We strongly recommend using a secondary account rather than your primary one.
- Session IDs have no guaranteed lifetime. They expire on logout, password change, new device login, or when Threads invalidates them for security reasons — which can happen unpredictably regardless of usage. If you receive authentication errors, obtain a fresh Session ID before retrying.
- Rate limiting. Making too many requests in a short period may trigger rate limits. The Actor includes built-in delays, but very large runs may still be affected.
Input example
{"usernames": ["zuck","instagram"],"sessionId": "your-session-id-here","maxPosts": 0}
| Field | Type | Description |
|---|---|---|
usernames | Array | Threads usernames to scrape (1–50). Accepts @username, username, or full profile URL |
sessionId | String | Your Threads sessionid cookie |
maxPosts | Number | Max posts per user (0 = unlimited, default: 0) |
Output example
Profile row (item_type: "profile"):
{"item_type": "profile","sourceUsername": "zuck","username": "zuck","userId": "314216","fullName": "Mark Zuckerberg","biography": "...","bioUrl": "https://www.meta.com","bioUrls": ["https://www.meta.com"],"profileUrl": "https://www.threads.com/@zuck","profilePicUrl": "https://...","profilePicHdUrl": "https://...","isVerified": true,"fediverseEnabled": true,"profileTags": ["AI Threads", "UFC Threads"],"podcastName": null,"podcastUrl": null,"podcastPlatform": null,"followerCount": 8500000,"followingCount": null,"postCount": null,"isPrivate": false,"scrapedAt": "2026-02-27T12:00:00.000Z"}
Post row (item_type: "post"):
{"item_type": "post","sourceUsername": "zuck","postId": "3798699639419459235","postCode": "DS3sTIYAFaj","postUrl": "https://www.threads.com/@zuck/post/DS3sTIYAFaj","text": "Hello Threads!","hashtags": [],"mentions": [],"urls": [],"username": "zuck","userId": "314216","profileUrl": "https://www.threads.com/@zuck","profilePicUrl": "https://...","isVerified": true,"timestamp": "2026-01-15T10:30:00.000Z","likeCount": 15000,"replyCount": 800,"repostCount": 500,"reshareCount": 120,"quoteCount": 35,"mediaType": "text","mediaUrls": [],"mediaUrl": null,"viewCount": 430000,"index": 1,"scrapedAt": "2026-02-27T12:00:00.000Z"}
Output schema
Each run produces two row types in the same dataset:
| Field | Type | Profile | Post |
|---|---|---|---|
item_type | String | "profile" | "post" |
sourceUsername | String | ✓ | ✓ |
username | String | ✓ | ✓ |
userId | String | ✓ | ✓ |
fullName | String | ✓ | — |
biography | String | ✓ | — |
bioUrl | String | ✓ | — |
bioUrls | Array | ✓ | — |
profileUrl | String | ✓ | ✓ |
profilePicUrl | String | ✓ | ✓ |
profilePicHdUrl | String | ✓ | — |
isVerified | Boolean | ✓ | ✓ |
fediverseEnabled | Boolean | ✓ | — |
profileTags | Array | ✓ | — |
podcastName | String | ✓ | — |
podcastUrl | String | ✓ | — |
podcastPlatform | String | ✓ | — |
followerCount | Integer | ✓ | — |
followingCount | Integer | always null ¹ | — |
postCount | Integer | always null ¹ | — |
isPrivate | Boolean | ✓ | — |
postId | String | — | ✓ |
postCode | String | — | ✓ |
postUrl | String | — | ✓ |
text | String | — | ✓ |
hashtags | Array | — | ✓ |
mentions | Array | — | ✓ |
urls | Array | — | ✓ |
timestamp | String | — | ✓ |
likeCount | Integer | — | ✓ |
replyCount | Integer | — | ✓ |
repostCount | Integer | — | ✓ |
reshareCount | Integer | — | ✓ |
quoteCount | Integer | — | ✓ |
viewCount | Integer | — | ✓ ² |
mediaType | String | — | ✓ |
mediaUrl | String | — | ✓ |
mediaUrls | Array | — | ✓ |
index | Integer | — | ✓ |
scrapedAt | String | ✓ | ✓ |
¹ Threads does not include following count or post count in profile page data — these fields are always null.
² View count may be null for older posts. Threads introduced view counting after launch — posts published before approximately October 2023 do not have view count data in the API.
How it works
- Connects to your Threads account using your Session ID
- Looks up each username and collects their profile information
- Collects all posts — text, images, videos, carousels, and engagement numbers
- Keeps going until all posts are retrieved or your limit is reached
- Saves results as they come in — no need to wait for the full run to finish
Tips for best results
- Refresh your Session ID if you see errors. Session IDs can expire at any time. If authentication fails, obtain a fresh one and retry.
- Use this Actor for on-demand scraping. Because Session IDs expire unpredictably, this Actor works best for manual runs or scheduled workflows where you can monitor for authentication issues.
- Private accounts are automatically detected. The Actor will return the profile row and skip post collection, logging a warning so you know which accounts were skipped.
- Actual results may be fewer than expected for new accounts. Users with very few posts will naturally return fewer results regardless of your limit setting.
Frequently asked questions
Why is a Session ID required?
Threads requires authentication to access user posts. Without a valid session, the Actor cannot retrieve the full post history.
Is it safe to use my Session ID?
Your Session ID is treated as a secret — it is stored securely by Apify and never exposed in logs or output. That said, we strongly recommend using a secondary Threads account rather than your primary one as a precaution.
How many posts can I scrape?
There is no hard limit. Set maxPosts to 0 (the default) to collect all of a user's posts. The Actor automatically keeps fetching posts until the account history is complete.
Can I scrape private accounts?
No. Private accounts are not accessible without following the account, and this Actor does not support authenticated follow relationships. Private accounts will be detected automatically — the Actor will return the profile row with isPrivate: true and skip post collection.
What happens if authentication fails?
The Actor will stop and report an authentication error. Obtain a fresh Session ID and try again. Session IDs can expire at any time — this is a Threads security behaviour, not an Actor bug.
Can I scrape multiple users at once?
Yes. The usernames field accepts up to 50 usernames per run. Each user is processed in sequence, with built-in delays to avoid rate limiting.
Are reposts included?
No. The Actor only returns posts originally authored by the target user. Reposts of other users' content are automatically excluded.
How long does scraping take?
This depends on how many users and posts you collect. As a rough guide: 50 posts typically takes about 1–2 minutes; 500 posts may take 5–10 minutes. Very large runs (1,000+ posts per user) may take longer depending on network conditions and Threads rate limits.
Integrations
Connect Threads User Posts Scraper API with other apps and services using Apify integrations. Export data to Google Sheets, Slack, Zapier, Make, and many more.
Disclaimer
This Actor is intended for learning, research, and personal use. Please use it responsibly and ethically, and ensure your usage complies with Threads' Terms of Service.
Threads may update its platform at any time, which could temporarily affect this Actor's functionality. While we actively maintain compatibility, occasional disruptions are possible.
Using a Session ID involves providing authentication credentials to the Actor. We strongly recommend using a secondary account, as automated access may result in account restrictions or temporary bans. You are solely responsible for how you use this tool and any consequences that may arise from its use.
Threads user posts scraper, Threads profile scraper, Threads post extractor, Threads post API, Threads content scraper, Threads engagement metrics, Threads analytics, Threads influencer analysis, Threads data export, social media scraper, Apify actor, Claude Code, Gemini, Codex, OpenClaw