Threads Scraper (Meta) - Posts, Replies, Profiles & Search avatar

Threads Scraper (Meta) - Posts, Replies, Profiles & Search

Pricing

from $2.45 / 1,000 results

Go to Apify Store
Threads Scraper (Meta) - Posts, Replies, Profiles & Search

Threads Scraper (Meta) - Posts, Replies, Profiles & Search

Scrape Meta Threads (threads.net) posts by keyword, the latest posts of any profile, and the replies under any post. Get text, likes, replies, reposts, quotes, shares, images, video links and author details. No login or cookies needed. Export to JSON, CSV or Excel.

Pricing

from $2.45 / 1,000 results

Rating

0.0

(0)

Developer

Silkline

Silkline

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

3

Monthly active users

5 hours ago

Last modified

Security

Limited permissions

Share

Threads Scraper is a Threads API that extracts public data from Meta Threads (threads.net), the social app by Meta, and returns clean, flat JSON. It works in seven modes: search Threads posts or profiles by keyword, get the latest posts, replies or reposts of any profile, collect the replies under any post, and look up single posts. Every item includes the text, likes, replies, reposts, quotes, shares, image and video links, and the public profile of the author. No Threads or Instagram account, API keys, proxies or cookies needed.

It is made for marketers, social media analysts, researchers and developers who want Threads posts and replies in a spreadsheet, database or data pipeline. Pricing is pay per event: $0.003 per post or reply, plus a $0.00005 start fee for each keyword, profile or post you give it, so you can work out the cost before you run.

What is Threads?

Threads is a social app from Meta for short public posts, available on the web at threads.net. People publish text, images and videos, and other users like, reply to, repost, quote and share them. This Actor turns those public posts and replies into structured data you can filter, sort and analyse.

What data can you get?

Modes

ModeGive itYou get
searchkeywordsup to 20 posts per keyword
userPostsusernames, @names or profile linksthe latest posts of each profile, up to 25, with the author's bio and follower count (replies to other people are left out)
repliesThreads post linksthe direct replies under each post, up to about 20
searchProfileskeywordsup to 10 matching profiles per keyword (username, name, ID, picture, verified flag)
userRepliesusernames, @names or profile linksup to 25 recent replies each profile wrote, each with the post it answers
userRepostsusernames, @names or profile linksthe posts each profile reposted (the original posts, with who reposted them and when), up to 25
postDetailsThreads post linksthe post itself: text, counts, pictures, video and author

Fields

Every item is one post ("type": "post"), reply ("type": "reply"), reposted post ("type": "repost") or profile ("type": "profile"). The table lists the exact field names in the dataset.

FieldWhat it containsWhere you get it
textPost or reply text; null for pictures without a captionAll modes
likeCountNumber of likesAll modes
replyCountNumber of repliesAll modes
repostCountNumber of repostsAll modes
quoteCountNumber of quotesAll modes
shareCountNumber of sharesAll modes
createdAtPublishing time, ISO 8601 UTCAll modes
urlLink to the post or reply on threads.netAll modes
usernamePublic username of the authorAll modes
userIdAuthor's Threads user IDAll modes
displayNamePublic display name of the authorPosts only; not included on replies
avatarUrlAuthor's profile picture URL (largest available in profile mode)All modes
isVerifiedWhether the author has a verified badgeAll modes
isPrivateWhether the author's account is privateAll modes
authorFollowersFollower count of the authoruserPosts only (null on search posts; not included on replies; also null when Threads' profile lookup is down and the profile is found through search instead)
bioAuthor's bio as publisheduserPosts only (null on search posts; not included on replies; also null when Threads' profile lookup is down and the profile is found through search instead)
mediaTypetext, image, video or carouselAll modes
imageUrlsPictures of the post (one per carousel slide); an empty list when there are noneAll modes
videoUrlFirst video of the postAll modes
typepost, reply, repost or profileAll modes
postIdPost IDPosts
shortcodeThe code in the post or reply linkAll modes
replyIdReply IDReplies
parentPostIdID of the post a reply belongs toReplies
parentUsernameUsername of the author being replied toReplies
repostedByUsername of the profile that reposted the postuserReposts
repostedAtTime of the repost, ISO 8601 UTCuserReposts
isActiveOnThreadsWhether the profile is active on ThreadssearchProfiles

In Apify Console the dataset has two table views, Posts and Replies, that show the text, username, main counts, createdAt and url at a glance. The full items with all fields are included in every export.

How to use Threads Scraper

  1. Open Threads Scraper in Apify Console.
  2. Choose a Mode: search posts by keyword, profile posts, or replies of posts.
  3. Fill in the list for that mode: keywords, usernames or post links. Usernames can be written as zuck, @zuck or https://www.threads.net/@zuck. Profile posts and replies modes need at least one entry.
  4. Set Max results per keyword, profile or post (default 20).
  5. Click Start.
  6. Open the dataset and export the results as JSON, CSV or Excel, or read them through the Apify API.

Input

FieldTypeRequiredWhat it doesDefault
modestringRequiredWhat to scrape: search (posts by keyword), userPosts (posts of profiles) or replies (replies under posts)search
keywordsarray of stringsOptional (mode search)Search keywords; each returns up to 20 posts. Falls back to "coffee" when emptynone (prefilled with coffee in Console)
usernamesarray of stringsRequired in mode userPostsUsernames (zuck), @zuck or profile links; each returns up to the 25 most recent posts, replies to others left outnone (prefilled with zuck in Console)
postUrlsarray of stringsRequired in mode repliesThreads post links (https://www.threads.net/@<user>/post/<code>); each returns up to about 20 direct repliesnone (prefilled with one sample post link in Console)
maxResultsinteger (1 to 25)OptionalMaximum items per keyword, profile or post; capped at 20 for search, 25 for profile posts and 20 for replies20

maxResults is the limit for each keyword, profile or post, not for the whole run. The run delivers at most that many items per input. Threads returns one page only per input, so a value above the cap of a mode does not return more items.

In userPosts mode usernames must contain at least one entry, and in replies mode postUrls must contain at least one entry; an empty list fails the run. The Console prefill does not apply to API calls. An entry that is not a readable username or post link also fails the whole run. Only keywords falls back to "coffee" when empty. Each list is cut to its first 50 unique entries; the rest are dropped.

Search Threads posts by keyword

{
"mode": "search",
"keywords": ["coffee", "espresso machine"],
"maxResults": 20
}

Threads profile posts

{
"mode": "userPosts",
"usernames": ["zuck", "@mosseri"],
"maxResults": 25
}

Threads replies of a post

{
"mode": "replies",
"postUrls": ["https://www.threads.net/@jue.halus/post/DeOvnAEiZHG"],
"maxResults": 20
}

Search Threads profiles

{
"mode": "searchProfiles",
"keywords": ["zuck"],
"maxResults": 10
}

Threads profile replies and reposts

{
"mode": "userReplies",
"usernames": ["zuck"],
"maxResults": 25
}

Use "mode": "userReposts" for the posts a profile reposted.

Threads post details

{
"mode": "postDetails",
"postUrls": ["https://www.threads.net/@jue.halus/post/DeOvnAEiZHG"]
}

Empty input

An empty input {} searches for "coffee" and returns up to 20 posts. It is a quick way to see the output format.

Output example

The values below are illustrative samples.

Threads post (profile mode)

{
"type": "post",
"postId": "3998123456789012345",
"shortcode": "DdAbCdEfGhI",
"url": "https://www.threads.net/@sample.roastery/post/DdAbCdEfGhI",
"text": "New single-origin beans are in this week. Which brew method should we test first?",
"username": "sample.roastery",
"userId": "63123456789",
"displayName": "Sample Roastery",
"avatarUrl": "https://.../avatar.jpg",
"isVerified": false,
"isPrivate": false,
"authorFollowers": 12840,
"bio": "Small-batch coffee roaster. Brewing tips every week.",
"createdAt": "2026-10-08T09:21:54Z",
"likeCount": 148,
"replyCount": 20,
"repostCount": 6,
"quoteCount": 0,
"shareCount": 7,
"mediaType": "carousel",
"imageUrls": ["https://.../slide1.jpg", "https://.../slide2.jpg"],
"videoUrl": null
}

In search mode posts have the same fields, but authorFollowers and bio are null.

Threads reply

Reply items do not include displayName, authorFollowers or bio.

{
"type": "reply",
"replyId": "3998234567890123456",
"parentPostId": "3998123456789012345",
"parentUsername": "sample.roastery",
"shortcode": "DdBcDeFgHiJ",
"url": "https://www.threads.net/@sample.reader/post/DdBcDeFgHiJ",
"text": "Pour-over first, please!",
"username": "sample.reader",
"userId": "58123456789",
"avatarUrl": "https://.../avatar.jpg",
"isVerified": false,
"isPrivate": false,
"createdAt": "2026-10-08T10:02:11Z",
"likeCount": 12,
"replyCount": 1,
"repostCount": 0,
"quoteCount": 0,
"shareCount": 0,
"mediaType": "text",
"imageUrls": [],
"videoUrl": null
}

How much does it cost?

Threads Scraper uses pay-per-event pricing. There are two events:

EventPriceWhen it is charged
Start fee (run-start)$0.00005Once for each keyword, profile or post you give it
Result (result)$0.003For each post, reply, reposted post or profile returned

Examples:

  • 20 search results for one keyword: $0.00005 + 20 × $0.003 = $0.06005.
  • Two keywords with 20 results each: $0.1201.
  • 100 results from five keywords (20 each): 5 × $0.00005 + 100 × $0.003 = $0.30025.
  • 100 results from four profiles (25 each): 4 × $0.00005 + 100 × $0.003 = $0.3002.
  • Details of 10 posts: 10 × $0.00005 + 10 × $0.003 = $0.0305.

On the free Apify plan you get 2 free trial runs of this Actor with your own input, up to 10 results each, and nothing is charged; after that, runs return a stored sample dataset (a real result of the prefilled input). Use any paid Apify plan for full runs.

How charging works:

  • The start fee for the first keyword, profile or post is charged when the first request succeeds, even if that request returns nothing. It is not charged when the run fails from the start or rejects the IDs, or when your spending limit cannot cover it.
  • Each further start fee is charged just before the first request for that keyword, profile or post, and is kept even if that input then fails or returns nothing.
  • A keyword that returns no results, or a profile that does not exist, still costs its start fee.
  • If a run fails from the start, nothing is charged; a start fee already paid is not refunded.
  • You are never charged for items the run did not deliver, and never for more than maxResults items per input.
  • The run stops by itself if your spending limit is reached.

Use cases

  • Brand and product monitoring: search keywords for a product, a competitor or a topic and see what people post about it today, with likes, replies and reposts for each post.
  • Creator and competitor research: pull the latest posts of a profile together with its follower count and bio, and compare how each post performs.
  • Social listening and sentiment: collect the direct replies under a launch, an announcement or a widely shared post.
  • Creator shortlists: compare profiles by authorFollowers, isVerified and the engagement counts of their recent posts.
  • AI and data projects: Threads text with clean metadata for classification, summaries and trend analysis.
  • Recurring reports: schedule runs on the same keywords or profiles and compare the counts from run to run.

Integrations and API

You can start Threads Scraper from your own code through the Apify API, run it on a schedule in Apify Console, and send the results to other tools through Apify integrations and webhooks. Results are stored in a dataset that you can download as JSON, CSV or Excel, or read item by item through the API.

Python example with the apify-client package:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("clover_folktale/threads-scraper").call(run_input={
"mode": "search",
"keywords": ["coffee", "espresso machine"],
"maxResults": 20,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

To get profile posts or replies instead, change mode and pass usernames or postUrls as shown in the Input section.

Tips and limits

  • One page per input. Search returns about 20 posts per keyword (10 profiles in searchProfiles), profiles about 25 posts, replies or reposts, and replies about 20 per post. Reposts are often fewer than 25 because Threads lists only the recent ones. Asking for more is not possible; the limits are also in the input description. If you need more data, use more keywords or more profiles.
  • Up to 50 inputs per list. Each list (keywords, usernames or post links) is cut to its first 50 unique entries; the rest are dropped.
  • Check your list. In profile posts and replies modes an empty list fails the run, and so does any entry that is not a readable username or post link.
  • Search order. Search results are what Threads search returns for the keyword, not a time-ordered feed.
  • Profile order. Profile mode returns posts in the order Threads lists them (newest first). Replies the profile wrote to other people are left out.
  • Direct replies only. Replies mode returns direct replies; answers nested under a reply are not expanded.
  • Profile lookup path. A username may be found through profile search (exact username match only); the posts, replies or reposts are the same, but authorFollowers and bio are null for that run.
  • Not found. Unknown profiles and posts are skipped (their start fee still applies).
  • Failed runs. A run ends as Failed if it stops before anything has been delivered; run again later. You are never charged for items the run did not deliver.
  • Counts and media. Counts are what Threads shows at the time of the run. Media links are temporary; download what you need soon after the run.
  • Empty fields. Reply items do not include authorFollowers, displayName or bio, and search results have no authorFollowers or bio (they are null). Follower counts and bios come with profile posts. text is null for pictures without a caption, imageUrls is an empty list when a post has no pictures, and videoUrl is empty when a post has no video.
  • Unreadable entries. If one entry of an ID or link list cannot be read (a typo, a stray cell, a link to the wrong kind of page), it is skipped and named in the log, and the status message says how many were skipped; the other entries still run and nothing is charged for a skipped one. Only a list with no readable entry stops the run with an input error.
  • Free plan. On the free Apify plan you get 2 free trial runs of this Actor with your own input, up to 10 results each, and nothing is charged; after that, runs return a stored sample dataset (a real result of the prefilled input). Use any paid Apify plan for full runs.

FAQ

Do I need a Threads or Instagram account?

No. You do not need a Threads or Instagram account, API keys, proxies or cookies.

The Actor only returns public data: public posts, public replies and the public profile fields of their authors (username, display name, user ID, profile picture, verified and private flags, and in profile mode the bio and follower count). It does not return private account data such as private messages. Bios are returned as published and may contain contact details the author made public. You are responsible for how you use the data, including any data protection rules that apply to you.

How fresh is the data?

Data is collected when you run the Actor. Likes, replies, reposts, quotes, shares and follower counts are the values Threads shows at that moment.

Why are some fields empty?

Some fields only exist in one mode. authorFollowers and bio come only with profile posts (they are null on search posts), and reply items do not include displayName, authorFollowers or bio at all. text is null for pictures without a caption.

How many results can I get?

Up to about 20 posts per keyword, 25 posts per profile and 20 replies per post, because Threads answers one page per request. Each list of keywords, profiles or post links takes up to 50 unique entries; anything after the first 50 is dropped.

Can I schedule runs and export the data?

Yes. You can schedule runs in Apify Console or start them through the Apify API, and export each dataset as JSON, CSV or Excel.

What happens if a profile or post does not exist?

It is skipped and its start fee still applies.

A field or mode is missing. What can I do?

Open an issue from the Actor page and it will be looked at.

Other tools by Silkline

Every tool below charges per result and needs no login or cookies.

Global platforms

More from Silkline