Threads Public Post, Reply & Profile Data Extractor avatar

Threads Public Post, Reply & Profile Data Extractor

Pricing

from $0.49 / 1,000 results

Go to Apify Store
Threads Public Post, Reply & Profile Data Extractor

Threads Public Post, Reply & Profile Data Extractor

Pull posts, replies, media, reposts, keyword search, hashtag search, or a post's reply thread from Threads, with real engagement counts, captions, media, and profile bios.

Pricing

from $0.49 / 1,000 results

Rating

0.0

(0)

Developer

vexaloom-labs

vexaloom-labs

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

24 days ago

Last modified

Features

Limited permissions

Share

Pull public data from Threads — a profile's posts, replies, media or reposts, keyword and hashtag results, discovered profiles, or a single post with its full reply thread. Every record ships with real engagement counts, post text, media links, hashtags, mentions, and profile details, all visible to a logged-out visitor. No Threads or Instagram account, cookie, token, or proxy setup is needed.

What this actor does

  • Eight modes: profile posts, profile replies, profile media, profile reposts, keyword search, hashtag/topic search, profile discovery by keyword, and a post plus its reply thread.
  • Deep pagination: profiles and reply threads keep loading page after page, so a run can collect hundreds of posts instead of the handful visible on first load.
  • Complete engagement data: likes, replies, reposts, quotes, and reshares, plus photo, video, and carousel links, link cards, hashtags, mentions, and outbound URLs.
  • Profile records: bio, follower count, verification, profile pictures, bio links, topics, and account visibility, emitted alongside a profile mode's posts or through profile discovery.
  • Date windows: keep only posts published after or before a date, using ISO dates or relative windows such as 7d.
  • Working media links: photos and videos are copied into the run's key-value store before Threads' signed links expire, with the original link and expiry kept beside each copy.
  • Empty fields are omitted — no null, empty string, or placeholder is ever written.

Output per post and reply

FieldDescription
recordType"post" for post and reply records.
modeMode that produced the record.
postIdThreads' numeric post id.
shortcodeShort code used in the post URL.
postUrlFull post permalink.
authorUsername, authorFullName, authorPkAuthor identity.
authorIsVerifiedWhether the author has a verification badge.
authorProfilePicUrlAuthor avatar link.
postTextPost or reply text.
publishedAtPublish time, ISO 8601 UTC.
likeCount, commentCount, repostCount, quoteCount, shareCountEngagement counts as Threads displays them. commentCount is the reply count and shareCount the reshare count.
isReply, parentPostId, replyToAuthorUsername, rootPostAuthorUsernameReply context when Threads provides it.
threadRootPostId, threadPosition, threadItemsPosition inside the author's own thread and the other items in that thread.
mediaTypeThreads' media type number (1 photo, 2 video, 8/19 carousel).
hasImage, hasVideoWhether the post carries a photo or video (always present).
imageUrl, imageUrlsBest photo link and all photo links.
videoUrl, videoUrls, videoThumbnailUrlBest video link, all video versions, and the video cover image.
carouselMediaPer-slide media type, links, and dimensions for carousel posts.
imageUrlOriginal, videoUrlOriginal, imageUrlsOriginal, videoUrlsOriginal, carouselMediaOriginalOriginal Threads links (present when media is rehosted).
imageUrlExpiresAt, videoUrlExpiresAt, imageUrlsExpiresAt, videoUrlsExpiresAtExpiry time of the original signed links.
externalLinkUrl, externalLinkDomain, externalLinkTitleLink-card target, domain, and title. linkPreviewUrl, linkPreviewDomain, linkPreviewTitle carry the same values.
hashtags, mentions, outboundUrlsArrays parsed from the post text.
isPaidPartnershipPresent when Threads marks a paid partnership.
isMainPostIn post-reply mode: true for the post itself, false for replies.
scrapedAtCollection time, ISO 8601 UTC.

Output per profile

FieldDescription
recordType"profile".
modeProfile mode that produced the record, or profilesByKeyword.
username, profileIdHandle and numeric account id.
profileUrlFull profile link.
displayName, bioDisplay name and bio text.
followersCount, threadsCountFollower and thread counts as shown publicly.
isVerifiedPresent and true only when the account is verified.
profilePicUrl, hdProfilePicUrlAvatar links.
bioLinks, profileTopicsLinks found in the bio and topic labels.
isPrivateWhether the account is marked private.
publicViewCountPublic view count when Threads exposes one.
instagramUrlConnected Instagram profile link, when shown.
scrapedAtCollection time, ISO 8601 UTC.

Input

FieldTypeDefaultDescription
modestringprofileprofile, profileReplies, profileMedia, profileReposts, search, tag, profilesByKeyword, or postReplies.
usernamesarray–Handles or profile URLs (profile modes).
searchQueriesarray–Keywords, phrases, or hashtags (search, profilesByKeyword).
tagstring–Hashtag or topic without # (tag).
postUrlsarray–Post links (postReplies).
sortBystringtoptop or recent for keyword search (default is accepted as an alias of top).
includeProfileInfobooleantrueAlso output one profile record per username in profile modes.
postedAfterstring–Lower publish-date bound (ISO date or 7d, 24h, 2w).
postedBeforestring–Upper publish-date bound.
includeMediaUrlsbooleantrueCopy photos and videos into the key-value store so links keep working.
maxItemsinteger100Record cap (1–5000). Profile records do not count in profile modes.

Example: a profile's recent posts

{
"mode": "profile",
"usernames": ["zuck"],
"includeProfileInfo": true,
"maxItems": 100
}

Example: replies written by two accounts in the last two weeks

{
"mode": "profileReplies",
"usernames": ["zuck", "mosseri"],
"postedAfter": "14d",
"maxItems": 200
}

Example: keyword search, newest results first

{
"mode": "search",
"searchQueries": ["openai", "#buildinpublic"],
"sortBy": "recent",
"maxItems": 50
}

Example: a post with its full reply thread

{
"mode": "postReplies",
"postUrls": ["https://www.threads.com/@zuck/post/DZpPDXbCeTt"],
"maxItems": 300
}

Use cases

  • Social listening — follow keywords or hashtags and route new posts into a monitoring dashboard.
  • Competitor tracking — compare engagement across accounts and export post histories for trend charts.
  • Influencer research — collect follower counts, bios, topics, and recent performance before a partnership.
  • Community analysis — export a post's reply thread and measure how a conversation develops.
  • Content planning — study which formats and topics earn the most likes, replies, and reposts in a niche.
  • Academic research — archive public conversations with stable, structured metadata for later analysis.

Limitations

  • Threads shows logged-out visitors a fixed amount of keyword and hashtag search results and does not page beyond it. Profile feeds, media, reposts, and reply threads do paginate deeply; search is capped at roughly one screen of results.
  • Keyword profile discovery returns one page of up to about 100 profiles per keyword. Threads does not issue another page for that view.
  • A reply thread can be shorter than the reply count shown on a post: Threads filters what a logged-out visitor sees. The run status message reports the shortfall when it happens.
  • Quote posts cannot be listed anonymously; Threads shows them only in a signed-in activity view. Quote counts are still returned for every post.
  • Some accounts require a Threads login before any content is shown. Those accounts are reported in the run status message and skipped; they are never filled with placeholder records.
  • A post that Threads itself cannot serve anonymously (for example, a quote of a removed post or a broken poll) can interrupt a feed. The actor continues up to that item and reports where it stopped.
  • Photos and videos use signed links that expire after a few days. With media rehosting on, copies are stored in the run's key-value store and the original link plus expiry stay in the record.
  • Private accounts and private posts are not accessible without an account, so they are not returned.

FAQ

Do I need a Threads or Instagram account? No. The actor reads only what Threads shows to logged-out visitors.

Do I need to configure a proxy? No. The actor chooses a working connection automatically; there is nothing to set up.

How many posts can I get from one profile? Profile feeds page continuously while Threads keeps returning results. Popular accounts commonly return hundreds of posts in one run; the maxItems setting is the only cap.

Why do I get fewer results than expected from search? Threads limits logged-out keyword and hashtag search to a single screen of results. For deeper coverage, collect from the accounts or post links you care about instead.

Are the engagement counts exact? They are the counts Threads displays publicly, which use abbreviations such as 1.2K for larger numbers.

Why are some media links replaced by Apify links? Threads' media links are signed and expire. Rehosting stores a durable copy and keeps the original link and its expiry in the record.

Why do I get fewer replies than the number on the post? Threads filters reply threads for logged-out visitors. The actor returns every reply Threads serves and states the shortfall in the run status when the public count is higher.

Can I collect private accounts? No. Only public profiles, posts, and replies are visible without logging in.

What happens when nothing is visible? The run finishes with an explanatory status message and an empty dataset; no placeholder records are written.

Is this affiliated with Threads or Meta? No. This is an independent third-party tool, not affiliated with, endorsed by, or sponsored by Meta Platforms, Inc.