Meta Threads Scraper - Posts, Replies, Profiles & Hashtags avatar

Meta Threads Scraper - Posts, Replies, Profiles & Hashtags

Pricing

from $1.02 / 1,000 posts

Go to Apify Store
Meta Threads Scraper - Posts, Replies, Profiles & Hashtags

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

Scrape With Me

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

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 (type tells 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 OUTPUT record 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 ApifyClient
client = 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.

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.