Meta Threads Scraper - Posts, Replies, Profiles & Hashtags
Pricing
from $1.02 / 1,000 posts
Meta Threads Scraper - Posts, Replies, Profiles & Hashtags
[Limited Launch Offer $1.20/1K] Scrape Meta Threads without login: profiles with their latest posts, any post with its replies, keyword search and hashtags. Likes, replies, reposts, quotes, media, links, mentions. Fast, no browser.
Pricing
from $1.02 / 1,000 posts
Rating
0.0
(0)
Developer
Scrape With Me
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Threads Scraper - Posts, Replies, Profiles, Search, Hashtags
Scrape Meta Threads (threads.com) without logging in. Give it profiles, post links, search keywords or hashtags, in any mix, and get one clean dataset:
- Posts with text, date, likes, replies, reposts, quotes and shares, media type, image and video URLs, link previews, links, mentions and hashtags found in the text, and the author (username, name, verified badge, picture).
- Replies to any post, including replies to replies, with who they answer.
- Profiles: followers, bio, bio links, verified badge, profile picture.
No login, no cookies, no browser - fast and cheap.
Why this one
- Four ways in, one format. Profiles, post URLs, keyword search and hashtags in the same run, every row with the same fields (
typetells post, reply and profile apart). - Full reply threads. As many replies as you ask for (
maxRepliesPerPost), page after page, including replies to replies - with each reply's own likes and reply counts. - More than the first screen of a profile. Latest posts are paginated (15 threads per request), not just the handful shown on the page.
- Clear run summary. The
OUTPUTrecord lists every input with rows saved, pages read and the reason for anything that failed.
Input example
{"usernames": ["zuck", "https://www.threads.com/@mosseri"],"postUrls": ["https://www.threads.com/@zuck/post/Dd1MqfcG0aH"],"searchQueries": ["apify"],"hashtags": ["ai"],"maxPostsPerProfile": 50,"maxRepliesPerPost": 100}
Output examples
A post:
{"type": "post","id": "3996155940894885511","code": "Dd1MqfcG0aH","url": "https://www.threads.com/@zuck/post/Dd1MqfcG0aH","text": "We believe superintelligence will create significant new opportunities for all people and businesses...","createdAt": "2026-09-28T12:35:32Z","authorUsername": "zuck","authorIsVerified": true,"likeCount": 2672,"replyCount": 2542,"repostCount": 168,"quoteCount": 156,"isReply": false,"mediaType": "text","images": [],"videos": [],"links": [],"mentions": [],"hashtags": [],"source": "profile","input": "zuck","scrapedAt": "2026-10-07T01:10:12Z"}
A reply has "type": "reply", replyToUsername and parentPostUrl (the post you asked for). A profile row has "type": "profile" with username, fullName, biography, followerCount, isVerified, isPrivate, profilePicUrl and bioLinks.
Run it on a schedule and connect it to your tools
Schedule: in Apify Console open Schedules → Create, pick this actor and your input, and set it to run every Monday at 07:00 (your time zone) for a fresh dataset on a fixed day. Each run returns the full, current result set as a new dataset.
Integrations (Actor → Integrations tab, no code):
- Google Sheets — append every run's rows to a sheet.
- Make, Zapier, n8n — start the actor from a scenario/zap/workflow and use the rows in the next steps.
- Webhook — get a POST to your endpoint when a run succeeds, then download the dataset.
- Slack / email — notify your team when a scheduled run finishes.
AI agents (MCP) — Claude, ChatGPT, Cursor, VS Code or any MCP client can run it as a tool: add the Apify MCP
server https://mcp.apify.com?actors=kalilfagundes.w/threads-scraper (sign in with your Apify account) and ask for the data in
plain language. The agent fills the input from the input schema and reads the dataset back.
API — call it from your code (pip install apify-client / npm i apify-client):
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("kalilfagundes.w/threads-scraper").call(run_input={"usernames": ["@zuck","https://www.threads.com/@mosseri"],"postUrls": ["https://www.threads.com/@zuck/post/Dd1MqfcG0aH"],"searchQueries": ["apify"],"hashtags": ["#ai"],"maxPostsPerProfile": 30,"maxRepliesPerPost": 30,"maxItems": 200})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('kalilfagundes.w/threads-scraper').call({"usernames": ["@zuck","https://www.threads.com/@mosseri"],"postUrls": ["https://www.threads.com/@zuck/post/Dd1MqfcG0aH"],"searchQueries": ["apify"],"hashtags": ["#ai"],"maxPostsPerProfile": 30,"maxRepliesPerPost": 30,"maxItems": 200});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Pricing
Pay per event, platform usage included: one post event per post or reply and one profile event per profile row (see the Pricing tab - higher Apify plans get lower prices). Set a maximum cost per run in the run options; the actor stops cleanly when it is reached.
Limits
- Search and hashtags return what Threads shows to logged-out visitors: about 20-25 posts per keyword or tag. Add more keywords to cover more ground.
- Private profiles and deleted posts return no posts; the run summary says so.
- A username that does not exist shows Threads' login page; the run reports it as not found.
Related actors
- Reddit Scraper - Posts, Comments, Subreddits, No API Key
- Google Trends Scraper & API - Trending Now, Related Queries
- Meta Ads Library Scraper - Facebook & Instagram Ads
Feedback
If this actor saves you time, a quick rating on its Store page helps other people find it. Something not working? Open an issue in the Issues tab and it gets fixed fast.