Threads Profile & Posts Scraper avatar

Threads Profile & Posts Scraper

Pricing

from $2.50 / 1,000 results

Go to Apify Store
Threads Profile & Posts Scraper

Threads Profile & Posts Scraper

Collect public Threads profiles and their latest posts. Paste usernames or profile links to get name, bio, links, exact followers, verified badge and photo, plus each recent post's text, time, likes, replies, reposts and media. Failures are not charged.

Pricing

from $2.50 / 1,000 results

Rating

0.0

(0)

Developer

Philip Kirkbride

Philip Kirkbride

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Turn any public Threads account into clean, structured rows. Paste usernames or profile links and get each profile's name, bio, bio links, exact follower count, verified badge and profile picture, followed by the latest posts shown on the profile: text, post time, likes, replies, reposts, quotes, images and videos. Individual post links work too.

No Threads account is needed. Profiles and posts that cannot be read are listed in the run summary and are not charged.

Use cases

  • Influencer research: exact follower counts, bios and links for a list of creators.
  • Brand monitoring: what a brand or competitor posted recently and how each post performed.
  • Engagement tracking: likes, replies, reposts and quotes per post, re-run on a schedule to watch them grow.
  • Lead lists: names, bio links and verified badges for a set of accounts.
  • Content research: the latest posts, images and videos from accounts in a niche.

Quick Start

{
"profiles": ["zuck", "nasa", "https://www.threads.com/@natgeo"],
"postUrls": ["https://www.threads.com/@mosseri/post/DeZvGAMmu4D"],
"maxPostsPerProfile": 25,
"maxItems": 1000
}

Each profile becomes one profile row, followed by one row per recent post. Each post link becomes one post row.

Input

InputTypeDefaultMeaning
profilesarraynoneThreads usernames (zuck or @zuck) or profile links (https://www.threads.com/@zuck, threads.net links work too). Repeated profiles are read once.
postUrlsarray[]Individual post links (https://www.threads.com/@user/post/<code>). A post already returned from its profile is not repeated.
includePostsbooleantrueAdd the latest posts shown on each profile. Turn off for profile rows only.
maxPostsPerProfileinteger25Cap on post rows per profile, 1 to 50.
maxItemsinteger1000Total cap on rows (profiles plus posts) for the whole run, up to 100,000.

Give at least one profile or post link.

Example queries

  • {"profiles": ["netflix", "nba", "espn"]}: three brand accounts and their latest posts.
  • {"profiles": ["mosseri", "zuck"], "includePosts": false}: profile rows only.
  • {"postUrls": ["https://www.threads.com/@zuck/post/DeZtp-TkQHh"]}: one post with its current counts.
  • {"profiles": ["natgeo"], "maxPostsPerProfile": 5}: one profile and at most five posts.

What it returns

Every row has a kind: profile or post. All rows share the same columns, so profiles and posts export into one sheet; columns that do not apply to a row are null (or an empty list).

Profile rows:

FieldMeaning
username, urlThe username and the profile link.
fullNameThe display name.
biographyThe bio text.
bioLinksLinks listed on the profile.
followerCountExact follower count (not rounded).
isVerifiedWhether the account has the verified badge.
isPrivateWhether the profile is marked private.
profilePicUrlThe largest available profile picture.
userIdThe account's numeric ID.
postsReturnedHow many post rows follow for this profile.

Post rows:

FieldMeaning
url, code, postIdThe post link, its short code and its numeric ID.
username, fullName, isVerified, userIdThe post's author.
textThe post text.
createdAtWhen it was posted (UTC, ISO 8601).
likeCount, replyCount, repostCount, quoteCountEngagement counts. likeCount is null when the author hides it.
mediaTypetext, image, video or carousel.
images, videosImage and video links, one per slide for carousels. Videos also carry their cover image.
linkUrlThe web link a post previews, if any.
quotedPostUrlThe post this post quotes, if any.
isPinnedPinned to the top of the profile.
isReplyPart of a thread the author continued, or a reply.
isRepostShown on the profile but written by another account.
profileUsernameThe profile the post was found on (null for rows from post links).

Every row also carries source (profile or post), input (the value you entered), scrapedAt and error (always null in the dataset).

Output example

{"kind": "profile", "username": "nasa", "url": "https://www.threads.com/@nasa", "isVerified": true, "userId": "28829152388", "fullName": "NASA", "biography": "Making the seemingly impossible, possible. ✨", "bioLinks": [], "followerCount": 12785923, "isPrivate": false, "profilePicUrl": "https://scontent-hel3-1.cdninstagram.com/v/t51.82787-19/669747085_18089786557960389_922072622069351626_n.jpg", "postsReturned": 5, "postId": null, "code": null, "text": null, "createdAt": null, "likeCount": null, "replyCount": null, "repostCount": null, "quoteCount": null, "mediaType": null, "images": [], "videos": [], "linkUrl": null, "quotedPostUrl": null, "isReply": null, "isPinned": null, "isRepost": null, "profileUsername": "nasa", "source": "profile", "input": "nasa", "scrapedAt": "2026-10-20T01:10:00Z", "error": null}
{"kind": "post", "username": "nasa", "url": "https://www.threads.com/@nasa/post/Decc755lYhC", "isVerified": true, "userId": "28829152388", "fullName": "NASA", "biography": null, "bioLinks": [], "followerCount": null, "isPrivate": null, "profilePicUrl": null, "postsReturned": null, "postId": "4007205030373722178", "code": "Decc755lYhC", "text": "Spotted: views of a \"space jellyfish\" following today's launch of NASA’s SpaceX 35th commercial resupply mission to the International Space Station.", "createdAt": "2026-10-13T18:28:06Z", "likeCount": 41103, "replyCount": 592, "repostCount": 4378, "quoteCount": 282, "mediaType": "carousel", "images": ["https://scontent-hel3-1.cdninstagram.com/v/t51.82787-15/847998870_18123835888960389_7278135639222434691_n.jpg", "https://scontent-hel3-1.cdninstagram.com/v/t51.82787-15/846964916_18123835993960389_2780682481226156847_n.jpg", "https://scontent-hel3-1.cdninstagram.com/v/t51.82787-15/849508659_18123836011960389_1894048710237085880_n.jpg", "https://scontent-hel3-1.cdninstagram.com/v/t51.82787-15/845941405_18123836032960389_8401705155110598071_n.jpg"], "videos": [], "linkUrl": null, "quotedPostUrl": null, "isReply": false, "isPinned": false, "isRepost": false, "profileUsername": "nasa", "source": "profile", "input": "nasa", "scrapedAt": "2026-10-20T01:10:00Z", "error": null}

Image links are shortened here; real rows carry the full links.

Failed profiles and posts

A profile that does not exist, is not publicly visible, or cannot be read after several tries is listed in the run summary (OUTPUT.sourceErrors) with a short code such as NOT_FOUND, RATE_LIMITED or LOGIN_WALL, and the run goes on with the rest. These entries are not dataset rows and are not charged. A run in which nothing at all could be read fails with a clear message.

Limits and caveats

  • Threads shows visitors only the first page of a profile, usually 4 to 10 recent posts; older history, replies tabs, follower lists and search are not included.
  • Counts are read at run time and change quickly on popular posts.
  • Some well-known handles have no public Threads profile under that name (for example vogue or bbcnews); they are reported as NOT_FOUND. Private or restricted profiles may likewise show no posts or be reported as NOT_FOUND.
  • Media links are the ones Threads serves and expire after some days; download what you need soon after the run.
  • Automated access is subject to Threads' terms; use this actor only where you have the necessary permissions and a lawful basis.

FAQ

Do I need a Threads or Instagram account? No. Only public information is collected.

Can I mix usernames, profile links and post links? Yes. Put usernames and profile links in profiles, post links in postUrls. Duplicates are returned once.

How many posts will I get per profile? The posts on the first page of the profile, usually 4 to 10, capped by maxPostsPerProfile. Setting the cap above about 10 rarely adds more.

Is the follower count exact? Yes, followerCount is the exact number, not a rounded label like "5.7M".

Price

$0.0025 per result (each profile row and each post row), plus $0.005 per run start. The run-start event is charged per GB of memory; the default 512 MB run is one start event. The start is charged even if the run saves no results. Profiles and posts that fail are not charged. Platform usage is included in these prices.