Threads Scraper - Posts, Profiles & Search avatar

Threads Scraper - Posts, Profiles & Search

Pricing

from $1.56 / 1,000 threads posts

Go to Apify Store
Threads Scraper - Posts, Profiles & Search

Threads Scraper - Posts, Profiles & Search

[$3.00 / 1K] Scrape public Meta Threads posts, profiles, keyword search results, engagement metrics, media, hashtags, mentions, and timestamps without a Threads login.

Pricing

from $1.56 / 1,000 threads posts

Rating

5.0

(1)

Developer

WebData Labs

WebData Labs

Maintained by Community

Actor stats

2

Bookmarked

29

Total users

9

Monthly active users

3 days ago

Last modified

Share

Extract public Meta Threads posts, profiles, and keyword search results without a Threads login. Get clean structured rows for content monitoring, creator research, PR analysis, and data pipelines.

Use the Actor from Apify Console, schedule recurring runs, download JSON/CSV/Excel, or call it through the Apify API and MCP.

โœ… What you get

  • Public profile metadata with exact follower counts when Threads exposes them
  • Deep post history per profile - hundreds of posts, not the handful the public page renders
  • Public posts with full text, publication timestamps, and canonical URLs
  • Likes, direct replies, reposts, and quote counts
  • Images, videos, carousel items, dimensions, and video thumbnails
  • Parsed hashtags, mentions, and absolute URLs
  • Keyword search results with the source query attached to every row
  • Consistent profile and post result types in one dataset

๐Ÿ”Ž Why use this Threads scraper

The public Threads profile page renders only a handful of posts, which is where most Threads scrapers stop. This Actor follows the same paginated feed the site itself uses, so maxPosts is a number you actually reach: a single profile returns hundreds of posts going back months.

It runs over plain HTTP with no browser, so runs are fast and cheap, and a recursive extractor normalizes Threads' deeply nested payloads into stable fields even when Meta reshuffles the wrapper paths.

The result is ready for:

  • Brand mention monitoring
  • Competitor and executive account tracking
  • Creator and influencer discovery
  • Campaign and content research
  • Academic NLP datasets built from public content
  • Scheduled exports to Sheets, data warehouses, or webhooks

๐Ÿ“Š What data you get

FieldTypeDescription
typestringprofile or post
usernamestringThreads account username
fullNamestringPublic display name
followerCountnumberExact public follower count when available
textstringFull public post text
datestringISO 8601 publication time
likeCountnumberVisible likes
replyCountnumberVisible direct replies
repostCountnumberVisible reposts
quoteCountnumberVisible quote posts
mediaarrayNormalized image/video attachments
hashtagsarrayHashtags parsed from the post text
mentionsarrayMentioned usernames
urlstringCanonical Threads profile or post URL
sourceUsernamestringInput username that produced the row
searchQuerystringInput keyword that produced a search row
scrapedAtstringISO 8601 collection time

๐Ÿ‘ฅ Who it's for

  • Social media and brand teams monitoring public conversations
  • PR agencies tracking spokespeople, journalists, and campaign mentions
  • Researchers collecting public Threads data for analysis
  • Data teams feeding dashboards, warehouses, and AI workflows
  • Developers who need a simple Threads scraper API instead of maintaining browser extraction

โš™๏ธ How to scrape Threads

  1. Open the Actor in Apify Console.
  2. Choose Profiles, Profile posts, or Keyword search.
  3. Enter up to 20 usernames/profile URLs or up to 20 search queries.
  4. Set maxPosts to how many posts per seed you want. Start at 5 to check the output shape cheaply.
  5. Run the Actor and inspect the dataset. Network routing is managed automatically.
  6. Download results or connect a schedule, webhook, Make, Zapier, or API client.

๐Ÿ“ฅ Input

Profile posts example:

{
"mode": "posts",
"usernames": ["zuck", "mosseri"],
"maxPosts": 100,
"includeProfile": true
}

Keyword search example:

{
"mode": "search",
"searchQueries": ["artificial intelligence", "product launch"],
"maxPosts": 25,
"postedAfter": "2026-08-01T00:00:00Z"
}
InputTypeDefaultDescription
modestringpostsprofile, posts, or search
usernamesstring[]-Usernames or profile URLs for profile/posts mode. Required unless mode is search
searchQueriesstring[]-Keywords for search mode. Required when mode is search
maxPostsinteger25Maximum post rows per username/query, 1 to 500. Posts mode pages until it hits this number or the profile runs out; keyword search is one page of about 20
postedAfterstring-Inclusive ISO 8601 lower date bound. In posts mode the Actor stops paging once it passes this date
postedBeforestring-Exclusive ISO 8601 upper date bound
includeProfilebooleantrueAdd one profile row in posts mode

usernames and searchQueries have no defaults on purpose: an empty one fails the run with a clear message instead of quietly scraping something you did not ask for and billing you for it.

๐Ÿ“ค Output

{
"type": "post",
"postId": "3912345678901234567",
"code": "ExampleCode1",
"username": "exampleuser",
"fullName": "Example Creator",
"isVerified": true,
"text": "A sample public post about a product launch.",
"likeCount": 420,
"replyCount": 35,
"repostCount": 18,
"quoteCount": 7,
"mediaType": "image",
"media": [
{
"type": "image",
"url": "https://example.com/media.jpg",
"thumbnailUrl": null,
"width": 1080,
"height": 1350
}
],
"hashtags": ["launch"],
"mentions": [],
"date": "2025-01-15T12:00:00.000Z",
"url": "https://www.threads.com/@exampleuser/post/ExampleCode1",
"sourceUsername": "exampleuser",
"searchQuery": null,
"scrapedAt": "2025-01-15T12:05:00.000Z"
}

Download the dataset as JSON, CSV, Excel, XML, RSS, or HTML, or read it through the Dataset API.

๐Ÿ’ต How much does it cost to scrape Threads?

The Actor uses pay-per-result pricing with no separate Actor-start charge:

  • Post result: $3.00 per 1,000 on the Free tier
  • Profile result: $5.00 per 1,000 on the Free tier

A run with 100 posts and one profile costs about $0.305 in event charges on the Free tier. Higher Apify plans receive lower per-result prices. You pay only for rows you receive, so use maxPosts and the date filters to size a run - a postedAfter window stops paging early rather than fetching history you would discard.

๐Ÿ” Run it on the Apify platform

Schedule daily competitor checks, send datasets to Google Sheets, trigger Slack/webhook alerts, or call the Actor from Node.js, Python, cURL, and MCP. Every row includes its input source so multi-seed runs remain easy to split downstream.

โš ๏ธ Limits and caveats

  • Posts mode paginates deep, typically well past 100 posts per profile, but Threads still decides where a profile's public history ends. maxPosts is a ceiling, not a completeness guarantee.
  • Keyword search does not paginate. Threads exposes a single page of public search results, roughly 20 posts per query, and raising maxPosts will not change that. Use posts mode when you need volume.
  • Search results are ranked by Threads and may not be exhaustive or chronological.
  • Media CDN URLs can expire. Persist permitted assets promptly if your workflow needs long-term copies.
  • Deep profile runs make one request per page of results, so a 500-post seed takes noticeably longer than a 25-post one.
  • viewCount is only populated when Threads attaches a public view count to a post, which is rare on logged-out pages.
  • Meta can change its public web payloads without notice. Report a failed public URL in the Issues tab so the extractor can be updated.
  • Only collect and use public data in accordance with applicable law, privacy rules, and Meta's terms.

Combine these sources into a broader brand-monitoring pipeline covering social posts, communities, and owned websites.

โ“ FAQ

Does this Threads scraper require login?

No. It reads only data exposed on public Threads web pages without a Threads or Instagram account.

Can it scrape private accounts?

No. The Actor does not bypass privacy controls or login walls.

Why did I get fewer posts than maxPosts?

In posts mode, the account simply may not have that many public posts - the run log reports whether the profile was exhausted. Date filters reduce the set further. In search mode this is expected: Threads publishes only one page of public search results per query, about 20 posts, so maxPosts above that has no effect.

Is this an official Threads API?

No. It is an independent public-web scraper running on Apify. It is not affiliated with or endorsed by Meta.

Can I monitor accounts automatically?

Yes. Create an Apify Task with your input, schedule it daily or weekly, and deliver each dataset through an integration or webhook. Deduplicate downstream by postId.

๐Ÿ› ๏ธ Support

Open the Actor's Issues tab and include the run URL, sanitized input, public Threads URL, expected behavior, and actual behavior. Do not include account credentials or private personal data.