Threads Scraper | Profiles, Posts, Replies, Search | $1 / 1K avatar

Threads Scraper | Profiles, Posts, Replies, Search | $1 / 1K

Pricing

from $0.70 / 1,000 post or reply scrapeds

Go to Apify Store
Threads Scraper | Profiles, Posts, Replies, Search | $1 / 1K

Threads Scraper | Profiles, Posts, Replies, Search | $1 / 1K

Threads data without a login or API key: profiles (followers, bio, links, verified), recent posts with likes, replies, reposts and quotes, single posts with their replies, and keyword search. $1 per 1,000 posts or replies, $1.50 per 1,000 profiles, $0.001 per run.

Pricing

from $0.70 / 1,000 post or reply scrapeds

Rating

0.0

(0)

Developer

Hriday Rungta

Hriday Rungta

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Security

Limited permissions

Share

Threads Scraper gets Threads data without a login or an API key: public Threads profiles (follower count, bio, bio links, verified badge), each profile's most recent Threads posts with like, reply, repost and quote counts, any single post with its replies, and the posts Threads' own search shows for a keyword. It is a simple Threads API alternative for Meta Threads: paste usernames, post links or keywords, press Start, and download the result as JSON, CSV or Excel. Use it for social listening, influencer vetting, competitor tracking, brand monitoring or to feed AI agents with fresh Threads posts.

  • No login, no cookies, no API key. It reads the same public pages any logged-out visitor sees on threads.com.
  • Profiles, posts, replies and search in one Actor. Mix usernames, post URLs and keywords in one run.
  • Flat, clean rows. One row per profile, post or reply, with a ready-made spreadsheet view.
  • Pay only for results. $1 per 1,000 posts or replies and $1.50 per 1,000 profiles. Missing accounts and failed inputs are free.
  • Apify platform built in: API access, scheduling, webhooks, integrations (Make, n8n, Zapier, Google Sheets), monitoring, and automatic proxy rotation with fresh sessions on retries.

What data can you extract from Threads?

Row typeFields
Profileusername, full name, user ID, biography, bio links, follower count, verified, private flag, HD profile picture URL, profile URL, topic tags
Post / replypost ID, short code, URL, text, created date, author username / name / verified / picture, like count, reply count, repost count, quote count, share count, media type (text, image, video, carousel), image URLs, video URLs, link preview URL and title, mentions, hashtags, topic tag, language, reply-to username, parent post, position inside a multi-post thread, quote and repost links, pinned flag, paid-partnership flag
Status row (free)the input, why it could not be scraped (not-found, invalid-input, no-results, failed)

The type column tells the rows apart (profile, post, reply, error) and source says where a row came from (profile, post, reply, search).

How to use Threads Scraper

  1. Open the Actor and go to the Input tab.
  2. Add Threads profiles (usernames like zuck or URLs like https://www.threads.com/@zuck), post URLs, search keywords, or any mix.
  3. Set the limits: posts per profile, replies per post, posts per keyword, and the overall row cap.
  4. Click Start. A few profiles take a few seconds.
  5. Download the results from the Output tab (JSON, CSV, Excel, HTML) or fetch them through the Apify API.

Input

FieldWhat it doesDefault
profilesUsernames or profile URLs (threads.net and threads.com both work)["zuck", "nasa"] prefilled
postUrlsPost URLs: returns the post plus its repliesempty
searchQueriesKeywords: returns the posts Threads' search shows logged-outempty
includeProfileDetailsOne profile row per usernametrue
maxPostsPerProfile0 = profile row only, up to 5010
maxRepliesPerPost0 = only the post, up to 50020
maxPostsPerSearchPosts per keyword, up to 50 (Threads shows about 20)20
searchSorttop or recenttop
maxItemsHard cap on billed rows per run1000
proxyConfigurationApify proxy for retries (the free datacenter proxy is enough)Apify proxy

Input example

{
"profiles": ["mosseri", "https://www.threads.net/@natgeo"],
"maxPostsPerProfile": 20,
"postUrls": ["https://www.threads.com/@zuck/post/Dd1MqfcG0aH"],
"maxRepliesPerPost": 50,
"searchQueries": ["marathon training"],
"searchSort": "recent"
}

Output example

Real rows from a run on 2026-11-02 (a profile row and one of its posts):

[
{
"type": "profile",
"source": "profile",
"sourceInput": "mosseri",
"userId": "63482099442",
"username": "mosseri",
"fullName": "Adam Mosseri",
"biography": "Father of three boys, married to an amazing woman, head of Instagram and supporter of Threads.",
"bioLinks": [
"http://mosseri.net/"
],
"followerCount": 1055119,
"isVerified": true,
"isPrivate": false,
"profilePicUrl": "https://scontent-iad3-2.cdninstagram.com/v/t51.82787-19/652081753_17949596661115443_3143547630500927369_n.jpg?stp=dst-jpg_s640x640_tt6&efg=eyJ2ZW5jb2RlX3RhZyI6InByb2ZpbGVfcGljLmRqYW5nby4xMDgwLmMyIn0&_nc_ht=scontent-iad3-2.cdninstagram.com&_nc_cat=103&_nc_oc=Q6cZ2gGoPnWMnrEUFAFXd1sEnQ90MbeDUnHJBovhguGV2ANHsWmnqXb-74dPevstPOdhoAU&_nc_ohc=9il3gULxYX8Q7kNvwFh4fM4&_nc_gid=lGnYiWHOrr8mWeyBwPU_0w&edm=APs17CUBAAAA&ccb=7-5&oh=00_AQTy4ewg6O7TILMNLvue4cTJSjsCd35OF6o2-H9s38e-lQ&oe=6AEE55DE&_nc_sid=10d13b",
"profileUrl": "https://www.threads.com/@mosseri",
"topicTags": [
"Arsenal Threads"
],
"status": "ok",
"error": null,
"scrapedAt": "2026-11-02T10:50:24.915Z"
},
{
"type": "post",
"source": "profile",
"sourceInput": "mosseri",
"postId": "4017446202874265196",
"code": "DfA1glCj_5s",
"url": "https://www.threads.com/@mosseri/post/DfA1glCj_5s",
"text": "I'm getting a lot of inbound about Instagram starting to work on longer-form video. A few things to clarify in case it's helpful:\n\n- This is going to take time to get right, but we're excited and committed\n- Features is not fully launched yet, we're testing and ramping up access slowly\n- We understand the economics matter a ton, and are exploring multiple options to help long-form creators get paid\n\nAs always, we'll communicate about progress as we go, and I'm happy to answer any questions.",
"createdAt": "2026-10-27T21:35:29.000Z",
"username": "mosseri",
"userId": "63482099442",
"userFullName": "Adam Mosseri",
"userIsVerified": true,
"userProfilePicUrl": "https://scontent-iad3-2.cdninstagram.com/v/t51.82787-19/652081753_17949596661115443_3143547630500927369_n.jpg?stp=dst-jpg_s206x206_tt6&_nc_cat=111&ccb=7-5&_nc_sid=30ff31&efg=eyJ2ZW5jb2RlX3RhZyI6InByb2ZpbGVfcGljLnd3dy42NzguQzMifQ%3D%3D&_nc_ohc=gP536brHm7oQ7kNvwFMu3xW&_nc_oc=Adpqc6yaCXZaElsxjzcX-zGE-UytrFWMYCKSx_0vCx327Kuf8h8HzGEClO60W4Wp-Ag&_nc_zt=24&_nc_ht=scontent-iad3-2.cdninstagram.com&_nc_gid=O2nR9JJpb__ZSrj5rQJiQQ&_nc_ss=70289&oh=00_AQTRNU1t79UCpSlpxFUZzKrMEx69MeTJpKEGoPlnddnEiw&oe=6AEE55DE",
"likeCount": 1906,
"replyCount": 636,
"repostCount": 97,
"quoteCount": 33,
"shareCount": 96,
"mediaType": "text",
"imageUrls": [],
"videoUrls": [],
"linkUrl": null,
"linkTitle": null,
"mentions": [],
"hashtags": [],
"textLinks": [],
"topicTag": null,
"language": "en",
"isReply": false,
"replyToUsername": null,
"parentPostCode": null,
"threadPosition": 1,
"isQuote": false,
"quotedPostUrl": null,
"isRepost": false,
"repostedPostUrl": null,
"isPinned": false,
"isPaidPartnership": false,
"status": "ok",
"error": null,
"scrapedAt": "2026-11-02T10:50:25.447Z"
}
]

How much does it cost to scrape Threads?

Pay-per-event pricing: you pay for the rows you get, nothing for failed or missing inputs.

EventFree planBronzeSilverGold, Platinum, Diamond
Post or reply scraped, per 1,000$1.00$0.90$0.80$0.70
Profile scraped, per 1,000$1.50$1.35$1.20$1.05
Actor start, per run$0.001$0.001$0.001$0.001

Worked examples (Free plan prices)

  • 100 profiles with their 10 latest posts each: $0.001 + 100 x $0.0015 + 1,000 x $0.001 = $1.15.
  • One viral post with 200 replies: $0.001 + 201 x $0.001 = $0.20.
  • 50 keywords, 20 posts each (1,000 posts): about $1.00.
  • Profile rows only for 1,000 accounts (maxPostsPerProfile: 0): about $1.50.

Apify's free plan includes $5 of monthly credit, which covers about 5,000 Threads posts or 3,300 profiles a month with this Actor.

Integrations and scheduling

  • Apify API and clients (JavaScript, Python): start runs and read the dataset from your own code.
  • Make, n8n, Zapier: push new posts into a CRM, Slack, Airtable or email.
  • Google Sheets: export the flat spreadsheet view in one click or on a schedule.
  • Webhooks: get a call when a run finishes.
  • Apify Schedules: run daily or hourly to track follower counts or new posts from a list of accounts.
  • MCP for AI agents: Claude, ChatGPT or Cursor can call this Actor through the Apify MCP server to fetch live Threads posts.

FAQ

Why not use the official Threads API?

Meta's official Threads API is built for managing your own account. Reading other accounts needs an approved Meta app, access tokens and app review, and it does not give you an open search across public posts. This Actor needs none of that: it returns the public data any logged-out visitor can see.

Is there a free Threads API for public data?

Not from Meta for other people's accounts. Threads Scraper is the closest thing: pay-per-result, no key, and Apify's free plan credit covers about 5,000 posts a month.

Can I search Threads by keyword?

Yes, with a limit. Threads shows a logged-out visitor about 10 to 20 posts per keyword (top or recent) and no further pages, so that is what this Actor returns. For deep keyword archives you would need a logged-in account, which this Actor never uses.

How many posts can I get from one profile?

Threads shows logged-out visitors roughly the 15 latest threads of a profile. Multi-post threads count every post, so you usually get 15 to 40 posts. Older posts are not available without a login.

How do I get the replies or comments of a Threads post?

Put the post URL in postUrls and set maxRepliesPerPost. The Actor pages through the direct replies (top replies first) up to your limit, up to 500 per post.

Can I track Threads follower counts over time?

Yes. Schedule a run with maxPostsPerProfile: 0 on your list of accounts; every run writes the current follower count with a timestamp, so you can chart growth in Google Sheets or your database.

This Actor only reads public pages that anyone can open without an account, and it never logs in. Public data can still be personal data: if you store or process it, follow the GDPR, CCPA and other laws that apply to you, and respect Threads' terms. If in doubt, ask a lawyer.

What are the alternatives?

Other Threads Actors on Apify Store, such as Threads Profile API Scraper and Meta Threads Scraper. This one combines profiles, posts, replies and search in one run at $1 per 1,000 posts.

Why did an input return a status row instead of data?

not-found means the account or post does not exist or is not public (Threads shows the login page). invalid-input means the line is not a username or Threads URL. no-results means the search returned nothing. failed means the page could not be loaded after several tries with fresh proxy sessions; run it again. Status rows are never charged.

Limits

  • Logged-out view only. About the 15 latest threads per profile, about 20 posts per keyword search, no follower or following lists, no likes lists.
  • Private profiles: their posts are not public, so they are not returned (no private account was available to test the profile row).
  • Replies are direct replies in Threads' default order; nested replies to replies are not followed.
  • Media URLs are signed CDN links that expire after a while: download the files soon if you need them.
  • A run stops early if many inputs in a row return nothing (for example a list of deleted accounts), so a dead list cannot burn your budget.