Threads Replies Scraper avatar

Threads Replies Scraper

Pricing

from $2.50 / 1,000 results

Go to Apify Store
Threads Replies Scraper

Threads Replies Scraper

Extract public Threads post replies and comments with author info, available engagement metrics, media details, quote/repost signals, and verification status. The original post row includes public view count when available. Batch multiple posts with no login required.

Pricing

from $2.50 / 1,000 results

Rating

1.8

(2)

Developer

Rush

Rush

Maintained by Community

Actor stats

21

Bookmarked

1.2K

Total users

267

Monthly active users

4.7 days

Issues response

6 hours ago

Last modified

Share

Extract public replies and comments from Threads posts. First-level replies are collected by default, with an option to include publicly visible nested sub-replies. Get author info, available engagement metrics, media details, quote/repost signals, and verification status.

Note: Website structure may occasionally change, which could temporarily affect data extraction. Please test with small batches before large-scale use.

What Data Can You Extract?

For each reply

FieldDescription
Author Username (author_username)The @username of who wrote the reply
Author Account ID (author_user_id)Stable numeric account ID that does not change if the account is renamed (null when the public view does not expose it)
Author Display Name (author_display_name)Public display name
Author Profile Picture (author_profile_pic_url)Standard-resolution profile image URL. A post page rarely offers a high-resolution variant, so author_profile_pic_hd_url is usually null on these rows
Author Profile URL (author_profile_url)Link to the author's Threads profile
Verified Status (author_is_verified)Whether the author has a verified badge
Fediverse Enabled (author_fediverse_enabled)Whether the author publicly shows an ActivityPub sharing indicator. A post page does not publish this signal, so it is null here — null means unknown, never "disabled"
Reply Content (text_content)Publicly available reply text (with emoji support)
Mentions / Hashtags (mentions / hashtags)Extracted from the reply text
Links (urls)Every external address the reply carries — links written in the text and the address behind a shared link's preview card, each listed once
Mentioned Accounts (mentioned_accounts)Accounts Threads actually tagged in the text, each with username and stable account ID when available
Link Title (link_title)Title of a shared link's preview card (empty when the reply shares no link)
Language (language)The language Threads read the reply in, such as zh_TW or ja — useful for separating one market's conversation from another. Threads labels only some replies, so this is often empty
Posted Time (created_at / created_at_timestamp)ISO timestamp + Unix timestamp
Likes / Replies / Reposts / Quotes / Shares (like_count / reply_count / repost_count / quote_count / share_count)Engagement metrics when publicly available
Author Liked (is_liked_by_author)Whether the original post author liked this reply
Replying To (reply_to_username)Username of who the reply is responding to
Has Media / Media URL / Media URLs (has_media / media_url / media_urls)Whether the reply has media, the main media URL, plus carousel items. Use Has Media and Is GIF for simple filtering
Is GIF (is_gif)True when the reply contains an embedded GIF — handy for quick GIF filtering
Is Spoiler (is_spoiler)Whether the author hid the media behind a spoiler cover
Media Kind (media_category)Human-readable media type — text, photo, video, carousel, gif, or other — the simplest field for filtering by media
Media Width / Height (media_width / media_height)Original media dimensions in pixels
Has Audio (has_audio)Whether the reply carries audio. Null means Threads published no audio signal for it — not a claim that the reply is silent
Image Alt Text (accessibility_caption)Image description (alt text) when publicly available
Is Quote Post / Quoted Post URL (is_quote_post / quoted_post_url)Quote post detection and target URL
Is Repost / Reposted Post URL (is_repost / reposted_post_url)Repost detection and original post URL
Is Paid Partnership (is_paid_partnership)Whether the reply is labelled as sponsored
Is Edited (is_edited)Whether the text was edited after publishing
Reply Control (reply_control)Who can reply, as reported by Threads (e.g. everyone, followers_only, mentioned_only)
Reply URL (reply_url)Direct link to the reply
Source Post URL (source_post_url)The original post this reply belongs to
Scraped At (scraped_at)ISO timestamp of when the row was collected

For each original post

The scraper also captures the post the replies belong to as an original_post row. The original post shares the same general fields (author, engagement, media, quote/repost, sponsorship) and carries View Count (view_count) when the post page publishes one — this is not limited to video posts. It is null when the page publishes no count, and also when the page carries several counts with no way to tell which belongs to this post, in which case no number is guessed. Reply rows do not include view counts. Reply-specific fields (reply_id, reply_url, is_liked_by_author, reply_to_username) only appear on reply rows.

Each original_post row also carries Replies Collected (collected_reply_count) and Public Subset (is_public_subset). The logged-out public view returns only the first batch of a large thread, so is_public_subset is true when the post reports more replies than the public view made available — letting you tell a fully-collected small thread from a sample of a much larger one. It is null when the post publishes no reply total, because then neither answer can be given honestly. Your own reply limit never turns this flag on. A reply the page does not attribute to a specific comment counts as answering the post, so with nested sub-replies enabled this flag is approximate.

How to Use

Input

ParameterRequiredDefaultDescription
post_urlsYes-Up to 20 Threads post URLs.
max_repliesNo50Cap on how many replies to collect per post (10-50). Threads may expose fewer public replies than this cap.
include_nested_repliesNofalseWhen true, also collects nested sub-replies that are publicly visible during the run. Default keeps first-level only. Still subject to public availability and max_replies.

Example Input

{
"post_urls": [
{ "url": "https://www.threads.com/@zuck/post/DTa3-B1EbTp" },
{ "url": "https://www.threads.com/@zuck/post/DSVRshjkbtK" },
{ "url": "https://www.threads.com/@mosseri/post/DZ5UXU0G-DX" }
]
}

Replace these examples with public Threads post URLs you want to analyze.

Output Example

All data is saved to the dataset. Each record has an item_type field ("original_post" or "reply") and a source_post_url field to identify which post it belongs to. Reply rows use reply_id as the primary reply identifier when Threads provides it, so a reply that appears under more than one of the posts you asked for is stored once. The examples below use fictional placeholder values.

Original Post

{
"item_type": "original_post",
"source_post_url": "https://www.threads.com/@example_creator/post/EXAMPLE01",
"post_code": "EXAMPLE01",
"post_url": "https://www.threads.com/@example_creator/post/EXAMPLE01",
"author_username": "example_creator",
"author_user_id": "1234567890",
"author_display_name": "Example Creator",
"author_is_verified": true,
"author_profile_pic_url": "https://example.com/avatar.jpg",
"author_profile_pic_hd_url": null,
"author_profile_url": "https://www.threads.com/@example_creator",
"author_fediverse_enabled": null,
"text_content": "Sharing a product update and inviting public feedback...",
"mentions": [],
"mentioned_accounts": [],
"hashtags": [],
"urls": [],
"link_title": "",
"language": "",
"created_at": "2026-01-12T18:00:30.000Z",
"created_at_timestamp": 1768240830,
"like_count": 285,
"reply_count": 96,
"collected_reply_count": 42,
"is_public_subset": true,
"repost_count": 14,
"quote_count": 3,
"share_count": 23,
"view_count": null,
"has_media": false,
"media_category": "text",
"is_gif": false,
"is_spoiler": false,
"media_url": null,
"media_urls": [],
"media_width": null,
"media_height": null,
"has_audio": null,
"accessibility_caption": null,
"is_quote_post": false,
"quoted_post_url": null,
"is_repost": false,
"reposted_post_url": null,
"is_paid_partnership": false,
"is_edited": false,
"reply_control": "everyone",
"scraped_at": "2026-04-25T11:08:00Z"
}

Reply

{
"item_type": "reply",
"source_post_url": "https://www.threads.com/@example_creator/post/EXAMPLE01",
"reply_id": "REPLY01",
"author_username": "example_commenter",
"author_user_id": "9876543210",
"author_display_name": "Example Commenter",
"author_is_verified": true,
"author_profile_pic_url": "https://example.com/avatar.jpg",
"author_profile_pic_hd_url": null,
"author_profile_url": "https://www.threads.com/@example_commenter",
"author_fediverse_enabled": null,
"text_content": "Thanks @example_creator — I would like to see more details about availability.",
"mentions": ["example_creator"],
"mentioned_accounts": [{ "username": "example_creator", "user_id": "1234567890" }],
"hashtags": [],
"urls": [],
"link_title": "",
"language": "",
"created_at": "2026-01-12T18:00:30.000Z",
"created_at_timestamp": 1768240830,
"like_count": 96,
"reply_count": 10,
"repost_count": 4,
"quote_count": 1,
"share_count": 4,
"is_liked_by_author": false,
"reply_to_username": "example_creator",
"media_category": "text",
"has_media": false,
"is_gif": false,
"is_spoiler": false,
"media_url": null,
"media_urls": [],
"media_width": null,
"media_height": null,
"has_audio": null,
"accessibility_caption": null,
"is_quote_post": false,
"quoted_post_url": null,
"is_repost": false,
"reposted_post_url": null,
"is_paid_partnership": false,
"is_edited": false,
"reply_control": "everyone",
"reply_url": "https://www.threads.com/@example_commenter/post/REPLY01",
"scraped_at": "2026-04-25T11:08:02Z"
}

Use Cases

  • Sentiment Analysis: Analyze public reactions to announcements or product launches
  • Conversation Tracking: Monitor discussions around specific topics or posts
  • Influencer Research: Study engagement patterns on influencer content
  • Market Research: Gather authentic user feedback and opinions
  • Content Strategy: Identify what types of posts generate the most engagement

Supported URL Formats

  • https://www.threads.com/@username/post/CODE
  • https://threads.com/@username/post/CODE
  • https://www.threads.net/@username/post/CODE
  • https://threads.net/@username/post/CODE

A share link — https://www.threads.com/share/CODE, what the share button on a phone produces — works too: it is resolved to the post it points at.

The https:// is optional — a link copied from what the address bar displays works as it is. Tracking parameters on the end of a shared link are ignored.

Features

  • Batch Scraping: Scrape replies from multiple posts in a single run
  • Conversation Modes: First-level replies by default; enable include_nested_replies to include publicly available nested sub-replies
  • No Login Required: Works with public posts without authentication
  • Structured Data: Clean, consistent output format ready for analysis
  • Batch Reporting: Each source post is tracked in the run summary, including any post that could not be collected
  • Export Options: Download as JSON, CSV, or Excel

Limitations

LimitationDetails
Public ViewReturns the batch of replies Threads shows in the public, logged-out view of a post, not necessarily every reply on a very large thread. The original post row's reply_count shows the platform's reported total for reference, when Threads reports one — a 0 there on a post that clearly has replies means Threads published no total, not that the post has none.
Natural VariationThe exact set can differ between runs, and active posts keep gaining replies over time — this reflects the live public page, not a failure.
Post TypeOnly public posts (private accounts are not accessible)

Tips for Best Results

  1. Check Post Visibility: Make sure the post is from a public account
  2. Batch Organization: Add multiple posts when you want one combined dataset
  3. Filter by Source: Use source_post_url to group replies by their parent post

Output Locations

After the run completes:

  • Dataset: Contains all data in a single export
    • Use item_type to filter: "original_post" or "reply"
    • Use source_post_url to group by parent post
    • Use the "Overview" tab to see key fields at a glance
  • Key-Value Store:
    • OUTPUT: Run summary with post counts and statistics
    • PROGRESS: Live progress during the run (posts completed and replies collected)

FAQ

Q: Why do I get fewer replies than the post shows? A: This actor works from the public, logged-out view of a post. It returns the replies publicly visible during the run, capped by your max_replies setting.

Q: What happens if one post in my batch fails? A: The scraper processes each post link independently, and every post it could not collect is listed under failed_details in the run summary (OUTPUT). A link this run cannot use is skipped rather than ending the run: the usable links are still collected, the skipped ones are named by position in the log and counted under links_skipped, and the closing message says how many were skipped. A run only stops at the door when none of the links can be used. A share link the site does not answer is reported as exactly that — it is a post link, so the advice is to run it again rather than to check the link.

Q: When does a run end as failed? A: Only when there is no usable result at all, or when the run itself did not finish — collected data that could not be saved, or a run cut off partway. That second kind fails even if some posts had already been collected, because it is a signal to retry. These all finish successfully: some posts read and others not (the ones missed are named in the run summary); every requested post turning out to be deleted or private (that answer is the result); and stopping early because the run reached the result limit you set. Whatever the ending, everything already collected stays in the dataset.

Q: Can I get all replies from a post? A: This scraper works without login, so it is limited to replies that Threads exposes publicly.


Need Another Threads Workflow?

Built by futurizerush — explore more Threads & social-media scrapers.

Disclaimer

This tool is provided for educational and research purposes only. Users are solely responsible for ensuring their use complies with all applicable laws, regulations, and the Terms of Service of the platforms being accessed. The developers make no warranties regarding the accuracy, completeness, or reliability of the extracted data. Data availability depends on the platform's public access policies, which may change without notice. The developers are not liable for any damages arising from the use or misuse of this tool.

By using this tool, you acknowledge that:

  • You will only scrape publicly available data
  • You are responsible for how you use the collected data
  • Data accuracy depends on what the platform provides

Support

Have a question or run into a problem? Use the Issues tab on this Actor's page and we'll be glad to help.


Threads scraper, Threads replies scraper, Threads comments scraper, Threads data extraction, social media scraper, conversation analysis, sentiment tracking, engagement metrics, influencer research, social media monitoring, Threads post comments, Apify actor, web scraping, data collection, social media analytics, OpenClaw, Claude Code, Gemini, Antigravity, Codex, ChatGPT