Threads Scraper – Posts, Profiles, Replies & Search avatar

Threads Scraper – Posts, Profiles, Replies & Search

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Threads Scraper – Posts, Profiles, Replies & Search

Threads Scraper – Posts, Profiles, Replies & Search

Scrape public Threads posts, profiles, replies and keyword searches without login. Export text, engagement, followers and media to JSON/CSV. Profile pagination where available.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

ninhothedev

ninhothedev

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Scrape Meta Threads (threads.com / threads.net) without login, cookies or API key. Get public profile posts with pagination where Threads makes continuation data available, profile info with follower count, bio, verified badge and bio links, replies of any post, and keyword / hashtag search results. Every post comes with likes, replies, reposts, quotes, images, videos, links, hashtags, mentions, quoted post and author details. Fast HTTP-only scraper (no browser) – $1 per 1,000 results plus the small Actor-start event described below.

What data can you extract?

FieldExampleNotes
typepostpost, reply or profile
id / code / url4006434140014576097 / DeZtp-TkQHhstable post ID + shortcode + permalink
textIntroducing Muse Wonder, …full post text
created_at2026-10-12T16:56:29ZISO 8601, UTC
like_count, reply_count, repost_count, quote_count, reshare_count1967, 333, 154, 58, 137engagement metrics
media_type, images, videoscarousel, […], […]full-resolution media URLs (all carousel items)
author_username, author_full_name, author_idzuck, Mark Zuckerberg
author_verified, author_followerstrue, 5749180followers for every author (also in search & replies)
is_reply, reply_to_username, parent_post_idtrue, zuck, 4006…reply / thread structure
quoted_post, quoted_post_url, is_repost, reposted_post_url{…}quoted post with text, author, likes
links, hashtags, mentions, link_preview_title["https://research.meta.ai/…"]extracted entities, topic tags
biography, bio_links, follower_countprofile rows only
source, source_type, scraped_at@zuck, profilewhere the row came from

The output schema is identical for all modes (profiles, posts, search), so you can merge datasets without mapping.

How to use

  1. Add profiles (zuck, @mosseri, https://www.threads.net/@nasa), post URLs and/or search queries (web scraping, #ai).
  2. Set Max posts per profile / search, optional date (onlyPostsNewerThan: 7 days, 2026-01-01) and minLikes filters.
  3. Click Start and download results as JSON, CSV, Excel or via API.
{
"profiles": ["zuck", "https://www.threads.com/@mosseri"],
"postUrls": ["https://www.threads.com/@zuck/post/DeZtp-TkQHh"],
"searchQueries": ["web scraping", "#ai"],
"maxPostsPerSource": 50,
"maxRepliesPerPost": 100,
"onlyPostsNewerThan": "30 days"
}

Output example

Post (real output, media URLs shortened):

{
"type": "post",
"id": "4006434140014576097",
"code": "DeZtp-TkQHh",
"url": "https://www.threads.com/@zuck/post/DeZtp-TkQHh",
"text": "Introducing Muse Wonder, our new family of frontier models with state of the art performance for personal and professional agentic work.",
"created_at": "2026-10-12T16:56:29Z",
"like_count": 1967,
"reply_count": 333,
"repost_count": 154,
"quote_count": 58,
"reshare_count": 137,
"media_type": "image",
"images": [
"https://scontent-iad6-1.cdninstagram.com/v/t51.82787-15/844965867_17991705567103224_8296143909108287920_n.webp?…"
],
"videos": [],
"author_username": "zuck",
"author_full_name": "Mark Zuckerberg",
"author_id": "63055343223",
"author_verified": true,
"author_followers": 5749184,
"author_profile_pic_url": "https://scontent-iad6-1.cdninstagram.com/v/t51.82787-19/825322135_17989325280103224_1252773933700107438_n.jpg?…",
"is_reply": false,
"reply_to_username": null,
"parent_post_id": null,
"quoted_post": null,
"quoted_post_url": null,
"is_repost": false,
"reposted_post_url": null,
"links": [],
"hashtags": [],
"mentions": [],
"link_preview_title": null,
"is_paid_partnership": false,
"biography": null,
"bio_links": null,
"follower_count": null,
"source": "@zuck",
"source_type": "profile",
"scraped_at": "2026-10-15T21:27:29Z"
}

Profile row:

{
"type": "profile",
"id": "63055343223",
"url": "https://www.threads.com/@zuck",
"author_username": "zuck",
"author_full_name": "Mark Zuckerberg",
"author_verified": true,
"follower_count": 5749184,
"biography": "Mostly superintelligence and MMA takes",
"bio_links": []
}

Pricing

Pay per result: $1.00 per 1,000 results (posts, replies or profile rows), plus an Actor-start event of $0.00005 per GB of memory, minimum one event. For example, 20 posts plus one profile row cost $0.021 in result charges, plus the start event. There is no monthly Actor rental. The live Pricing tab is authoritative. Use Max total results to limit output and set a maximum charge in Apify Console.

Use cases

  • Brand & competitor monitoring – track what brands, founders and competitors post and how it performs.
  • Influencer research – find creators by keyword/hashtag, compare follower counts and engagement.
  • Social listening & sentiment – collect replies to a post or campaign for analysis.
  • Lead generation – collect bio links and profiles of people discussing your niche.
  • Content research – find top-performing posts and formats in your industry.
  • Academic & market research – export public conversations into datasets.

Integrations

Use the results anywhere: Apify API, Make, Zapier, n8n, Google Sheets, Slack, webhooks, or schedule runs to monitor accounts daily.

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("ninhothedev/threads-scraper").call(run_input={"profiles": ["zuck"], "maxPostsPerSource": 50})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
if item.get("type") != "profile":
print(item.get("created_at"), item.get("like_count"), (item.get("text") or "")[:80])
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });
const run = await client.actor('ninhothedev/threads-scraper').call({ searchQueries: ['#ai'] });
const { items } = await client.dataset(run.defaultDatasetId).listItems();

FAQ

Do I need a Threads/Instagram account? No. Only public data visible to logged-out visitors is collected – no cookies, no login, no risk to your account.

Is scraping Threads legal? The scraper only collects publicly available data. Personal data is protected by laws such as GDPR – only scrape it for a legitimate purpose and consult a lawyer if unsure.

How many posts can I get per profile? The scraper paginates through the profile's timeline, so you can go well beyond the ~15 posts shown on the public web page. Complete history is not guaranteed. Private accounts may expose only public profile metadata; private posts are not collected.

Search limits? Threads shows logged-out visitors the top ~20 posts per keyword or hashtag. Use several specific keywords/hashtags for more coverage. Replies are paginated while the source supplies continuation data.

Do I need a proxy? No. The scraper connects directly and automatically falls back to Apify Proxy if Threads ever blocks a request. Partial results are always saved and every run writes a RUN_SUMMARY record.

Are media URLs permanent? Threads CDN links are signed and expire after some days – download media you need soon after the run.

Scheduling? Yes – use Apify Schedules to monitor profiles or keywords daily and send new posts to Sheets/Slack/webhooks.

Support? Open an issue on the Issues tab – include your run ID and a minimal input so the issue can be reproduced.