Threads User Posts Scraper - Full Post History
Pricing
from $2.55 / 1,000 posts
Threads User Posts Scraper - Full Post History
Returns every public post of a Meta Threads account, back to its first: text, date, likes, replies, reposts, quotes, shares, mentions, links, image and video URLs, pinned and edited flags. Also reads the account's replies and reposts tabs. Paste usernames or profile links. No login, no cookies.
Pricing
from $2.55 / 1,000 posts
Rating
0.0
(0)
Developer
Ben
Maintained by CommunityActor stats
0
Bookmarked
9
Total users
5
Monthly active users
11 days ago
Last modified
Categories
Features
Share
📜 Threads User Posts Scraper - Full Post History
Export everything a Threads account has published, back to its first post: full text, publication time, likes, replies, reposts, quotes, shares, links, mentions, pictures and videos. The same Actor also reads the replies an account wrote and the posts it reposted. No login, cookies or API key. Export to JSON/CSV/Excel, run on a schedule, call via API, or connect to Make, Zapier or n8n.
🔎 What is the Threads User Posts Scraper?
It is an Apify Actor that reads public Threads accounts the way a logged-out visitor's browser does, and keeps going page after page instead of stopping where the profile page asks visitors to log in.
On a test run it saved National Geographic's whole public history, 1,819 posts from July 2023 to the day of the run, in 128 seconds. Smaller accounts take a few seconds.
Choose what to collect:
- Posts: what the accounts published, newest first. Thread continuations by the same author are included.
- Replies the accounts wrote: each reply comes with the link and text of the post it answers.
- Reposts: the original posts the accounts reposted, with the time of the repost.
A date window (postedAfter, postedBefore) limits the export to a period, and reading stops as soon as older posts are reached, so a daily run with yesterday's date is quick and cheap.
What data does it extract?
- Post:
id,code,url,text,posted_at,is_pinned,is_edited,is_reply,reply_to_author - Engagement:
likes,replies,reposts,quotes,shares - Author:
username,full_name,author_id,is_verified - Text attachment:
attachment_text, the long text Threads lets authors attach under a post (a 5,188-character essay on one of Adam Mosseri's posts), which the post'stextdoes not contain - Content:
mentions[],links[](real destinations, not Threads redirect links),link_title,quoted_post_url,image_urls[],video_urls[] - Replies job:
reply_to_url,reply_to_text - Reposts job:
reposted_by,reposted_at
What users of other Threads Actors report, and what this one does
| Reported in the Issues tabs of other Threads Actors | This Actor |
|---|---|
| "Actor consistently fails to scrape most users" | Reads each account through the site's own data calls and moves to a new residential address when Threads slows it down. All 1,819 runs in the 30 days before October 26, 2026 succeeded. |
| "Feature request: collecting an account's reposts" | mode: reposts returns the original posts with reposted_by and reposted_at. |
| "Expose the stable numeric profile/user ID in output" | Every row has author_id. |
| "Text attachment ("text snippet") content is missing from the output" | attachment_text holds it. |
| Missing or misspelled profiles failing the run | Skipped, named in the status message and the SUMMARY record; the run still succeeds. |
⬇️ Input
| Field | Type | What it does |
|---|---|---|
mode | string | posts, replies or reposts |
usernames | array | Usernames, @handles or profile links |
maxResults | integer | Rows per account, newest first. 20 by default, up to 100,000 |
postedAfter | string | Only rows from this UTC date on (YYYY-MM-DD) |
postedBefore | string | Only rows up to this UTC date |
Example input
Every post of two accounts in September 2026:
{"mode": "posts","usernames": ["natgeo", "nasa"],"maxResults": 1000,"postedAfter": "2026-09-01","postedBefore": "2026-09-30"}
⬆️ Output
A real post row (media link shortened):
{"record_type": "post","id": "3867248781788782365","code": "DWrOkcIlR8d","url": "https://www.threads.com/@natgeo/post/DWrOkcIlR8d","username": "natgeo","author_id": "63269174602","full_name": "National Geographic","is_verified": true,"text": "Apollo 8 astronauts captured the iconic Earthrise image, which inspired the global environmental movement. Artemis II astronauts may have the chance to recreate it more than 50 years later. Here's how they might do it: https://on.natgeo.com/eOreaO","posted_at": "2026-04-03T16:00:23+00:00","likes": 867,"replies": 8,"reposts": 54,"quotes": 2,"shares": 5,"is_reply": false,"reply_to_author": null,"is_pinned": false,"is_edited": false,"mentions": [],"links": ["https://on.natgeo.com/eOreaO"],"link_title": null,"quoted_post_url": null,"image_urls": ["https://scontent-iad6-1.cdninstagram.com/v/t51.82787-15/659913135_1795..."],"video_urls": [],"scraped_at": "2026-10-02T20:45:48.418624+00:00"}
A row from the replies job carries the post it answers:
{"record_type": "reply","id": "3999285079710053730","code": "DeAUJdDozVi","url": "https://www.threads.com/@mosseri/post/DeAUJdDozVi","username": "mosseri","author_id": "63482099442","full_name": "Adam Mosseri","is_verified": true,"text": "Because on Instagram we show the profile pic instead of the profile icon when a user has multiple accounts, and native Liquid Glass doesn’t support images, so we needed to recreate the effect without access to the same APIs.","posted_at": "2026-10-02T20:12:34+00:00","likes": 105,"replies": 12,"reposts": 2,"quotes": 0,"shares": 2,"is_reply": true,"reply_to_author": "admirer_7124","is_pinned": false,"is_edited": false,"mentions": [],"links": [],"link_title": null,"quoted_post_url": null,"image_urls": [],"video_urls": [],"reply_to_url": "https://www.threads.com/@admirer_7124/post/DeAPAhmCnSC","reply_to_text": "Why does Liquid Glass look so different between Instagram and Threads when they’re both owned by Meta?\nThe design still feels incomplete and barely refined, as if the developers stopped halfway and called it finished. I really hope they keep improving it.","scraped_at": "2026-10-02T20:40:25.373184+00:00"}
💰 How much does it cost?
You pay per saved post, plus a tiny start fee per run.
| Apify plan | Per 1,000 posts until November 9, 2026 | Per 1,000 posts from November 9, 2026 |
|---|---|---|
| Free | $2.00 | $3.00 |
| Starter | $1.90 | $2.85 |
| Scale | $1.80 | $2.70 |
| Business and above | $1.70 | $2.55 |
The 1,819-post history above costs $3.64 on the Free plan until November 9 and $5.46 from then on. Set Maximum cost per run in the run options and the Actor stops saving at that amount and says so in the status message.
🤖 For AI agents
All inputs are optional, no credential is needed. Copy this input and change the usernames:
{"mode": "posts", "usernames": ["natgeo"], "maxResults": 50, "postedAfter": "2026-10-01"}
Each row is one post; posted_at is UTC, counts are integers, links holds the real destinations. The Actor is also available as a tool through Apify's MCP server.
⚠️ Limits
- Public accounts only. Private accounts are skipped and named in the status message.
- No keyword search: Threads gives a logged-out visitor about 20 search results and no next page.
- Like and reply counts are what Threads shows at the time of the run.
- Image and video links point to Meta's CDN and carry an expiry time set by Meta. Download the files you want to keep.
💡 Use cases
- 📊 Competitor and brand monitoring: a daily run with
postedAfterset to yesterday collects only the new posts of every account you follow. - 🧪 Content analysis: find which formats, topics and posting times get the most likes, replies and reposts.
- 🧠 Datasets for AI and research: complete, dated post histories for fine-tuning, RAG pipelines or academic studies.
- 🗂️ Archiving: keep a copy of an account's public posts with their links and media URLs.
❓ FAQ
Do I need a Threads or Instagram account? No. The Actor never logs in and needs no cookies.
How far back does it go? To the account's first public post. Threads opened in July 2023.
How fast is it? About 15 posts per request, roughly 14 posts per second on a long timeline.
Does maxResults count per account or per run? Per account. Three usernames with maxResults: 100 can save up to 300 rows. To cap the whole run, set Maximum cost per run.
What about pinned posts? A pinned post comes first with is_pinned: true, whatever its age. The date window still applies to it.
What happens with private or misspelled accounts? They are skipped and listed in the status message and the SUMMARY record. The run still succeeds with everything else.
Why do some posts have no text? Posts that are only a picture, a video or a link have an empty text. Their media and links are still in the row.
What if Threads slows the Actor down? The Actor continues from the same page through a new residential address, so a long export does not start over.
Is it legal to scrape Threads posts? The Actor reads only what Threads shows publicly to any visitor and does not log in. Posts contain personal data, so GDPR, CCPA and similar rules apply to how you store and use them, and Meta's terms apply to you as well. If in doubt, ask a lawyer.
Something is missing or broken? Open an issue on the Actor's Issues tab with the run ID. Issues are answered within one business day.
🔗 You might also like
- Threads Scraper - Posts, Profiles & Replies
- Threads Profile Scraper
- Threads Replies Scraper
- Reddit Scraper
- YouTube Transcript Scraper
Keywords: threads posts scraper, threads user posts, threads post history, scrape threads posts, meta threads scraper, threads.net scraper, threads timeline export, threads posts to csv, threads api alternative, threads without login, threads replies by user, threads reposts, threads engagement data, threads content analysis, threads monitoring, social media dataset