Threads.net Posts Scraper avatar

Threads.net Posts Scraper

Pricing

from $4.00 / 1,000 results

Go to Apify Store
Threads.net Posts Scraper

Threads.net Posts Scraper

Scrape public Threads posts by keyword search, hashtag, or user profile. Returns post text, engagement metrics, media URLs, and author info. No login required.

Pricing

from $4.00 / 1,000 results

Rating

0.0

(0)

Developer

Kyle Pretorius

Kyle Pretorius

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Scrapes public posts from Threads.net by keyword/hashtag search or user profile. No login required.

What it scrapes

  • Search: posts matching a keyword or hashtag (e.g. "AI" or "#startup")
  • Profiles: all recent posts from one or more public Threads accounts
  • Both modes can run in a single actor call

Data returned includes post text, engagement counts (likes, replies, reposts, quotes), media URLs, and author info.

Inputs

FieldTypeDescriptionDefault
searchQuerystringKeyword or hashtag to search (e.g. AI or #startup)AI
profileUsernamesarrayThreads usernames to scrape (e.g. ["zuck", "mosseri"])[]
maxResultsintegerMax posts to return, up to 1000100

At least one of searchQuery or profileUsernames must be provided.

Output fields

FieldTypeDescription
post_idstringUnique post ID
post_urlstringDirect URL to the post
usernamestringAuthor's Threads username
display_namestringAuthor's display name
textstringPost text content
like_countnumberNumber of likes
reply_countnumberNumber of replies
repost_countnumberNumber of reposts
quote_countnumberNumber of quote-posts
timestampstringISO 8601 post creation time
media_urlsarrayImage or video URLs attached to the post
is_replybooleanTrue if this post is a reply to another post
parent_post_idstringPost ID of the parent post (if is_reply is true)

Output example

{
"post_id": "DdCYWl7GktV",
"post_url": "https://www.threads.com/@zuck/post/DdCYWl7GktV",
"username": "zuck",
"display_name": "Mark Zuckerberg",
"text": "Your Muse gets its own private computer in the cloud to do work for you. We've built new technology so the Muse Secure VM keeps your content safe.",
"like_count": 18203,
"reply_count": 941,
"repost_count": 2104,
"quote_count": 388,
"timestamp": "2026-09-08T18:56:24.000Z",
"media_urls": [],
"is_reply": false,
"parent_post_id": null
}

Note: like_count, reply_count, repost_count, and quote_count are populated via API interception when running on Apify platform with residential proxies. display_name is also populated via the API path. Local runs without a proxy fall back to DOM extraction, which produces accurate post_id, post_url, username, text, timestamp, and media_urls, but zeroes for engagement counts.

How it works

Threads.net is a client-side React app -- all post data is delivered via Meta's internal GraphQL API after the page loads. This actor uses a headless Chromium browser (Playwright) to load each target page, intercepts the API responses, and extracts structured post data from them.

On the Apify platform, it runs through residential proxies (RESIDENTIAL group) to avoid IP-based blocks.

Pricing

$1.00 per 1,000 results (pay-per-result). A typical run scraping 100 posts costs $0.10.

Limitations

  • Requires Playwright (browser-based), so cold starts take 10-20 seconds and memory usage is higher than HTML-only actors.
  • Some Threads content (private accounts, age-restricted posts) requires login and cannot be scraped.
  • Meta may add stricter bot detection as the platform matures; runs requiring login will log a warning and skip those pages.
  • Engagement counts (likes, reposts) are only available via API interception; DOM fallback returns 0 for those fields.
  • No historical posts: the actor scrapes what is currently visible on the page/search results.
  • Search results on Threads are ranked by relevance, not chronologically.