Threads Scraper avatar

Threads Scraper

Pricing

Pay per event

Go to Apify Store
Threads Scraper

Threads Scraper

Scrape Meta Threads profiles, posts, and search results. No login needed. Extract post text, likes, replies, reposts, media URLs, and user profile data from any public account.

Pricing

Pay per event

Rating

5.0

(1)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

55

Total users

21

Monthly active users

2 days ago

Last modified

Share

Scrape Meta Threads profiles, posts, and search results. No login needed. Extract post text, engagement metrics (likes, replies, reposts, quotes), media URLs, and user profile data from any public Threads account.

What does Threads Scraper do?

This actor scrapes Meta's Threads platform (threads.com) in three modes:

  • Profile mode — extract user profile data: username, full name, bio, follower count, verified status, profile picture
  • Posts mode — extract posts from any public user: text content, like/reply/repost/quote counts, media (photos, videos, carousels), hashtags, mentions, timestamps
  • Search mode — search Threads by keyword and extract matching posts with full engagement data

Why use this scraper instead of others?

  • No login required — works on public profiles and search without any Threads or Instagram account.
  • Full engagement data — likes, replies, reposts, AND quote counts. Most competitors miss quote counts.
  • Media extraction — photo URLs, video URLs with dimensions, carousel support, audio detection.
  • Structured output — hashtags, mentions, and URLs parsed from post text into separate arrays. Ready for analysis.
  • Search support — keyword search across all of Threads, not just individual profiles.
  • Profile + posts combined — get user metadata alongside their posts in a single run.
  • Pay per result — transparent per-post and per-profile pricing. No monthly subscription.

Who is Threads Scraper for?

  • Marketing and brand teams — monitor brand mentions, track competitor activity, and analyze content engagement trends on Threads
  • Agencies and PR teams — research influencers, track campaign performance, and monitor public statements from key figures
  • Academic researchers — collect public social media data for sentiment analysis, NLP studies, and platform migration research
  • Data engineers — build automated pipelines that feed Threads data into dashboards, data warehouses, or AI/ML workflows

Use cases

Marketing and brand teams

  • Social listening — monitor brand mentions and competitor activity on Threads
  • Trend analysis — search for trending topics and measure conversation volume
  • Content research — study what types of posts get the most engagement in your niche

Agencies and PR teams

  • Influencer research — analyze engagement rates, posting frequency, and content themes
  • Campaign tracking — monitor influencer posts and engagement during sponsored campaigns
  • Journalist tools — track public statements from politicians, celebrities, and executives

Research and data teams

  • Academic research — collect public social media data for sentiment analysis and NLP studies
  • Platform migration analysis — track how creators and audiences are growing on Threads vs other platforms

How to scrape Threads

  1. Go to the Threads Scraper page on Apify Store.
  2. Click Try for free.
  3. Choose a scraping mode: profile, posts, or search.
  4. Enter usernames (for profile/posts mode) or search keywords (for search mode).
  5. Set the maximum number of posts to extract.
  6. Click Start and wait for the results.
  7. Download data as JSON, CSV, Excel, or connect via API.

Input

FieldTypeDescriptionDefault
modestringScraping mode: profile, posts, or searchposts
usernamesstring[]Threads usernames to scrape (without @)["zuck"]
searchQueriesstring[]Keywords to search for (search mode only)["artificial intelligence"]
maxPostsintegerMaximum posts per username or search query (1–200)20
includeProfilebooleanInclude profile metadata in posts modetrue

Input example

{
"mode": "posts",
"usernames": ["zuck", "mosseri"],
"maxPosts": 20,
"includeProfile": true
}

Output

Profile output

{
"type": "profile",
"username": "zuck",
"fullName": "Mark Zuckerberg",
"biography": "I build stuff",
"followerCount": 5439932,
"isVerified": true,
"profilePicUrl": "https://scontent.cdninstagram.com/...",
"url": "https://www.threads.com/@zuck",
"userId": "314216",
"scrapedAt": "2026-03-05T22:33:31.392Z"
}

Post output

{
"type": "post",
"postId": "3779672204356238698",
"code": "DR0F9gkEj1q",
"username": "zuck",
"fullName": "Mark Zuckerberg",
"isVerified": true,
"text": "Inspired by all of you who started \"dear threads algo\" requests...",
"likeCount": 4969,
"replyCount": 1034,
"repostCount": 372,
"quoteCount": 277,
"mediaType": "text",
"media": [],
"hashtags": [],
"mentions": [],
"urls": [],
"isReply": false,
"isRepost": false,
"repostedFrom": null,
"timestamp": 1764792059,
"date": "2025-12-03T20:00:59.000Z",
"url": "https://www.threads.com/t/DR0F9gkEj1q",
"scrapedAt": "2026-03-05T22:36:51.325Z"
}

How much does it cost to scrape Threads?

This actor uses pay-per-event pricing:

EventCostDescription
Start$0.01One-time charge per run
Profile$0.005Per profile scraped
Post$0.003Per post extracted

A typical run scraping 20 posts from one user costs approximately $0.075 ($0.01 start + $0.005 profile + 20 × $0.003 posts).

Using the Threads Scraper API

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('automation-lab/threads-scraper').call({
mode: 'posts',
usernames: ['zuck'],
maxPosts: 10,
includeProfile: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("automation-lab/threads-scraper").call(run_input={
"mode": "posts",
"usernames": ["zuck"],
"maxPosts": 10,
"includeProfile": True,
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)

cURL

curl "https://api.apify.com/v2/acts/automation-lab~threads-scraper/runs" \
-X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{"mode":"posts","usernames":["zuck"],"maxPosts":10}'

Integrations

Connect Threads Scraper with your existing tools using Apify integrations:

  • Google Sheets — export posts and profiles directly to spreadsheets for tracking engagement trends over time
  • Slack / Discord — get notifications when new posts match your search queries or when specific accounts post
  • Zapier / Make — trigger workflows based on scraped data, e.g., log competitor posts to Notion or send weekly engagement reports
  • Webhooks — send results to your own API endpoint for custom processing
  • Data warehouses — pipe data to BigQuery, Snowflake, or PostgreSQL for large-scale analysis
  • Scheduled runs — set up daily or weekly scrapes to monitor Threads accounts over time
  • AI/LLM pipelines — feed scraped posts into sentiment analysis or content generation workflows

Tips and best practices

  • Start small — test with maxPosts: 5 before running large scrapes to verify output format.
  • Profile mode is fastest — if you only need follower counts and bios, use profile mode (no browser needed).
  • Search has limited results — Threads search returns a limited number of results per query. For comprehensive data, combine search with posts mode on discovered users.
  • Rate limiting — the scraper automatically handles rate limits with residential proxies, but very large runs may take longer.
  • Combine modes — first search for your topic, then scrape posts from the most relevant users found.

Use with AI agents via MCP

Threads Scraper is available as a tool for AI assistants that support the Model Context Protocol (MCP). This lets you use natural language to scrape data — just ask your AI assistant and it will configure and run the scraper for you.

Setup for Claude Code

$claude mcp add --transport http apify "https://mcp.apify.com"

Setup for Claude Desktop, Cursor, or VS Code

Add this to your MCP config file:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com"
}
}
}

Your AI assistant will use OAuth to authenticate with your Apify account on first use.

Example prompts

Once connected, try asking your AI assistant:

  • "Get the latest posts from @zuck on Threads"
  • "Scrape Threads posts about 'AI'"

Learn more in the Apify MCP documentation.

FAQ

Does this scraper require a Threads or Instagram login? No. It works entirely without authentication on public profiles and search.

How many posts can I scrape? Up to 200 posts per username or search query. For more, run multiple times with different inputs.

Does it work for private accounts? No. Only public Threads profiles can be scraped.

How fresh is the data? Data is scraped in real-time. You get the latest available posts and profile data.

Why does the actor use a browser? Threads loads post data dynamically via JavaScript. Posts and search modes use a headless browser to capture this data. Profile mode uses a lightweight API call (no browser needed).

The scraper returns fewer posts than my maxPosts setting — why? Threads may have fewer posts available for the user than your limit. Also, Threads' internal API sometimes returns fewer results per page than expected. For search mode, Threads limits the number of search results returned per query.

I'm getting empty results for a user that exists — how do I fix it? Check that the username is correct (without the @ symbol) and that the account is public. If the account exists but the scraper returns nothing, Threads may be rate-limiting the request. Try again after a few minutes.

How do you scrape Threads without getting blocked?

Threads is owned by Meta, and like Instagram, it uses client-side JavaScript rendering and authenticated API calls to load post data. Standard HTTP scrapers that only fetch HTML get empty pages because the content isn't in the initial response — it's loaded dynamically.

Threads Scraper handles this by using a headless browser for posts and search modes, which fully executes the JavaScript and captures the API responses just like a real browser would. For profile-only data, it uses a lightweight public API call that doesn't require a browser at all.

Additionally:

  • The scraper uses residential proxy rotation, which cycles through real home IP addresses rather than datacenter IPs. Meta's systems are much less likely to rate-limit residential traffic.
  • Request pacing is built in — the scraper doesn't hammer the API at maximum speed.
  • Retries are automatic on rate-limit responses.

You don't need to configure any of this. Just enter usernames or search queries and the scraper handles the rest.

Scraping publicly accessible data from Threads — posts and profiles that are visible to anyone without logging in — is generally considered legal. The landmark US Ninth Circuit ruling in hiQ Labs v. LinkedIn (2022) affirmed that scraping publicly available data from websites does not violate the Computer Fraud and Abuse Act (CFAA).

Threads Scraper does not:

  • Bypass any login walls or access controls
  • Scrape private accounts (only public profiles)
  • Collect personal data beyond what is publicly displayed on threads.com
  • Interfere with Threads' systems or place excessive load on their infrastructure

However, you should be aware that:

  • Meta's Terms of Service restrict automated data collection, so large-scale commercial scraping could put your account at risk
  • GDPR and similar privacy regulations may apply if you're collecting data about EU residents for commercial purposes
  • The legal landscape for web scraping continues to evolve — consult legal counsel for high-stakes use cases

For research, brand monitoring, academic analysis, and competitive intelligence using publicly available data, the risk is generally low.

What data can you extract from Threads profiles and posts?

Threads Scraper returns structured JSON for three data types:

Profile data includes username, full name, biography, follower count, verified status, profile picture URL, and the Threads user ID. Profile mode is the fastest and cheapest — it uses a lightweight API call without a browser.

Post data includes the full post text, engagement counts (likes, replies, reposts, and quotes — most other scrapers miss quote counts), media attachments (photo URLs, video URLs with dimensions, carousel support), hashtags extracted from the post, @mentions, external URLs, timestamps, and whether the post is a reply or repost. If it's a repost, the original author is included.

Search data returns posts matching a keyword query with the same full post structure as posts mode.

The scraper does not extract:

  • Comments/replies to posts (Threads doesn't expose these publicly in the same way)
  • Followers/following lists
  • Stories or other ephemeral content
  • Private account content

How do you track a brand or competitor on Threads over time?

Brand monitoring on Threads is straightforward with scheduled scraping. The approach:

  1. Search mode for brand mentions — Run Threads Scraper in search mode with your brand name, product names, or competitor names as keywords. This pulls recent posts mentioning those terms.
  2. Posts mode for competitor accounts — If you know which Threads accounts your competitors operate, scrape their posts mode to see what they're publishing and how it performs.
  3. Schedule recurring runs — Use Apify Schedules to run daily or weekly. Each run captures the latest posts since the last run.
  4. Push to your analytics stack — Export to Google Sheets for lightweight tracking, or use the Apify API to pipe data into BigQuery, Notion, or a custom dashboard.

For sentiment analysis, feed the scraped text fields from brand mention searches into an LLM or sentiment API to classify posts as positive, negative, or neutral. Track how the ratio shifts week over week.

Cost for weekly brand monitoring of 3 keywords × 50 posts each: approximately $0.46 per week ($0.01 start + 0.005 profile + 150 posts × $0.003).

How does Threads compare to Twitter/X for scraping data?

Both platforms present similar technical challenges — they use JavaScript rendering and have anti-bot protections — but there are meaningful differences from a data collection perspective:

AspectThreadsTwitter/X
Login required to scrapeNo (public profiles)No (public profiles)
API for public dataInternal/privatePublic API (rate-limited, paid tiers)
Engagement metricsLikes, replies, reposts, quotesLikes, retweets, replies, quotes
Search scopeLimited results per queryMore comprehensive with operators
Historical dataLimited to recent postsLimited without premium API
Platform maturityNewer, smaller datasetLarger, more historical data
Growth trajectoryRapid growth since 2023Declining to flat

For many brand monitoring and research use cases, Threads is easier and cheaper to scrape than Twitter/X — no API keys, no rate limit quotas, and the public-facing data is accessible without authentication. Twitter/X's official API now charges hundreds to thousands of dollars per month for research-level access.

Legality

Threads Scraper only accesses publicly available data on Meta's Threads platform. It does not bypass any login walls, CAPTCHAs, or access controls. The data collected is the same as what any visitor can see on threads.com without an account.

Web scraping of publicly available data is generally legal, but you should review Meta's Terms of Service and applicable laws in your jurisdiction. Use the data responsibly and in compliance with privacy regulations like GDPR. You can read more about the legality of web scraping.