Threads Scraper: Posts, Profiles & Tags
Pricing
$1.00 / 1,000 posts
Threads Scraper: Posts, Profiles & Tags
Scrape Meta Threads (threads.net) posts, profiles, hashtags & search. No login, no cookies. Get text, media, likes, replies & reposts. Pay only per post delivered. Works in Claude, ChatGPT & any MCP agent.
Pricing
$1.00 / 1,000 posts
Rating
0.0
(0)
Developer
The Mine Works
Maintained by CommunityActor stats
0
Bookmarked
37
Total users
20
Monthly active users
a day ago
Last modified
Categories
Share
π§΅ Threads Scraper: Posts, Profiles, Hashtags & Search (No Login)
Overview
Threads Scraper turns any public Meta Threads target (threads.net) into structured JSON: post text, media URLs, likes, replies, reposts, quote counts, author info, and full timestamps. Feed it a profile handle, a search keyword, a hashtag, or a direct post URL. It works without an account, without cookies, and without a paid API. You pay only for posts actually delivered.
Meta never shipped a public Threads API, so the usual options are manual copy-paste or brittle browser hacks. This actor reads the same public data any logged-out visitor sees on threads.net, then flattens the nested response into one clean record per post.
Reliability posture: blocked, empty, or failed runs are never charged. The charge event fires only after a post record has actually been pushed to your dataset.
β No login | β No cookies | β Pay per post delivered | β First 10 posts free | β MCP-ready for AI agents
Features
Four input modes in one actor: profile posts, single post detail, keyword search, and hashtag feed.
Full engagement counts: likes, replies, reposts, and quote counts on every post.
Media captured: image and video URLs, media type, and a has-media flag for filtering.
Include or exclude replies and reposts with a single toggle, plus is_reply / is_repost flags in the output.
Search or hashtag modes support both recent and top feeds, so you can watch a trend build or pull the highest-engagement posts.
How it works
The actor calls Threads' public GraphQL surface as an unauthenticated visitor. For search and hashtag modes it fans out across recency windows to exceed the single-feed cap. For profile mode it walks the user's post timeline; for post mode it fetches the post detail plus quoted or parent context. No account, no cookies, no anti-bot fragility.
For each post it flattens Threads' deeply nested response into one analysis-ready record. Reply and repost posts are filtered out by default; toggle the input to include them.
π§Ύ Input configuration
{"mode": "hashtag","hashtag": "ai","maxPosts": 25,"resultType": "top","includeReplies": false,"includeReposts": false}
π€ Output format
{"post_id": "3937491905269768921","code": "DakyAavlKLZ","url": "https://www.threads.net/@zuck/post/DakyAavlKLZ","username": "zuck","user_full_name": "Mark Zuckerberg","user_pic_url": "https://scontent-iad6-1.cdninstagram.com/v/t51.82787-19/550174606_17925811725103224_8363667901743352243_n.jpg...","user_verified": true,"text": "Today we're releasing Muse Spark 1.1 -- a strong agentic and coding model at a very low price. It's available through our new Meta Model API and in Meta AI.","posted_at": "2026-07-09T14:00:34.000Z","posted_at_human": "Thu, 09 Jul 2026 14:00:34 GMT","like_count": 2766,"reply_count": 617,"repost_count": 189,"quote_count": 62,"has_media": false,"media_urls": [],"media_type": "text","is_reply": false,"is_repost": false,"hashtags": [],"mentions": [],"urls": [],"scraped_at": "2026-07-15T04:18:09.233Z"}
This record was captured live from a real public Threads post by @zuck on 2026-07-15.
Every post record contains these fields:
| Field | Description |
|---|---|
π post_id | Numeric Threads post ID |
π‘ code | Post shortcode used in the URL |
π url | Canonical threads.net post URL |
π€ username | Author username without the @ |
π·οΈ user_full_name | Author display name |
β
user_verified | True if the author is verified |
π· user_pic_url | Author profile picture URL |
π text | Full post text |
π posted_at | ISO timestamp of publication |
π posted_at_human | Human-readable publication timestamp |
β€οΈ like_count | Number of likes |
π¬ reply_count | Number of replies |
π repost_count | Number of reposts |
π¨οΈ quote_count | Number of quote posts |
πΌοΈ media_type | image, video, carousel, or null |
π has_media | True when media is attached |
ποΈ media_urls[] | Array of media file URLs |
#οΈβ£ hashtags[] | Hashtags extracted from the text |
@ mentions[] | Mentions extracted from the text |
π urls[] | Plain URLs extracted from the text |
β©οΈ is_reply | True if this post is a reply |
π is_repost | True if this post is a repost |
π§΅ parent_post_id | Parent post ID for replies |
𧬠original_post_id | Original post ID for reposts |
π scraped_at | ISO timestamp of when the record was captured |
πΌ Common use cases
Brand and topic monitoring Search Threads for your brand name or a keyword and capture every public post that mentions it. Flag spikes in conversation volume before they turn into a PR moment.
Trend and hashtag tracking Pull the recent or top feed for any tag to see what is gaining traction. Compare hashtag velocity across days to spot early breakouts.
Competitor and creator watch Snapshot a rival account's latest posts with full engagement metrics. Build a rolling dataset of which formats and hooks perform best on Threads.
AI training and sentiment analysis Assemble structured Threads corpora for LLM fine-tuning or sentiment scoring. Feed live posts into a Claude, ChatGPT, or MCP agent for summarization and classification.
π Getting started
- Open the actor and pick a Mode: Profile posts, Post detail, Search query, or Hashtag feed.
- Fill in the matching field: usernames, post URLs, search text, or hashtag (without the #).
- Set Max posts to cap the run size, and optionally toggle Include replies or Include reposts.
- For search and hashtag modes, pick Result type: Recent or Top.
- Click Save & Start, then download as JSON, CSV, or Excel, or pull via API or MCP.
FAQ
Does Threads have an official API? No. Meta has not released a public Threads API, which is why this scraper exists. It reads only the public data a logged-out visitor sees on threads.net.
How am I charged? Pay per post. You are billed only for posts actually delivered. Runs that return zero posts are never charged, and the first 10 posts are free for life on every Apify account.
Can I include replies and reposts?
Yes. Both are excluded by default. Toggle Include replies and Include reposts to add them, then use the is_reply and is_repost flags to sort or filter downstream.
Which input modes are supported? Four: profile (a user's posts), post (one or more post URLs with detail), search (posts matching a keyword), and hashtag (a tag's recent or top feed).
Is it legal to scrape Threads? The actor collects only publicly available posts and never accesses private accounts. Public data can still include personal data under laws like the GDPR, so scrape only what you have a legitimate reason to use.
Use in Claude, ChatGPT & any MCP agent
https://mcp.apify.com/?tools=themineworks/threads-scraper
Or call it programmatically with the Apify client:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('themineworks/threads-scraper').call({mode: 'hashtag',hashtag: 'ai',maxPosts: 25,resultType: 'top',});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
π οΈ Complete your social listening pipeline
Threads is one channel. Add the others in the same suite:
- Instagram Profile Scraper: followers, bio, and stats for any public account. Threads and Instagram share usernames.
- Twitter / X Scraper: tweets by keyword or handle without a paid API key.
- Reddit Scraper: posts, comments, and subreddit search with full comment trees.
Typical flow: search Threads for a brand or keyword, cross-check the same handle on Instagram and X, then pull Reddit for longer-form conversation.
Found a bug or have a feature request? Open an issue on the actor's Apify Console page or reach out through the Apify profile.