Threads

Threads Post Scraper

Extracts data from public Threads posts — caption text, author username, like and reply counts, images and videos, and the full reply thread including nested replies. Accepts multiple post URLs per run.

Run on Apify1,403 userson Apify, measured 2026-08-24

What it extracts

Every field below comes from the Actor’s published dataset schema.

FieldDescriptionType
thread.usernameUsernametext
thread.textTexttext
thread.like_countLike Countnumber
thread.reply_countReply Countnumber
thread.imagesImagesimage
thread.videosVideosvideo
repliesRepliestext

Input parameters

Generated from the Actor’s input schema — the same fields the Apify console shows.

ParameterTypeRequiredDescription
startUrlsarrayRequiredThe URLs of the Threads posts to scrape.
proxyConfigurationobjectOptionalSpecifies proxy servers that will be used by the scraper in order to hide its origin.

API access

Run this Actor from your own code over the Apify API.

Inputjson
{
  "startUrls": [
    {
      "url": "https://www.threads.net/@zuck/post/CuVdfsNtmvh"
    }
  ]
}
REST — run and get resultsbash
curl -X POST \
  "https://api.apify.com/v2/acts/logical_scrapers~threads-post-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"startUrls":[{"url":"https://www.threads.net/@zuck/post/CuVdfsNtmvh"}]}'
JavaScript — apify-clientjavascript
import { ApifyClient } from 'apify-client'

const client = new ApifyClient({ token: 'YOUR_API_TOKEN' })

const run = await client.actor('logical_scrapers~threads-post-scraper').call({
  "startUrls": [
    {
      "url": "https://www.threads.net/@zuck/post/CuVdfsNtmvh"
    }
  ]
})

const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)
Python — apify-clientpython
from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")

run = client.actor("logical_scrapers~threads-post-scraper").call(run_input={
    "startUrls": [
        {
            "url": "https://www.threads.net/@zuck/post/CuVdfsNtmvh",
        },
    ],
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

Runs are executed on Apify. Create an API token in your Apify account, then call the Actor over REST or with the official client for your language. The same input object works in the Apify console, so you can test interactively before automating.

Use cases

Conversation research

Capture a post together with its entire reply tree to study how a discussion actually developed.

Engagement analysis

Compare like and reply counts across a set of posts to see what resonates.

Brand monitoring

Track posts that mention a brand and collect the replies alongside them.

Dataset building

Assemble structured social conversation data for analysis or model evaluation.

Pricing

Data not currently verified. This Actor's pricing model is not declared in our source repository.

Current rates are published on the Apify listing and can change, so they are not duplicated here. See pricing on Apify

Reliability

99.4% run success rate

Measured across all public Goldmine Actors on Apify, 2026-08-24. This is an account-level figure, not a per-Actor benchmark — per-Actor speed and completeness benchmarks are not yet published. Source.

Limitations

What this Actor does not do, so you can tell before you run it whether it fits.

  • Public posts only. Private accounts are not accessible.
  • Takes post URLs as input — it does not search Threads or discover posts. Use Threads Hashtag Scraper or Threads Profile Scraper to build the URL list.
  • Returns one record per post with its replies attached, rather than one record per reply.
  • It reads the JSON embedded in the post page, so a change to that structure can affect field availability.

Frequently asked questions

Does it capture replies?

Yes. The full conversation is returned, including nested replies, in the `replies` field of the post record.

Can I scrape more than one post per run?

Yes — `startUrls` takes an array of Threads post URLs.

Do I need an account?

No. It works against public posts without authentication.

Field and input tables are generated from this Actor's published schemas. Usage figures measured 2026-08-24 from the Apify listing.