Threads Posts Scraper: Latest Posts, Likes & Alerts
Pricing
from $1.52 / 1,000 threads post returneds
Threads Posts Scraper: Latest Posts, Likes & Alerts
Threads posts scraper: paste Threads handles to get their latest posts with likes, replies, reposts, media, and follower count. Turn on monitoring to alert Slack, Discord or Telegram when a creator posts new Threads posts. Export Threads posts to Google Sheets or n8n. Without login or cookies.
Pricing
from $1.52 / 1,000 threads post returneds
Rating
0.0
(0)
Developer
Adriana Voss
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Paste Threads handles or profile URLs and get each account's latest posts with likes, replies, reposts, quotes, media, exact timestamps, and follower counts. Set it on a schedule with delta mode to return only new posts since the last run, pushed directly to your Discord, Slack, or Telegram webhook.
Every post is read live from the profile page's own structured data. No login, no account cookies, no browser automation, and no third-party database.
Who it's for
- Social media managers & brand trackers: Track competitor announcements and creator posts the moment they go live.
- Creator agencies & talent managers: Monitor posting frequency, engagement metrics (likes, replies, reposts), and media types across talent rosters.
- Automation & webhook builders: Stream new creator posts directly into Slack channels, Discord communities, or Telegram groups via webhooks.
- Content researchers: Scrape recent posts from any public Threads user without needing an API key or Meta developer account.
Why this one
- Zero-login & cookie-free: Public Threads profile pages carry structured post payloads directly in their HTML. This actor extracts them without requiring your own account or browser sessions.
- Live engagement metrics: Accurate like counts, direct reply counts, repost counts, and quote counts for every returned post.
- Delta monitoring & webhooks: With
onlyNewSinceLastRunenabled, the actor remembers previously seen posts in a named KV store (45-day retention). Only brand-new posts are returned and billed. - Direct alerts: Configure
notifyUrlto post new items to Discord, Slack, Telegram, or custom webhook endpoints automatically. - Fair pay-per-event pricing: You only pay for returned posts ($0.002 per post on Free, less on paid plans). Non-existent handles and monitoring runs with zero new posts are never charged.
What you get
Every output row represents one post and contains:
| Field | Type | Description |
|---|---|---|
query | text | The handle or URL you submitted |
found | boolean | true if the handle was found and posts retrieved |
status | text | OK or error code (NOT_FOUND, BLOCKED, BAD_FORMAT) |
handle | text | Threads handle of the post author |
postCode | text | Unique post shortcode / ID |
postUrl | link | Direct link to the post on Threads |
text | text | Full caption or text content |
postedAt | date | Exact ISO timestamp when the post was created |
likeCount | number | Number of likes |
replyCount | number | Number of direct replies |
repostCount | number | Number of reposts |
quoteCount | number | Number of quotes |
isRepost | boolean | Whether this was a repost |
mediaType | text | Type of media (text, image, video, carousel) |
mediaUrls | array | Direct links to attached media images or video files |
authorFollowerCount | number | Follower count of the author |
isVerified | boolean | Whether the author has a verified badge |
isNew | boolean | Whether the post is new since last run (when monitoring) |
firstSeenAt | date | When this post was first detected |
notifyErrors | array | Any webhook delivery errors |
Example runs
1. Alert to Discord on new creator posts
For social teams tracking executive or creator accounts:
{"handles": ["zuck", "mosseri"],"onlyNewSinceLastRun": true,"notifyUrl": "https://discord.com/api/webhooks/...","notifyFormat": "discord"}
The one field that changes: Replace handles with the creators you want to watch.
2. High-engagement posts filter
For viral content analysis and research:
{"handles": ["nasa", "natgeo"],"minLikes": 1000,"maxPostsPerHandle": 10}
The one field that changes: Adjust minLikes to match your engagement threshold.
3. Creator post archive
For backing up recent posts from a creator:
{"handles": ["zuck"],"maxPostsPerHandle": 10,"includeReposts": true}
The one field that changes: Set includeReposts: true to capture shared posts.
Price
- Threads post returned: $2 per 1,000 posts
Plus a $0.002 start fee per run. Each event above is billed independently, only when it actually returns data — misses (found:false) are never charged.
Limits and boundaries
- ~10 most recent posts per handle per run: This is the logged-out page capacity served by Threads without login.
- Hourly monitoring recommendation: For prolific posters, run the monitor hourly so no posts roll off the 10-post window between runs.
- No keyword search: Threads requires login to search by keyword or tag; this actor is strictly a user posts lookup.
- Replies to posts are not included: Only top-level posts on the profile feed are retrieved.
How to use
- In the Apify Console. Open the actor page and click Start — the
handlesfield is already pre-filled with a working example. Results land in the run's dataset as soon as each item is found. - Via the API. Call it directly with a POST request — no Console needed once you have an API token:
curl "https://api.apify.com/v2/acts/accountable_eel~threads-posts-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-X POST \-H "Content-Type: application/json" \-d '{"handles":["zuck","mosseri"]}'
- On a schedule. Save this actor as an Apify Task with the input you want, then add a Schedule (hourly, daily, weekly) so it runs on its own — no server of your own required.
Input
{"handles": ["zuck","mosseri"]}
One Threads handle or profile URL per line. Accepts handle, @handle, or full profile URL (threads.com/@username or threads.net/@username). Accepted formats: zuck, @mosseri, https://www.threads.com/@zuck, https://www.threads.net/@mosseri.
Sample output
| query | found | status | handle | postCode | postUrl | text | postedAt | likeCount | replyCount | repostCount | quoteCount | isRepost | mediaType | mediaUrls | authorFollowerCount | isVerified | isNew | firstSeenAt | notifyErrors | scrapedAt |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| zuck | true | OK | 1970-01-01T00:00:00.000Z |
Related actors
- Threads Profile Scraper: Followers, Bio & Stats: followers, bio and stats for a profile without the posts.
Use it from Clay, n8n, Make, or an AI agent
This actor runs synchronously over plain HTTP — call it directly from a script, a workflow tool, or an AI agent, no Apify Console needed once you have an API token.
curl "https://api.apify.com/v2/acts/accountable_eel~threads-posts-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-X POST \-H "Content-Type: application/json" \-d '{"handles":["zuck","mosseri"]}'
n8n. Add an HTTP Request node: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~threads-posts-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body Content Type JSON, JSON Body {"handles":["zuck","mosseri"]} (swap in an expression from an earlier node for a real value).
Clay. Add an "HTTP API" column: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~threads-posts-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body {"handles":["{{handle}}"]}, mapping the row's handle into the handles array.
MCP. In Claude, Cursor, or any MCP client with the Apify MCP server, ask for "Threads posts scraper by username" — the agent will find and run this actor.