Threads Scraper - Scrape threads.net Posts, No Login avatar

Threads Scraper - Scrape threads.net Posts, No Login

Pricing

from $3.50 / 1,000 results

Go to Apify Store
Threads Scraper - Scrape threads.net Posts, No Login

Threads Scraper - Scrape threads.net Posts, No Login

No-login Threads scraper & unofficial API alternative. Export public Threads posts, replies, profiles & engagement to CSV, JSON or Excel.

Pricing

from $3.50 / 1,000 results

Rating

0.0

(0)

Developer

Logiover

Logiover

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 hours ago

Last modified

Share


📌 Overview

The Threads Scraper collects public posts from Meta's Threads (threads.com / threads.net) in three ways:

  • by username — walk a profile's timeline,
  • by post URL — grab a single post plus its visible reply thread,
  • by search term or #tag — pull matching public posts.

Every post comes back with complete metadata: likes, replies, reposts and quotes, plus the text, hashtags, mentions, media (images & videos), language, author and the post date.

ℹ️ Note on volume: Threads shows logged-out visitors a limited timeline window — about ~25 posts per profile and ~20 per search/tag before a login wall. This Actor pushes far past that by expanding reply threads: each post's page also exposes its full visible reply thread (~25-30 posts), so one profile typically yields 300-700 posts, not 25. Volume then scales with the number of seeds — point it at many handles / tags / post URLs and it aggregates everything (deduped by post id). See Volume & limits below.

It needs no login, no cookies and no API key — it reads only public data through residential proxies, so there's zero risk to any Threads or Instagram account.

✅ Add many handles, post URLs or search terms and raise maxResults to assemble an analysis-ready Threads dataset in a single run.


✨ Features

FeatureDescription
🧵3 input modesScrape by username, by post URL, or by keyword / #tag — mix them in one run.
📦Recent public postsCollects each target's most recent public posts (login-free window).
📊Full engagementLikes, replies, reposts & quotes for every post.
🖼️Media includedImage and video URLs, including carousels.
🏷️Rich post dataHashtags, mentions, language, reply flag & paid-partnership flag.
👤Author contextUsername, full name, verified status and avatar per post.
🛡️Login-free & safePublic-page access over residential proxies — no account, no ban risk.
📤Any formatExport to JSON, CSV, Excel, HTML or pull via API & webhooks.

🎯 Who it's for

  • Content & competitor analysis — see which Threads posts and formats win in your niche.
  • Brand & creator monitoring — archive an account's output with engagement over time.
  • Social listening — track keywords and #tags across public Threads conversations.
  • Data science & ML — build labelled post datasets for NLP, sentiment & trend analysis.

🚀 Input

FieldTypeDescription
usernamesarrayThreads @handles or profile URLs. e.g. ["zuck", "@mosseri"]
postUrlsarrayThreads post URLs (post + visible replies).
searchTermsarrayKeywords or #tags to search. e.g. ["ai", "#travel"]
maxResultsintegerMax posts per target (timeline + expanded replies). 0 = unlimited (recommended). Default 0.
includeRepliesbooleanExpand each target post's reply thread (~25-30 posts each). Main volume multiplier. Default true.
expandFromProfilesbooleanExpand reply threads of posts collected from profiles. Default true.
expandFromSearchbooleanExpand reply threads of posts returned by searches/tags. Default false.
maxExpandPerTargetintegerHow many of a target's posts to open for expansion. Default 30.
maxRepliesPerPostintegerCap on replies kept per expanded post. Default 50.
proxyConfigurationobjectResidential proxy (default: Apify Proxy · RESIDENTIAL · US).

Provide at least one of usernames, postUrls, or searchTerms.

Example input

{
"usernames": ["zuck", "https://www.threads.com/@mosseri"],
"searchTerms": ["#ai"],
"maxResults": 100,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "US"
}
}

📤 Output

Each item is one Threads post:

{
"postId": "3906263078447871896",
"code": "DY11ZLWG_eY",
"url": "https://www.threads.com/@zuck/post/DY11ZLWG_eY",
"text": "Today Biohub is sharing a major scientific advance...",
"createdAt": "2026-05-27T...Z",
"lang": "en",
"likeCount": 1948,
"replyCount": 385,
"repostCount": 124,
"quoteCount": 25,
"isReply": false,
"isPaidPartnership": false,
"hashtags": [],
"mentions": [],
"media": [{ "type": "image", "url": "https://...cdninstagram.com/..." }],
"author": {
"id": "63055343223",
"username": "zuck",
"fullName": "Mark Zuckerberg",
"isVerified": true,
"profilePicUrl": "https://..."
},
"fromSource": "zuck",
"scrapedAt": "2026-..."
}
FieldDescription
postId / code / urlPost identifiers and canonical link.
textFull post text.
createdAtISO 8601 timestamp.
likeCount / replyCount / repostCount / quoteCountEngagement metrics.
isReply / isPaidPartnershipPost flags.
hashtags / mentionsParsed from the text.
mediaArray of { type, url } for images and videos.
authorUsername, full name, verified status, avatar.
fromSourceThe username, post URL, or search term this post came from.

📈 Volume & limits (honest numbers)

Threads gates logged-out visitors. Here is what each mode actually returns, measured live:

ModeRaw public windowWith reply expansion
Profile (usernames)~25 posts (1 timeline page, then login wall)~300-700 posts per profile
Post URL (postUrls)post + full visible reply thread (~30 posts)already includes the thread
Search / tag (searchTerms)~20 posts (no guest pagination at all)~20 × (replies) if expandFromSearch on

How the multiplier works: a profile timeline gives ~25 posts before the login wall. The Actor then opens each of those posts' pages, and each page also embeds its reply thread (~25-30 more posts). Aggregating and de-duplicating those turns ~25 into several hundred.

Realistic max per run = (number of seeds) × (per-seed yield). Examples:

  • 10 profiles → roughly 3,000-6,000 posts
  • 50 search terms (no expansion) → ~1,000 posts
  • 20 post URLs → ~600 posts

Every post is deduped by id across the whole run, so overlapping seeds never produce duplicate rows.

The hard cap that remains: the profile timeline itself is capped at ~25 posts for logged-out access — Meta does not paginate a profile or a search deeper without a login, and this Actor uses no login (zero ban risk). So you cannot get a profile's full historical post list. What you can do is multiply rows via reply threads and scale breadth across many seeds. If you need a profile's deep history, no login-free method exists.


💡 Tips

  • Max volume: keep maxResults: 0 and includeReplies: true (defaults).
  • Even more rows: raise maxExpandPerTarget / maxRepliesPerPost.
  • Breadth wins: add many handles, tags and post URLs in one run — they aggregate and dedupe automatically.
  • Mix modes: combine usernames, postUrls and searchTerms in a single run.
  • Proxies: keep the RESIDENTIAL default — Threads blocks datacenter IPs.
  • Search: prefix with # for tags, or use plain keywords for full-text search.

This Actor collects only publicly available Threads data and accesses no private or login-gated content. You are responsible for using the data in line with Threads' / Meta's Terms, applicable laws (including GDPR/CCPA) and privacy regulations. Do not use scraped personal data for spam or unlawful purposes.


❓ FAQ

Is this a Threads API alternative?

Yes. It scrapes public Threads posts without any official Threads / Meta API, developer account or app keys — just give it usernames, post URLs or keywords and run. There is no public Threads data API, so this is the practical way to export post data.

Does it need a Threads or Instagram login?

No. It reads public pages only — no login, no cookies you provide, no account. There's no account involved at all, so there's zero ban risk.

How many posts can I get per profile?

The profile timeline is capped at ~25 posts for logged-out access, but with reply expansion (on by default) the Actor also pulls each post's reply thread, so a single profile usually yields 300-700 posts. Run many profiles/tags in one go to reach several thousand.

Can it scrape replies to a Threads post?

Yes — pass the post URL and it returns the post plus its visible reply thread (~30 posts). This is also what powers the profile volume multiplier.

Which domains work — threads.com or threads.net?

Both. threads.com and threads.net handles and URLs are accepted interchangeably.

Is this an unofficial Threads API for scraping without login?

Yes. There is no public Threads data API, so this Actor works as an unofficial Threads API alternative — it scrapes public posts, profiles and replies without any login, cookies or app keys.

How do I export Threads data to CSV or JSON?

Run the Actor, then download the dataset from the run's Storage tab or pull it via API. Threads posts export to CSV, JSON, Excel or HTML for analysis-ready datasets.

Can it scrape a Threads profile without an API key?

Yes. Point it at any @handle to scrape a public Threads profile's recent posts and engagement — no API key, no developer account and no login required.


📝 Changelog

2026-06-07

  • Docs: added coverage for using the Actor as an unofficial Threads API alternative, exporting Threads data to CSV/JSON, and scraping a Threads profile without an API key.

2026-06-05

  • 🛡️ Reliability fix: results are no longer dropped by strict output validation — runs now complete cleanly even at high volume (thousands of results).
  • ⚡ Stability & performance hardening; fresh rebuild.