Threads Scraper – Profiles, Posts & Replies, No Login avatar

Threads Scraper – Profiles, Posts & Replies, No Login

Pricing

$2.50 / 1,000 profile, post or reply delivereds

Go to Apify Store
Threads Scraper – Profiles, Posts & Replies, No Login

Threads Scraper – Profiles, Posts & Replies, No Login

Scrape Meta Threads profiles, posts and replies without logging in. Followers, bio, post text, likes, replies, reposts, quotes, media URLs, link previews and dates as flat JSON/CSV rows. Handles, profile URLs, post URLs, keywords and tags. Pay only for delivered rows.

Pricing

$2.50 / 1,000 profile, post or reply delivereds

Rating

0.0

(0)

Developer

Ani Björkström

Ani Björkström

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Scrape Meta Threads without logging in: paste handles, profile URLs, post URLs, keywords or #tags and get profiles, posts and replies as flat JSON / CSV rows – follower counts, bio, post text, likes, replies, reposts, quotes, media URLs, link previews and timestamps. No Threads API access, no cookies, no browser, no proxy needed for normal volumes.

Threads has no public read API for third parties, so this Threads scraper reads the same public data any logged-out visitor sees on threads.com and turns it into clean rows for social listening, influencer research, brand monitoring, competitor analysis and AI pipelines. You pay only for delivered rows.

What you get

Every row has a type: profile, post, reply or error.

Profile rows

FieldDescription
userId, username, fullNameAccount identity
bio, externalUrlBiography and the first link in bio
followersFollower count as an integer
isVerified, isPrivateVerification and privacy flags
profilePicUrl, urlHighest-resolution avatar and profile URL

Post and reply rows

FieldDescription
id, code, urlPost id, short code and canonical URL
username, userId, authorName, authorIsVerifiedAuthor
textFull post text
likes, replies, reposts, quotes, resharesEngagement counters
postedAtISO 8601 UTC timestamp
mediaType, images, videostext, image, video or carousel, plus direct media URLs
linkPreviewUrl, linkPreviewTitleAttached link card
quotedPostUrl, repostOfQuote and repost targets
isReply, replyToUsername, parentPostUrlReply context
lang, isEdited, isPaidPartnershipLanguage and flags
source, sourceKeyWhich input (profile, post, search) produced the row
scrapedAtWhen the row was collected

Failed targets produce one error row explaining why (private account, deleted post, unknown handle, throttling) and are never charged.

Input

{
"profiles": ["zuck", "@meta", "https://www.threads.com/@nasa"],
"postUrls": ["https://www.threads.com/@zuck/post/DdZ7sQvkTFn"],
"searchQueries": ["ai agents", "#photography"],
"maxPostsPerProfile": 100,
"includeReplies": true,
"maxRepliesPerPost": 50
}
  • Profiles – handles or profile URLs. Each gives one profile row plus that account's latest posts (newest first) up to Maximum posts per profile. Threads serves 25 per page; the actor pages through the profile's Threads tab for you.
  • Post URLs – individual posts. Each gives the post row and, with Include replies, the replies under it (top replies first, 25 per page, up to Maximum replies per post).
  • Keywords or #tags – the first page of Threads search or tag results, about 15–20 posts per query. Logged-out visitors cannot page further, so treat search as discovery, not an archive.
  • Profile info only – return just the profile rows (fastest way to monitor follower counts of many accounts).
  • Parallel targets – 2 is safe from one IP; Meta throttles bursts. Use the Proxy option (residential) for hundreds of profiles or thousands of replies.

Fill nothing at all and the actor scrapes two demo profiles so you can see the output shape.

How it works

Threads renders its Relay data into the HTML of every public page. The actor requests pages the way a browser navigation does, parses those payloads, and uses the same public GraphQL pagination the web client uses (persisted-query ids are discovered automatically from Meta's JavaScript bundles when they rotate). No login, no cookies from a real account, no Instagram credentials – nothing that can get an account banned.

Use cases

  • Social listening & brand monitoring – track what people post about your brand, product or competitors on Threads and alert your team in Slack.
  • Influencer research – pull follower counts, bio links and recent engagement for a list of creators and rank them by average likes.
  • Competitor content analysis – scrape a competitor's last 200 posts and see which formats (text, image, video, carousel) earn the most replies and reposts.
  • Lead generation – bios and external links of accounts in a niche give agencies and B2B teams a warm outreach list.
  • Trend & market research – hashtag and keyword pages show what is being said right now.
  • AI agents, LLM and RAG pipelines – flat rows with text, timestamps and engagement drop straight into an embedding or summarisation pipeline; the actor is available through Apify's MCP server.
  • Academic research – collect public discourse with clean metadata and reproducible inputs.

Pricing

Pay per delivered row (item event): profile, post and reply rows count, error rows are free. No subscription, no minimum, no actor-start fee. A profile with 100 posts is 101 rows.

Integrations

Python:

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("nourishing_courier/threads-scraper").call(run_input={
"profiles": ["zuck", "nasa"],
"maxPostsPerProfile": 50,
})
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
if row["type"] == "post":
print(row["postedAt"], row["likes"], row["text"][:80])

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('nourishing_courier/threads-scraper').call({
searchQueries: ['#fintech'],
includeReplies: false,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

curl:

curl -X POST "https://api.apify.com/v2/acts/nourishing_courier~threads-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"profiles":["zuck"],"maxPostsPerProfile":10}'

Works with n8n, Make and Zapier through their Apify nodes, exports to Google Sheets, Airtable, CSV, Excel and JSON, and can be scheduled inside Apify for daily monitoring.

Limits and fair use

  • Public accounts and public posts only. Private accounts return an error row.
  • Search and tag results are limited to the first page for logged-out visitors (about 15–20 posts).
  • Meta rate-limits aggressive traffic from a single IP. The actor paces requests, rotates browser signatures and backs off on throttling; for very large runs enable a residential proxy.
  • Meta changes its web client regularly. The parser scans the embedded data by shape rather than one fixed path, and pagination ids are rediscovered automatically, but a redesign can still cause temporary gaps – error rows will say so.
  • You are responsible for complying with Meta's terms and applicable law (including GDPR) in how you use the data. This actor is a research and monitoring tool.

FAQ

Can I scrape Threads without logging in?

Yes. This scraper never logs in and needs no Instagram or Threads account. It only reads what a logged-out visitor can see.

Is there a Threads API I can use instead?

Meta's official Threads API only covers your own account's content and publishing. For competitors, creators or hashtags you need a scraper like this one.

How many posts can I get per profile?

As many as the profile has, up to your maxPostsPerProfile cap (default 25, maximum 5,000). Pagination is automatic, 25 posts per page.

Does it collect replies?

Yes. Turn on Include replies to collect the replies under each post, top replies first, up to maxRepliesPerPost.

Can I search Threads by keyword or hashtag?

Yes, via Keywords or #tags. You get the first page of results (about 15–20 posts) per query, which is what Threads shows logged-out visitors.

Can I export Threads posts to CSV or Google Sheets?

Every run's dataset downloads as CSV, Excel, JSON or XML, and the Apify Google Sheets integration pushes it to a spreadsheet automatically.

Does it work with n8n, Make or Zapier?

Yes. All three have Apify integrations: start the run, wait for it to finish, read the dataset.

Scraping publicly available data is generally lawful, but you are responsible for how you use it and for complying with Meta's terms and privacy law in your jurisdiction.

What happens if a handle does not exist?

You get one error row for that target and the rest of the run continues. Error rows are not charged.