agenttoolworks

An Apify Actor Store listing soon

Threads scraper: profile posts, replies and search, without an account

$1.50 per 1,000 posts, with no start fee. The leading Threads scraper on Apify charges $2.50 per 1,000 results plus $0.02 per run start (its public record, 2026-11-10). Give handles, post URLs or keywords: one row per post with its text, date, author, likes, replies, reposts, quotes and media links, and one free row per profile with followers, bio and links. No Threads account, no cookies, no browser. Said up front: about 200 posts per profile, about 20 per search, and no view counts, because that is what Threads serves a logged-out visitor.

soon Coming to the Apify Store. The Actor is built and measured, and not listed yet. Questions: contact us.How Threads can be read logged out
$1.50per 1,000 posts or replies, no start fee, profile rows free
$2.50per 1,000 results at the leading Actor, plus $0.02 per start (its public record, 2026-11-10)
about 200posts per profile, the newest: where Threads ends the list without an account
about 20posts per search query, with no further page logged out

What you get

One row per post, and a free row per profile.

Where Threads does not give a field, it is null, never guessed. The dataset has a Posts view, a Profiles view and an All fields view, and exports as JSON, CSV, Excel or XML, or through the API.

Whether a media item is an image or a video is told from the renditions Threads sends, not from a type it states. Every run also writes a summary: what each source gave, where its list stopped and why, what was charged and what was free.

Threads profile scraper, replies scraper and search

Three ways in, any mix, one run.

InputWhat it reads
ProfilesHandles (natgeo or @natgeo) or profile URLs. Each gives one free profile row (followers, bio, links) and the profile's own posts, newest first, up to the roughly 200 that Threads lists without an account.
Post URLsAddresses of single posts (threads.com/@user/post/...). Each gives the post and, when you ask for replies, the replies under it, replies to replies included.
Search queriesKeywords. Each returns the first set of posts Threads shows a logged-out visitor for that search, about 20, and no further page.
input: two profiles, one post with its replies, one search
{
  "profiles": ["natgeo", "https://www.threads.com/@nasa"],
  "maxPostsPerProfile": 200,
  "postUrls": ["https://www.threads.com/@nasa/post/DdXJKzbkqPg"],
  "maxRepliesPerPost": 100,
  "searchQueries": ["coffee"]
}

Measured in the cloud

400 posts from two profiles in 73 seconds.

The Actor sends plain HTTP requests, with no browser, and runs in 256 MB of memory. Runs of our own private build on Apify on 2026-11-10, logged out, through Apify's datacenter proxy:

73 s400 posts, 200 from each of two profiles, in 16 requests (run Sbx7WfBTCfE6qXJOa)
208posts when 1,000 were asked of one profile: Threads ended the list (run pmo2BqGmFrha0Yq9s)
301rows for one post and 300 replies under it, in 55 seconds (run Wd2ibCEoiT8m2lFiB)
18 to 24posts per search on 5 searches, 105 in all, in 37 seconds (run JR19qCm2PSMihZ3LZ)

One day and a handful of runs, not a track record. In the four runs of the current build, Threads refused none of 70 requests. Two things did go wrong that day, and the runs said so: on the earlier build, one search of three timed out and was lost, and since then a request that gets no answer is sent once more; and on a second profile, Threads answered an error after 222 posts, which ended that profile as partial with the reason (run hh3DEngH0uabFN8r6). Seven profiles of 50 posts took 128 seconds, and a handle that does not exist came back as a free row (run 9KXhWJasgPNsMPEkk): sources are read one after another.

Why this one

Six Threads scrapers on Apify, price by price.

Free plan prices, monthly users and the share of runs that succeeded over 30 days, as each Actor's public record showed them on 2026-11-10 (api.apify.com/v2/acts/futurizerush~meta-threads-scraper for the leader, the same address for each). "Success" is the share of runs that succeeded, not of posts delivered. We ran none of these Actors, and what each returns was not compared field by field or on the same input.

ActorPrice, Free planMonthly usersSuccess, 30 days
futurizerush/meta-threads-scraper$2.50 per 1,000 results, plus $0.02 per run start2,19597.46%
apify/threads-profile-api-scraper$5.00 per 1,000 profiles70999.70%
watcher.data/search-threads-by-keywords$8.00 per 1,000 results59299.10%
automation-lab/threads-scraper$5.00 per 1,000 posts, down to $1.20 on its top plan tier47899.05%
igview-owner/threads-search-scraper$20.00 per 1,000 results ($5.00 on paid plans)45497.10%
futurizerush/threads-replies-scraper$2.50 per 1,000 results36296.92%
This Actor$1.50 per 1,000 posts, no start fee; profile rows freeNewNew

1,000 posts in one run cost $1.50 here and $2.52 at the leader on the Free plan; on many small runs its start fee weighs more. The leader's record shows a default memory of 4 GB; this Actor runs in 256 MB. Where we lose: the others have users, runs and a 30-day record, and ours is new. Two of the six are search Actors, and this one returns only about 20 posts per query; how deep theirs go was not measured by us. And this one has no view counts.

A real post

A post of @nasa, as the Actor reads it.

One public post as Threads answered a logged-out request on 2026-11-10, read by the Actor's own parser. Its media link is shortened here, and a run adds the row's position in its source and the time it was read.

a Threads postreal
{
  "rowType": "post",
  "status": "ok",
  "source": "nasa",
  "sourceType": "profile",
  "postId": "3987696319896658912",
  "code": "DdXJKzbkqPg",
  "url": "https://www.threads.com/@nasa/post/DdXJKzbkqPg",
  "text": "You've got mail: a postcard from Mars!\n\nTo mark the Curiosity rover’s 5,000th day on the Red Planet, this new postcard combines two panoramas captured by the rover's navigation cameras.",
  "createdAt": "2026-09-16T20:27:46.000Z",
  "authorUsername": "nasa",
  "authorId": "28829152388",
  "authorFullName": "NASA",
  "authorVerified": true,
  "likeCount": 5593,
  "replyCount": 106,
  "repostCount": 247,
  "quoteCount": 21,
  "reshareCount": 65,
  "isReply": false,
  "replyToUsername": null,
  "isPinned": false,
  "isEdited": false,
  "mediaType": "image",
  "mediaUrls": ["https://... (Threads' signed link, shortened here)"],
  "media": [{ "type": "image", "url": "https://... (the same link)", "width": 2000, "height": 1050 }],
  "mentions": [],
  "textLinks": [],
  "linkUrl": null,
  "topic": "Space Threads",
  "language": "en",
  "quotedPostUrl": null
}

Limits

What it does not do, said up front.

Pricing

Pay per post delivered. Nothing to start a run.

$1.50 per 1,000 posts on Apify's Free and Bronze plans, $1.35 on Silver, $1.20 on Gold and up. That is $0.0015 a post on the Free plan, for a post or a reply alike, with no start fee. Free: the profile rows, a profile or a post that was not found, a source that failed (its row says why) and duplicates: a post found twice in a run, by a profile and by a search, is stored and charged once. 200 posts from each of 5 profiles cost at most $1.50. Apify's free plan includes $5 of monthly usage, about 3,300 posts. Set a maximum cost per run and the Actor stops cleanly when it is reached.

soon Coming to the Apify Store. The Actor is built and measured, and not listed yet. Questions: contact us.

More public data

Meta's ads, and what people search for.

The Facebook Ad Library scraper exports the ads a brand runs on Meta, with Google and Microsoft ads in the same run: what a brand pays to say, next to what it posts. The Google Trends scraper reads interest over time for the topics you follow on Threads.

For developers

How it reads Threads, request by request.

The guide explains what a Threads page carries for a logged-out visitor, where the login prompt stops the interface, what the official Threads API offers instead, and when that is the better choice.

Questions

Do I need a Threads or Instagram account, or cookies?

No. The Actor reads Threads logged out, the way the site answers a visitor who has no account. It never logs in, never asks for your cookies or a session, and does not use the official Threads API or a token.

How many posts can I get from one Threads profile?

About 200, the newest ones. Without an account, Threads ends a profile's list there: 208 posts on the one profile we read to its end (run pmo2BqGmFrha0Yq9s, 2026-11-10). It is a ceiling of the logged-out view, not the profile's whole history, and the run's summary says so when a profile ends short of what you asked for.

Can I search Threads by keyword?

Yes, but the result is shallow: about 20 posts per query (18 to 24 in our runs of 2026-11-10). Threads gives a logged-out visitor no further page of search results, and the Actor does not pretend otherwise. For depth, use profiles and post URLs.

Does it return view counts?

No. Threads does not send a post's view count to a visitor without an account: there was none in any page or answer we read on 2026-11-10. Likes, replies, reposts and quotes are in every row.

Can I get the replies under a post?

Yes. Give the post's URL and a number of replies: you get the post and the replies under it, replies to replies included, in the order Threads lists them. We read 300 replies under one post (301 rows with the post, run Wd2ibCEoiT8m2lFiB, 2026-11-10); where the list ends was not measured.

What does it cost?

$1.50 per 1,000 posts on Apify's Free and Bronze plans, $1.35 on Silver, $1.20 on Gold and up, with no start fee. A post row and a reply row cost the same. Profile rows are free, and so are rows for a profile or a post that was not found, a source that failed, and duplicates. Apify's free plan includes $5 of monthly usage, about 3,300 posts.

Is there an official Threads API?

Yes. Meta's Threads API reads and publishes for an account that authorizes your app with an access token. For other accounts' public posts and for keyword search across public posts, it requires permissions that Meta grants per app (its documentation, read 2026-11-10). Our guide on how to scrape Threads says when it is the better choice.

Is it legal to scrape Threads?

The Actor reads only what Threads serves a visitor who is not logged in: public posts of public profiles. It uses no account and no cookie from a signed-in session, and when Threads refuses a request it stops reading that source. Meta's terms and Threads' robots.txt prohibit automated collection without Meta's written permission, and Threads' own interface asks a visitor to log in to see more than a profile's first posts. Posts are written by people: how you store and use them, under privacy law such as the GDPR, is your responsibility. This Actor is not affiliated with Meta or Threads.

Public posts of public profiles only: no login, no account, no cookies. Not affiliated with Meta or Threads. Coming to the Apify Store, and not affiliated with Apify either.