Threads Scraper - Public Posts by Username avatar

Threads Scraper - Public Posts by Username

Pricing

from $13.50 / 1,000 items

Go to Apify Store
Threads Scraper - Public Posts by Username

Threads Scraper - Public Posts by Username

Reads public posts from Threads profiles by username. One row per post with its text, publish time, post code and URL, plus the author's username and profile URL. Add several usernames per run to follow creators, brands or competitors over time. No Threads account or login needed.

Pricing

from $13.50 / 1,000 items

Rating

0.0

(0)

Developer

ParseForge

ParseForge

Maintained by Apify Partner

Actor stats

0

Bookmarked

19

Total users

2

Monthly active users

4 days ago

Last modified

Categories

Share

ParseForge

Threads Posts Scraper: Post URLs, Profiles, Replies & Media Download

Scrape Threads posts from any post URL or username: 222 posts from 12 profiles and one post URL came back in 9 seconds in our last test run. Every post carries its text, likes, replies, reposts, quotes and shares, the image and MP4 video download URLs, mentions, links, and the author's follower count. No login, no Threads account, no Meta API app. Export to CSV, JSON, Excel, or XML.

The Threads API only returns your own account's posts and needs a Meta app review. This Actor reads the public Threads pages that anyone can open, so you can paste a post link or a handle and get one clean row per post, in one fixed schema.

Who uses itWhat they scrape Threads for
Social media managersThreads analytics for their own brand and for competitors: likes, replies, reposts per post
Creators and agenciesThreads download of a post's video and images from its link, with the caption and stats
Market researchersWhat brands, newsrooms, and creators post on Threads this week, and what gets engagement
PR and comms teamsThe top replies under a post, to read how people reacted to an announcement
Data teamsThreads datasets with full text and engagement for sentiment, topic, and trend models

What it does

The Actor takes Threads post URLs and usernames, alone or together, and returns one flat row per post.

  • 🔗 Post URLs: threads.com or threads.net, in the /@user/post/CODE or /t/CODE form. Each link returns the post and the author's own thread continuation (the posts they chained under it).
  • 👤 Usernames and profile links: zuck, @mosseri, or https://www.threads.com/@nytimes. Each profile returns its latest public posts.
  • 💬 Replies: turn on includeReplies and every post URL also returns the replies Threads shows logged-out visitors, usually the top 10.
  • 📊 Engagement: likes, replies, reposts, quotes, and shares on every row.
  • 🎬 Media download: every image URL and every MP4 video URL, carousels included, plus a thumbnail in imageUrl.
  • 🪪 Author: handle, name, verified badge, avatar, bio, and follower count.
  • 🧷 Context: post type (post, thread continuation, reply), the handle it replies to, the parent post, the quoted post, mentions, links, edited and paid-partnership flags.

What you can do with Threads data

📈 Track Threads engagement for any account.

Add your brand and three competitors as usernames and schedule the run daily with postedAfter set to yesterday. Each run returns only the new posts with their like, reply, and repost counts.

🎬 Download Threads videos and images from a link.

Paste post URLs and read videoUrls and imageUrls: direct MP4 and JPG links for every item in the post, carousels included, next to the caption and stats.

💬 Read the reaction to a post.

Paste the post URL, turn on includeReplies, and get the post, its thread continuation, and the top replies with their own likes and authors.

📚 Build Threads datasets.

Collect posts from dozens of creators or newsrooms with full text, media, and engagement for sentiment, topic, and trend analysis.

Why choose this scraper

What you get
Post URLs and usernames in one runMix post links, handles, and profile links. Every row has the same 32 fields.
Media download linksEvery image and MP4 video URL, carousels included, not just a thumbnail.
Replies on requestincludeReplies adds the top replies under each post URL as their own rows.
Author followers on every rowFollower count and bio sit next to each post, so you can compare engagement against audience size.
Fast and lightReads the public page directly without a browser. A dozen profiles finish in seconds.
No loginNo Threads account, no cookies, no Meta app.

How it compares

All four scrapers below read public Threads posts without a login. This one is the only one that takes post URLs and usernames in the same run and returns media download URLs and the author's follower count on every row. Two of them also search Threads by keyword, which this Actor does not do. The comparison uses each rival's public input options on September 24, 2026.

FeatureParseForgefuturizerush/meta-threads-scraperautomation-lab/threads-scraperlogical_scrapers/threads-post-scraper
Post URLs as inputYesNoNoYes
Usernames as inputYesYesYesNo
Both in one runYesNoNoNo
Replies to a postYes, top repliesYes, in a separate modeNoNo
Keyword searchNoYesYesNo
Date filterPosted afterSearch mode onlyPosted after and beforeNo

What a Threads post looks like

One row from a verified run on September 24, 2026:

{
"imageUrl": "https://instagram.fcor11-2.fna.fbcdn.net/v/t51.71878-15/774165933_1518295010049998_4420746911629446089_n.jpg?stp=dst-jpg_e15_tt6&_nc_cat=103&ig_cache_key=Mzk2MjEzNTMzNzYwNjY3NDM0Mw%3D%3D.3-ccb7-5&ccb=7-5&_nc_sid=58cdad&oe=6ABB2F99",
"postUrl": "https://www.threads.com/@mkbhd/post/Db8VRjmEXen",
"postCode": "Db8VRjmEXen",
"postId": "3962135337606674343",
"postType": "post",
"text": "My beef with the new Pixel 11\nFull hands-on with everything else: https://youtu.be/o4SSoURPODY",
"postedAt": "2026-08-12T14:09:26.000Z",
"likeCount": 975,
"replyCount": 36,
"repostCount": 29,
"quoteCount": 0,
"reshareCount": 7,
"mediaType": "Video",
"username": "mkbhd",
"authorFullName": "Marques Brownlee",
"authorIsVerified": "Yes",
"authorFollowerCount": 1703085,
"authorBio": "I promise I won't overdo the (text) filters.",
"authorProfilePicUrl": "https://instagram.fcor11-2.fna.fbcdn.net/v/t51.82787-19/587817368_18545874469015447_3745195562993032801_n.jpg?stp=dst-jpg_s150x150_tt6&oe=6ABB0FE7",
"profileUrl": "https://www.threads.com/@mkbhd",
"replyToUsername": "N/A",
"parentPostUrl": "N/A",
"quotedPostUrl": "N/A",
"isEdited": "No",
"isPaidPartnership": "No",
"mentions": [],
"links": ["https://youtu.be/o4SSoURPODY"],
"imageUrls": ["https://instagram.fcor11-2.fna.fbcdn.net/v/t51.71878-15/774165933_1518295010049998_4420746911629446089_n.jpg?stp=dst-jpg_e15_tt6&oe=6ABB2F99"],
"videoUrls": ["https://instagram.fcor11-2.fna.fbcdn.net/o1/v/t16/f2/m84/AQNmijBvzWeiU5oqtrZk4qFF9DvVm3GUwG53y1HhshTLGA9lj5iIZPVvhpExzonXONX6M_CFGAG-eHiYVSmXiaXw2hI2nOHoKjcK9TY.mp4?_nc_cat=103&oe=6AB7220D"],
"source": "mkbhd",
"scrapedAt": "2026-09-24T15:52:10.932Z",
"error": null
}

Media URLs are shortened here for reading; the dataset holds the full signed links. Reply rows carry "postType": "reply", the handle they answer in replyToUsername, and the post they sit under in parentPostUrl.

Configure the run

Mix post URLs and usernames in one run. The Input tab lists every option.

Download a post with its thread continuation and top replies:

{ "postUrls": ["https://www.threads.com/@zuck/post/Ddpj4YZkd3P"], "includeReplies": true }

Track the new posts of three accounts every day:

{ "usernames": ["mosseri", "nytimes", "https://www.threads.com/@mkbhd"], "postedAfter": "2026-09-23", "maxItems": 100 }

Pricing

Pay-per-event: $0.018 per post row, dropping to $0.0135 at higher volume. You pay only for rows written to your dataset; inputs that fail come back as error rows and are never billed.

Results collectedApproximate cost
100$1.80
1,000$18.00
10,000$180.00

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the Threads Posts Scraper.
  3. Paste postUrls, usernames, or both, turn on includeReplies if you want replies, and click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab, or schedule the run to track accounts over time.

Run it programmatically through the Apify API or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live Threads data through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

$claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/threads-search-scraper"

Then prompt it in plain language:

  • "Get the last posts from @mosseri and @zuck on Threads and rank them by likes."
  • "Read this Threads post and its top replies and summarize how people reacted."
  • "Give me the video download link of this Threads post."

Copy this into ChatGPT, Claude, or Cursor to start:

Use the Apify Actor "parseforge/threads-search-scraper" to scrape Threads posts. Input: { "postUrls": ["<https://www.threads.com/@user/post/CODE>"], "usernames": ["<handle>"], "includeReplies": <true|false>, "postedAfter": "<YYYY-MM-DD>", "maxItems": <n> }. Rows come back with postUrl, text, postedAt, likeCount, replyCount, repostCount, quoteCount, mediaType, imageUrls, videoUrls, username, and authorFollowerCount. Call it with the ApifyClient and my APIFY_TOKEN.

Troubleshooting

Why did a username return an error row?

The handle does not exist on Threads, the profile is private, or it was typed with a typo. Threads sends logged-out visitors to its login page in all three cases, so the row says so instead of returning an empty profile. Check the handle by opening https://www.threads.com/@handle.

Why did a post URL return an error row?

The post was deleted or the link is incomplete: Threads answers a missing post with its home page, and the row says the post does not exist or was deleted. It is not billed.

Why did a profile return "is private" or "has no public posts"?

Threads shows logged-out visitors nothing from private profiles, and some accounts have not posted yet. The row tells you which, and it is not billed.

Why do I get about 15 posts per profile?

Threads shows logged-out visitors the latest 15 or so threads of a profile, plus any posts the author chained under them. That is the public ceiling for every no-login Threads scraper. For older posts, paste their post URLs.

Why did I get fewer replies than the post shows?

Threads shows logged-out visitors the top replies, usually 10, not the full list. replyCount still reports the true total, so you know your coverage.

Why does a video or image link no longer open?

Threads media links are signed and expire after a few days. Download the files soon after the run, or run again to get fresh links.

FAQ

QuestionAnswer
Do I need a Threads account or cookies?No. It reads the public pages anyone can open.
How is this different from the Threads API?The official API returns only your own account's data and needs a Meta app review. This reads any public post or profile.
Can I download Threads videos?Yes. videoUrls holds the direct MP4 link of every video in the post, carousels included.
Which URL formats work?threads.com and threads.net, as /@user/post/CODE or /t/CODE. Profile links work in usernames.
Does it scrape replies?Yes, the top replies under each post URL, with includeReplies.
Does it search Threads by keyword?No. It takes post URLs and usernames.
How many results per run?Free plan: 10. Paid: up to 1,000,000, bounded by what the public pages show.
Can I get only new posts?Yes. Set postedAfter to the date of your last run.
What happens to a bad input?It becomes an error row with the reason, and it is not billed.
Is this an official Meta product?No. It is unofficial and reads only public Threads data.

Browse the full ParseForge collection for more scrapers.

🆘 Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Meta Platforms, Inc. or Threads. It collects only publicly available Threads data. You are responsible for using the data in compliance with Meta's terms and applicable laws, including GDPR, CCPA, and PIPL. Do not use it to identify, profile, or target individuals.