๐Ÿงต Threads User Posts Scraper avatar

๐Ÿงต Threads User Posts Scraper

Pricing

from $3.99 / 1,000 results

Go to Apify Store
๐Ÿงต Threads User Posts Scraper

๐Ÿงต Threads User Posts Scraper

Pricing

from $3.99 / 1,000 results

Rating

0.0

(0)

Developer

ScraperX

ScraperX

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

4 days ago

Last modified

Share

๐Ÿงต Threads User Posts Scraper โ€” Extract Posts, Media & Engagement from Threads Profiles

Turn any public Threads profile into a clean dataset. Paste profile links or plain usernames and get every post with its caption, like count, replies, reposts, quotes, image and video URLs with dimensions, mentions, tags, timestamp and direct post URL.

Bulk profiles, up to 5,000 posts per profile, and results streamed to your Output tab as they arrive.


What you get

๐Ÿงต Post๐Ÿ“Š Engagement๐Ÿ–ผ๏ธ Media & people
Post ID, PK and short codeLikesImages with URL, width, height
Full caption textDirect repliesVideos with URL and type
Edited-caption flagRepostsAudio attachments
Publication timestampQuotesMentions with username, ID and avatar
Direct post URLCounts-disabled flagUser tags
Author username and avatar

Key features

  • Profiles or usernames. Paste https://www.threads.com/@zuck, a threads.net link, or simply zuck โ€” all work, in bulk, one per line.
  • Deep history. Up to 5,000 posts per profile, paged through Threads' own cursor.
  • Media with dimensions. Images come back with their URL, width and height, and videos with their URL and type โ€” so you can filter by format or aspect ratio before downloading anything.
  • The full engagement set. Likes, direct replies, reposts and quotes are separate fields. Quotes in particular signal that people are adding commentary rather than passively resharing.
  • Structured mentions. Every @mention is returned as an object with username, user ID and profile picture โ€” not just text you have to parse out of the caption.
  • Honest engagement flags. like_and_view_counts_disabled tells you when an account has hidden its numbers, so a 0 is never mistaken for genuine zero engagement.
  • Automatic connection escalation. Runs direct by default and switches to Apify datacenter or residential connections when Threads is picky โ€” no configuration needed.
  • Live streaming output โ€” posts appear in the Output tab as they are collected, so long runs are never all-or-nothing.

Use cases

  • Competitor monitoring โ€” track what rival brands post on Threads and how it performs.
  • Influencer research โ€” evaluate a creator's real engagement before a partnership.
  • Content strategy โ€” see which captions and formats drive replies and quotes in your niche.
  • Social listening โ€” monitor the accounts that matter to your brand.
  • Trend research โ€” capture how a topic is discussed across several profiles.
  • Archiving โ€” keep a structured record of an account's public output.
  • Media asset collection โ€” gather image and video URLs with dimensions.
  • Academic and market research โ€” build datasets of public social discourse with engagement metrics.

How it works

  1. You supply profile links or usernames, one per line.
  2. Each profile is resolved and its post feed is paged through Threads' own cursor.
  3. Every post is normalised into a flat record with nested arrays for media and mentions.
  4. If Threads restricts traffic, the Actor escalates to stronger Apify connections automatically.
  5. Posts stream into the dataset as they are collected, until your per-profile cap is reached.

Quick start

  1. Open the Actor and paste a profile โ€” e.g. https://www.threads.com/@zuck or just zuck.
  2. Set Max posts per profile (start with 10โ€“50).
  3. Click Start and watch rows appear in the Output tab, then export as CSV, Excel or JSON.

Minimal input

{
"urls": ["https://www.threads.com/@zuck"],
"maxPostsPerProfile": 50
}

Input configuration

FieldTypeDefaultDescription
urlsarrayโ€” (required)Threads profile links (threads.com or threads.net) or plain usernames. One per line; bulk lists supported.
maxPostsPerProfileinteger10How many recent posts to save per profile, from 1 to 5,000. Lower is faster; higher gives deeper history.
proxyConfigurationobjectoffOptional. Leave off โ€” the Actor auto-escalates to datacenter or residential when needed. Turn on only to force specific groups, a country or a session.

Output data

One row per post.

FieldTypeDescription
id, pkstringThreads post identifiers.
codestringPost short code.
urlstringDirect link to the post.
captionstringFull post text.
caption_is_editedbooleanWhether the caption was edited after posting.
taken_atstringPublication timestamp.
usernamestringAuthor's username.
profile_pic_urlstringAuthor's profile picture.
like_countnumberLikes.
direct_reply_countnumberDirect replies.
repost_countnumberReposts.
quote_countnumberQuote posts.
like_and_view_counts_disabledbooleanWhether the account hides its engagement numbers.
mediasarrayImages (type, url, width, height) and videos (type, url, video_type).
audioobjectAudio attachment data, when present.
mentionsarray{ username, id, profile_pic_url } for each mentioned account.
tagsarrayUser tags attached to the post.

Example output

{
"id": "3412345678901234567",
"pk": "3412345678901234567",
"code": "C8xYzAbCdEf",
"url": "https://www.threads.com/@exampleuser/post/C8xYzAbCdEf",
"username": "exampleuser",
"profile_pic_url": "https://scontent.cdninstagram.com/โ€ฆ",
"caption": "Shipped the new dashboard today. Two years of work in one release ๐Ÿš€",
"caption_is_edited": false,
"taken_at": "2026-08-06T14:03:22Z",
"like_count": 18420,
"direct_reply_count": 612,
"repost_count": 941,
"quote_count": 184,
"like_and_view_counts_disabled": false,
"medias": [
{
"type": "image",
"url": "https://scontent.cdninstagram.com/โ€ฆ",
"width": 1080,
"height": 1350
}
],
"mentions": [
{
"username": "teammate",
"id": "987654321",
"profile_pic_url": "https://scontent.cdninstagram.com/โ€ฆ"
}
],
"tags": []
}

Illustrative values โ€” a live run returns current Threads data.


Usage examples

Several profiles in one run

{
"urls": ["zuck", "https://www.threads.com/@mosseri", "threads"],
"maxPostsPerProfile": 100
}

Deep history from one account

{
"urls": ["yourcompetitor"],
"maxPostsPerProfile": 2000
}

Weekly competitor monitoring

Save your competitor list as a Task with a modest cap, attach a weekly Schedule, and deduplicate on id to build a rolling content archive.

Find the highest-engagement posts

Export to CSV and sort by quote_count โ€” quotes indicate people adding their own commentary, which is a stronger signal than a plain repost.

Collect media assets

Run with a high cap, then filter medias for type: "video" or by width/height before downloading.


Run it from your own code

Python

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_API_TOKEN>")
run = client.actor("scraperx/threads-user-posts-scraper").call(run_input={
"urls": ["zuck"],
"maxPostsPerProfile": 100,
})
for post in client.dataset(run["defaultDatasetId"]).iterate_items():
print(post["taken_at"], post["like_count"], "|", (post.get("caption") or "")[:70])

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_API_TOKEN>' });
const run = await client.actor('scraperx/threads-user-posts-scraper').call({
urls: ['zuck'],
maxPostsPerProfile: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

cURL

curl -X POST "https://api.apify.com/v2/acts/scraperx~threads-user-posts-scraper/runs?token=<YOUR_APIFY_API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"urls":["zuck"],"maxPostsPerProfile":100}'

Integrations

Push posts into Google Sheets, Airtable, Slack, Make, Zapier, Google Drive or your own endpoint via webhooks, and use Schedules for continuous monitoring.


Pricing

Pay-per-event: a small Actor-start charge plus a charge per post row delivered to your dataset. You pay for posts, not run time. maxPostsPerProfile is the cost lever.

Current rates are on the Pricing tab of this Actor's page, and Apify shows an estimate before and during every run. If the run escalates to residential connections, that proxy traffic is billed separately by the platform.


Limits & good to know

  • Public profiles only. Private Threads accounts are not accessible.
  • maxPostsPerProfile is per profile, capped at 5,000. Five profiles at 500 each can return up to 2,500 rows.
  • Some accounts hide their counts. When like_and_view_counts_disabled is true, treat zero engagement values as unavailable rather than real.
  • Media URLs expire. Image and video URLs point at Meta's CDN โ€” download assets promptly if you need the files.
  • Threads limits feed depth, so very old posts may be unreachable regardless of your cap.
  • Replies to other people's posts and quote content are represented by counts here; this Actor returns a profile's own posts.
  • Leave proxy settings off unless you need a specific country or session โ€” the automatic escalation handles most cases.
  • Default run options are 4 GB memory and a 1-hour timeout โ€” raise the timeout for deep multi-profile runs.

FAQ

Do I need a Threads or Instagram account? No. The Actor reads public profile posts without logging in.

Can I paste plain usernames? Yes โ€” zuck works just as well as a full profile URL, and threads.com and threads.net links are both accepted.

Can it scrape private accounts? No. Only public profiles are accessible.

How many posts can I get? Up to 5,000 per profile, subject to how far Threads lets the feed be paged.

Do I get images and videos? Yes โ€” the medias array contains image URLs with dimensions and video URLs with their type.

Why are like counts zero for some posts? Check like_and_view_counts_disabled โ€” that account has hidden its engagement numbers.

Do I need a proxy? Not usually. The Actor escalates automatically when Threads restricts traffic.

Which export format should I use? JSON โ€” medias, mentions and tags are nested arrays. CSV works if you only need captions and engagement counts.


This Actor collects only publicly available Threads content โ€” the same posts any visitor can see without logging in. It does not log in, follow accounts, or access private data. Posts, images and videos remain the property of their authors, and usernames and profile pictures are personal data. Ensure your use complies with Threads' and Meta's terms, copyright, and GDPR or comparable regulations.

Support

Need reply threads, extra fields, or a custom Threads monitoring pipeline? Open an issue on the Issues tab of this Actor.