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

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

Pricing

from $3.00 / 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 $3.00 / 1,000 results

Rating

0.0

(0)

Developer

Silkline

Silkline

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 hours ago

Last modified

Share

Threads Scraper extracts public data from Threads (threads.net), the social app by Meta, and returns clean, flat JSON. It works in three modes: search posts by keyword, get the latest posts of any profile, and collect the replies under any post. 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.01 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

Fields

Every item is one post ("type": "post") or one reply ("type": "reply"). 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)
bioAuthor's bio as publisheduserPosts only (null on search posts; not included on replies)
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 or replyAll 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

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 posts by keyword

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

Profile posts

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

Replies of a post

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

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.

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.

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.01Once for each keyword, profile or post you give it
Result (result)$0.003For each post or reply returned

Examples:

  • 20 search results for one keyword: $0.01 + 20 × $0.003 = $0.07.
  • Two keywords with 20 results each: $0.14.
  • 100 results from five keywords (20 each): 5 × $0.01 + 100 × $0.003 = $0.35.
  • 100 results from four profiles (25 each): 4 × $0.01 + 100 × $0.003 = $0.34.

On the free Apify plan, a run returns at most 20 results in total; any paid Apify plan removes the limit. On the free Apify plan each account can run this Actor up to 3 times per 24 hours and 10 times per 7 days, within a small lifetime free allowance shared across all our Actors, and all free accounts share a daily free budget. When any of these limits is reached, the run stops before fetching anything and nothing is charged.

How charging works:

  • The start fee for the first keyword, profile or post is charged when the first request to the data source succeeds, even if that request returns nothing. It is not charged when the data source 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 because the request was made.
  • If the data source is down for the whole run, nothing is charged.
  • 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, profiles about 25 posts, and replies about 20 per post. 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.
  • Not found. Unknown profiles and posts are skipped (their start fee still applies). When 5 inputs have returned nothing, the run stops to protect your budget and ends with the status Failed.
  • Failed runs. Besides the 5-miss stop above, a run also ends as Failed if the data source goes down mid-run before anything has been delivered. 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.
  • Free plan. On the free Apify plan, a run returns at most 20 results in total; any paid Apify plan removes the limit.

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. On the free Apify plan a run returns at most 20 results in total.

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. When 5 inputs have returned nothing, the run stops to protect your budget and ends with the status Failed.

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

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

More tools from the same developer