Threads Posts Scraper avatar

Threads Posts Scraper

Pricing

from $2.40 / 1,000 results

Go to Apify Store
Threads Posts Scraper

Threads Posts Scraper

Threads Post Scraper extracts complete data from any public Threads.net post, including caption text, media, engagement metrics, author details, and all replies. giving you accurate and structured output ideal for research, analytics, monitoring conversations, and building datasets at scale.

Pricing

from $2.40 / 1,000 results

Rating

4.4

(9)

Developer

Goldmine

Goldmine

Maintained by Community

Actor stats

28

Bookmarked

1.6K

Total users

265

Monthly active users

9.7 hours

Issues response

21 hours ago

Last modified

Share

🧡 Threads Post Scraper β€” Extract Threads Posts and Replies

Threads Post Scraper

This Threads scraper turns any public post on Threads into structured data. Give it a post URL and it returns the post's text, images, videos, like and reply counts and author details, together with the replies shown on the post page. People use it to track reactions to announcements, collect conversation data for research, and monitor brand mentions in reply threads.

Paste one or more post links from threads.com or threads.net and get back one dataset item per post, ready for Threads data export to JSON, CSV or Excel. No login, cookies or API key are needed.


πŸš€ Key Features

  • πŸ”Ž Any public post URL β€” works with both threads.com and threads.net post links
  • 🧾 Full post data β€” text, publish time, post ID and code, images, videos, like count and reply count
  • πŸ‘€ Author details β€” username, profile picture, verification status and user IDs
  • πŸ’¬ Replies included β€” the replies shown on the post page, including replies to replies, with the same fields as the post
  • πŸ›‘οΈ No login required β€” reads only what Threads shows to logged-out visitors; Apify residential proxies by default
  • πŸ“€ Multiple export formats β€” JSON, CSV, Excel, XML via the Apify dataset
  • πŸ” Schedulable runs β€” re-run on a schedule to watch like and reply counts change over time

πŸ‘₯ Who Is This Actor For?

  • πŸ“£ Social media and marketing teams β€” measuring how an announcement landed and what people replied
  • 🧠 Researchers and analysts β€” building datasets of public conversations for sentiment or discourse analysis
  • πŸ“° Journalists β€” archiving a post and its replies as a record at a point in time
  • 🧰 Developers β€” feeding Threads post data into dashboards, alerts or internal tools
  • πŸ€– AI builders β€” giving an agent or RAG pipeline the text of a post and its discussion

πŸ’‘ Common Use Cases

  • Extract Threads posts and their replies for sentiment analysis
  • Track like and reply counts on a brand's launch post over several days
  • Collect customer feedback left in replies to a company's post
  • Archive a public post and its discussion before it is edited or deleted
  • Export a list of post URLs to a spreadsheet with author and engagement data

πŸ”— Supported URL Types

URL TypeExample
Post on threads.comhttps://www.threads.com/@openai/post/DW7RXR7EnRC
Post on threads.nethttps://www.threads.net/@openai/post/DW7RXR7EnRC

πŸ“₯ Input

FieldTypeDescriptionDefault
startUrlsArrayThe URLs of the Threads posts to scrape. One dataset item is produced per URL.Required
proxyConfigurationObjectSpecifies proxy servers that will be used by the scraper in order to hide its origin.{ "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }

Example Input

{
"startUrls": [
{ "url": "https://www.threads.com/@openai/post/DW7RXR7EnRC" }
],
"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}

πŸ“€ Output

Each dataset item has a thread object for the post and a replies array. Every post and reply has these fields:

FieldTypeDescription
textStringThe post text. Posts whose body is a text attachment return that text here.
attachment_textStringThe text of an attachment the app shows as a collapsed snippet, or null when the post has none.
published_onNumberPublish time as a Unix timestamp in seconds
idStringFull post ID
pkStringNumeric post ID
codeStringPost shortcode, as used in the post URL
usernameStringAuthor's username
user_picStringAuthor's profile picture URL
user_verifiedBooleanWhether the author is verified
user_pkStringAuthor's numeric user ID
user_idStringAuthor's user ID
has_audioBooleanWhether attached video has audio, when present
reply_countNumberNumber of direct replies to the post
like_countNumberNumber of likes
imagesArrayImage URLs attached to the post
image_countNumberNumber of images, including carousel items
videosArrayVideo URLs attached to the post
urlStringLink to the post

Example Output

A real item from a run on the example input, with image URL query strings removed and the replies list shortened to one entry:

{
"thread": {
"text": "There’s a new Pro tier in town. \n\nTo celebrate the launch, we’re increasing Codex usage for a limited time through May 31st so that Pro $100 subscribers get up to 10x usage of ChatGPT Plus on Codex to build your most ambitious ideas.\n\nOur existing $200 Pro tier still remains our highest usage option. And as a thank you to our existing Pro users on the $200 tier, we’re extending our 2x Codex usage promo (until May 31st) and we’ve reset your Codex rate limits (yes, again).",
"attachment_text": null,
"published_on": 1775770338,
"id": "3871764671238403138_63299409527",
"pk": "3871764671238403138",
"code": "DW7RXR7EnRC",
"username": "openai",
"user_pic": "https://scontent.cdninstagram.com/v/t51.82787-19/788716177_18115256264517701_8401817653356104064_n.jpg",
"user_verified": true,
"user_pk": "63299409527",
"user_id": "63299409527",
"has_audio": null,
"reply_count": 27,
"like_count": 217,
"images": [
"https://instagram.fadd2-1.fna.fbcdn.net/v/t51.82787-15/661617063_18096549797517701_8389667311012176678_n.jpg"
],
"image_count": 1,
"videos": [],
"url": "https://www.threads.net/@openai/post/DW7RXR7EnRC"
},
"replies": [
{
"text": "Aw shit MIGHT have to downgrade Claude for that 10x plus. @openai help convince me haha. Make it irrefutable",
"attachment_text": null,
"published_on": 1775770627,
"id": "3871767105461481006_76614717151",
"pk": "3871767105461481006",
"code": "DW7R6s-Eu4u",
"username": "griffinlong.dev",
"user_pic": "https://scontent.cdninstagram.com/v/t51.82787-19/790319655_17943256095321890_5618796657983618003_n.jpg",
"user_verified": true,
"user_pk": "76614717151",
"user_id": "76614717151",
"has_audio": null,
"reply_count": 0,
"like_count": 5,
"images": [],
"image_count": 0,
"videos": [],
"url": "https://www.threads.net/@griffinlong.dev/post/DW7R6s-Eu4u"
}
]
}

You can export the dataset as JSON, CSV, Excel, XML, RSS, or HTML from the Apify Console or via the Apify API.


πŸ’° Pricing

This Actor is pay per event. Each post and each reply saved counts as one result at $0.0025 per result, so 1,000 results cost $2.50 plus Apify platform usage. A post returned with 11 replies counts as 12 results. A free Apify account is enough to try it.


❓ FAQ

What is the Threads Post Scraper?

It is a Threads.net scraper that takes public post URLs and returns each post and its replies as structured data. You can run it from the Apify Console, the API, or on a schedule.

Do I need an account, cookies or an API key?

No. The Actor reads only what Threads shows to visitors who are not logged in.

Do I need a proxy?

The input defaults to Apify residential proxies, which keep runs reliable. You can switch to another proxy group, use your own proxy, or turn it off.

How many replies do I get per post?

You get the replies Threads shows on the post page to a logged-out visitor, including replies to those replies. On busy posts that is the first set of reply threads, not every reply, so reply_count can be higher than the number of replies returned.

A post shows a long recipe or list in the app. Why was its text missing before?

Threads lets a post carry its body as a text attachment, shown in the app as a collapsed snippet, instead of as a caption. That text now comes back in text, and also in attachment_text so you can tell the two apart.

Why did a post return no data?

Threads does not show some posts to logged-out visitors, and deleted or private posts cannot be read. The run log notes each URL where the post was not found, and nothing is charged for it.

This Actor takes individual post URLs. To collect posts from a profile or a hashtag, use the other Actors in the Threads Scraper Suite listed below.

Can I schedule it or integrate it with my app?

Yes. Every Apify Actor exposes a REST API, webhooks, and integrations with Zapier, Make, Google Sheets and Slack, and can be called from an AI agent via the Apify MCP server.

This Actor accesses only publicly available pages. You are responsible for making sure your use complies with Threads' terms of service and the laws in your jurisdiction.

What if Threads changes and the Actor breaks?

Open an issue on the Actor's Issues tab with a post URL that fails, so the problem can be reproduced.


🧩 Part of the Threads Scraper Suite

Actors that turn public Threads pages into structured data. Also try:

See every Goldmine Actor at apify.com/logical_scrapers.


πŸ“· Image Credit

Image credit: threads.com


πŸ“¬ Contact & Support

  • Issues & feature requests: use the Issues tab on this Actor's page. Include a post URL that fails so it can be reproduced.
  • Email: coredev.dan@gmail.com
  • If this Actor saved you time, please leave a ⭐ rating on the Apify Store. It helps us keep it maintained.