Threads Scraper avatar

Threads Scraper

Pricing

Pay per usage

Go to Apify Store
Threads Scraper

Threads Scraper

Scrape Threads (by Meta) public data: user profiles, posts/threads, replies, and keyword search. Extracts follower counts, engagement metrics, media URLs, and more.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

abdulrahman alrashid

abdulrahman alrashid

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Threads Scraper — Profiles, Posts, Replies & Search

Scrape public data from Threads (by Meta) at scale. Extract user profiles, posts, replies to any thread, and search results by keyword or hashtag.

What does Threads Scraper do?

Threads has over 200M+ users and is one of the fastest-growing social platforms. This actor lets you collect structured data from Threads without needing any login or API key.

Features

  • User Profiles — username, display name, bio, follower/following counts, verified status, profile picture URL
  • User Posts — full text, image/video URLs, like count, reply count, repost count, timestamps
  • Thread Replies — all replies to a specific thread with author info and engagement metrics
  • Keyword Search — search threads by any keyword or hashtag
  • Pagination — configurable result limits (up to 500 per query)
  • Anti-detection — user-agent rotation, random delays, browser fingerprint masking

Input

FieldTypeDescription
scrapeTypestringOne of: profiles, userPosts, threadReplies, search
usernamesstring[]Threads usernames (without @). For profiles and userPosts
threadUrlsstring[]Full thread URLs. For threadReplies
searchQueriesstring[]Keywords/hashtags to search. For search
maxResultsintegerMax results per query (default: 25, max: 500)
includeRepliesbooleanInclude user's replies when scraping posts (default: false)
proxyConfigurationobjectProxy settings (residential recommended)

Example input — Scrape profiles

{
"scrapeType": "profiles",
"usernames": ["zuck", "mosseri"],
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Example input — Scrape posts

{
"scrapeType": "userPosts",
"usernames": ["zuck"],
"maxResults": 50,
"includeReplies": false
}
{
"scrapeType": "search",
"searchQueries": ["artificial intelligence", "#tech"],
"maxResults": 100
}

Example input — Thread replies

{
"scrapeType": "threadReplies",
"threadUrls": ["https://www.threads.net/@zuck/post/ABC123"],
"maxResults": 50
}

Output

Profile output

{
"type": "profile",
"userId": "314216",
"username": "zuck",
"displayName": "Mark Zuckerberg",
"bio": "Building the future...",
"followerCount": 12500000,
"followingCount": 450,
"isVerified": true,
"profilePicUrl": "https://scontent...",
"url": "https://www.threads.net/@zuck",
"scrapedAt": "2025-01-15T10:30:00.000Z"
}

Post output

{
"type": "post",
"postId": "3456789012345678",
"code": "CxAbCdEfG",
"authorUsername": "zuck",
"authorDisplayName": "Mark Zuckerberg",
"authorVerified": true,
"text": "Excited to share what we've been working on...",
"likeCount": 45000,
"replyCount": 1200,
"repostCount": 3400,
"quoteCount": 560,
"imageUrls": ["https://scontent..."],
"videoUrls": [],
"timestamp": "2025-01-15T08:00:00.000Z",
"url": "https://www.threads.net/@zuck/post/CxAbCdEfG",
"scrapedAt": "2025-01-15T10:30:00.000Z"
}

How it works

The scraper uses a dual approach:

  1. GraphQL API (primary) — Makes direct requests to Threads' internal GraphQL endpoints from a browser context, extracting structured data with full engagement metrics
  2. Page scraping (fallback) — If the API approach is blocked, falls back to rendering the full page with Playwright and extracting data from the DOM

Both methods run inside a real Chromium browser with anti-detection measures to avoid blocks.

Proxy recommendations

Threads actively blocks datacenter IPs. For reliable results, use residential proxies:

{
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Pricing

This actor uses the Pay-Per-Event pricing model at $0.60 per 1,000 results ($0.0006 per result).

Limitations

  • Only public profiles and posts can be scraped (no login required, no private data)
  • Threads may rate-limit or temporarily block IPs — residential proxies are strongly recommended
  • Engagement metrics (likes, replies, reposts) are available via the GraphQL approach; the page fallback may return null for some metrics
  • Search is limited to what Threads exposes publicly on their search page

Changelog

  • 1.0.0 — Initial release: profiles, posts, replies, search with GraphQL + page fallback