Threads Scraper avatar

Threads Scraper

Pricing

Pay per usage

Go to Apify Store
Threads Scraper

Threads Scraper

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Khánh Chung

Khánh Chung

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Threads Post Scraper

An Apify Actor that accepts public Threads post/share URLs and writes one structured dataset item per input URL.

What it extracts

  • Post text and outbound URLs embedded in the post
  • Social metrics: likes, replies, reposts, quotes, shares, and views (when Threads exposes them)
  • Author ID, username, full name, avatar, verification and privacy status
  • Publication time, language, images and videos
  • An explicit failed item if a URL cannot be scraped after retries

The Actor listens for Threads JSON API responses and also inspects JSON embedded in the rendered page. It deliberately does not depend on a hard-coded GraphQL doc_id.

Input

{
"input": [
{
"url": "https://www.threads.com/@thanhdi2002/post/Dc4GCkdiccs"
},
{
"url": "https://www.threads.com/share/BASb4UxkrU/"
}
],
"includeRaw": false,
"maxConcurrency": 3,
"maxRequestRetries": 2,
"proxyConfiguration": {
"useApifyProxy": true
}
}

Only public threads.com and threads.net post/share URLs are accepted. A share URL is followed to its final post before extraction.

Output

{
"type": "post",
"status": "succeeded",
"sourceUrl": "https://www.threads.com/share/BASb4UxkrU/",
"url": "https://www.threads.com/@thanhdi2002/post/Dc4GCkdiccs",
"id": "3978956835650127660",
"shortcode": "Dc4GCkdiccs",
"text": "Post content",
"urls": ["https://example.com/resource"],
"metrics": {
"likes": 945,
"replies": 91,
"reposts": 105,
"quotes": 0,
"shares": 190,
"views": null
},
"author": {
"id": "45688886992",
"username": "thanhdi2002",
"fullName": "Ngô Thanh Di",
"profileUrl": "https://www.threads.com/@thanhdi2002",
"profilePictureUrl": "https://cdn.example/avatar.jpg",
"isVerified": false,
"isPrivate": false
},
"postedAt": "2024-12-20T12:00:00.000Z",
"language": "vi",
"media": []
}

Metric values can be null when Threads does not expose them to a logged-out session. CDN media URLs are signed and can expire; consume or download them soon after a run.

Run locally

npm install
apify run

Without the Apify CLI, place the input in storage/key_value_stores/default/INPUT.json and run npm start. Results are written under storage/datasets/default/.

Deploy to Apify

npx apify-cli login
npx apify-cli push

The first command authenticates your account; push creates/updates the Actor from .actor/actor.json, uploads the source and starts its cloud build.

Operational notes

  • Public pages only; this Actor does not bypass authentication or account privacy.
  • Threads can change its internal response format. The recursive post detector tolerates wrapper changes, but field renames may require updating src/extract.js.
  • Use Apify residential proxy groups if requests from datacenter IPs are rate-limited.
  • Keep concurrency conservative. The default of 3 favors reliability over peak throughput.