Threads Scraper - Posts, Profiles & Search avatar

Threads Scraper - Posts, Profiles & Search

Pricing

from $1.40 / 1,000 results

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

Threads Scraper - Posts, Profiles & Search

Search Threads by keyword or hashtag and collect posts, reposts, replies and public profiles with likes, replies and views. No login needed. Great for finding creators, tracking conversations, monitoring your brand and spotting trends early.

Pricing

from $1.40 / 1,000 results

Rating

0.0

(0)

Developer

Data WiKi

Data WiKi

Maintained by Community

Actor stats

0

Bookmarked

5

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Features

Limited permissions

Share

Threads Scraper - Posts, Profiles & Search is an Apify Actor that works as a threads search scraper for public Threads data. You enter keywords, hashtags, usernames or post links, and it saves each public post or profile as one row with text, engagement counts and author details that you can export.

  • Six modes in one form: User Posts, User Reposts, User Replies, Search, Find Profiles and Post by Link, picked with the mode field.
  • One flat table: every row is either a post or a profile, and all rows share the same 107 field names.
  • Rows arrive during the run: each username, keyword or link is saved as soon as it finishes, so the Output tab fills while the run is going.
  • No Threads account needed: the Actor reads what any visitor of threads.com can see.
  • Bulk input: up to 20 usernames, keywords or post links per run.

To start, open the Actor, pick a mode, add your targets and press Start.

๐Ÿ“Š What data can you extract from Threads?

The Actor does social media data extraction for Threads only. It returns post rows (record_type is post) and profile rows (record_type is profile). Used as a threads post scraper, it keeps the text, counters and media links of each post. You can export the rows as JSON, CSV, Excel, XML or HTML. The table lists the most used fields; the dataset schema holds all 107.

FieldDescriptionExample
post_url, post_codeLink and short code of the posthttps://www.threads.com/@northside.roasters/post/Dxample001
text_contentPost textNew roast is in...
created_at, created_at_timestampPublish time in UTC (ISO 8601 and Unix)2026-11-05T09:30:00+00:00
like_count, reply_count, repost_count, quote_count, share_countEngagement counters128
view_count, view_count_statusViews when Threads shows a number, and why it may be emptynot_checked
media_type, media_url, media_urlsPhoto, video, carousel, GIF or text, with media linksphoto
hashtags, topic_tag, mentions, urlsEntities found in or attached to the post["coffee"]
is_reply, reply_to_username, replied_to_textReply context (Replies mode)false
reposted_by_username, reposted_atWho boosted a post and when (Reposts mode)bean.and.brew
thread_position, is_requested_postPosition in the author's thread (Post by Link)1
username, display_name, is_verified, followers_countThe author or profile5400
bio, profile_tags, external_links, bio_linksProfile details["Coffee"]
emails, phonesContact details that the bio itself shows["hello@example.com"]
search_keyword, keyword_match, search_filterWhich keyword produced the row and whether the text matches ittrue
is_private, post_countProfile rows only214

๐Ÿ’ก Use cases for Threads data

  • Listen to a topic: run Search with search_filter set to recent for threads social listening, and read text_content, like_count and created_at. Schedule the run for threads brand monitoring. Add your company name to track brand mentions in public posts. The counters per row feed your own threads post analytics.
  • Discover creators: Find Profiles returns accounts with followers_count, bio and profile_tags, which supports influencer discovery in a niche. Add a place name such as a city to find creators on Threads near that place. The same list supports influencer research before you contact anyone.
  • Compare competitors: run User Posts for several accounts and compare the counters for social media competitor analysis. Put the counts next to followers_count for social media engagement analysis. Divide the counters by followers_count to work out a threads engagement rate yourself; the Actor returns the counts, not the rate.
  • Follow hashtags: search # terms to track hashtags on Threads over a date window. The hashtags and topic_tag columns show which tags a post uses. Use the results for hashtag research.
  • Read the replies: User Replies and the include_replies option of Post by Link return reply text for social media sentiment analysis. The Actor delivers the text and counts; scoring is up to you.
  • Build contact lists: profile rows list emails, phones and bio_links for social media lead generation, but only where a bio publishes them. The bio_links and external_links columns hold the threads bio links of each profile.
  • Archive a thread: Post by Link keeps the linked post and the author's own posts in thread order, so you can archive Threads posts you cite.
  • Know an audience: bio, profile_tags and followers_count support audience research on Threads. Each profile row shows the threads followers count in followers_count.

๐Ÿ› ๏ธ How to scrape data from Threads

These steps let you scrape Threads posts and profiles without writing code.

  1. Create an Apify account and open Threads Scraper - Posts, Profiles & Search in the Apify Store.
  2. Choose a Scrape mode.
  3. Fill the matching field: Usernames or profile URLs for the three user modes, Keywords or hashtags for Search and Find Profiles, or Post links for Post by Link. Use one entry per line, up to 20.
  4. Set Max results per username, keyword or link (10 or more).
  5. Click Start and watch the log for one line per finished target.
  6. Open the Output tab, then download the dataset in the format you need.

How to search Threads posts by keyword

Set the mode to Search posts by keyword and add your terms. A threads keyword search returns top or recent public posts, as set in search_filter, with optional Start date and End date. With a # term, Search works as a threads hashtag scraper. A threads hashtag search accepts the term with or without the # sign. To search Threads posts in one language first, use search_language. That field only moves posts in the chosen language to the top; it removes nothing.

How to find Threads profiles by keyword

Set the mode to Find Profiles and add a topic or a place such as austin coffee. As a threads profile finder it returns up to 100 accounts per keyword, with matching accounts and larger follower counts first. Use this threads account search when you do not know the usernames yet.

How to collect an account's posts and its thread

Set the mode to User Posts and list usernames or profile URLs. This threads user posts scraper mode returns each account's public posts, and Complete every post adds the rest of the author's thread.

How to read a Threads post and its thread

Set the mode to Post by Link and paste post links. Each link returns the post and the author's own posts in the same thread, up to the result limit (at most 100 per link). It works like a threads thread reader that saves the whole author thread as rows.

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

The Actor uses pay per event pricing. You pay one main_result event for every post or profile row saved to the dataset, plus one apify-actor-start event of $0.00005 per run (the Actor is set to 1024 MB of memory, which is one start event). Apify platform usage (compute) is billed on top of the events above.

Apify plan tierPrice per result (main_result)Per 1,000 results
Free$0.0020$2.00
Bronze$0.0018$1.80
Silver$0.0016$1.60
Gold, Platinum, Diamond$0.0014$1.40

Worked example: 500 rows at the Free tier cost 500 x $0.0020 = $1.00, and at the Gold tier 500 x $0.0014 = $0.70, plus $0.00005 for the start event. Targets that fail or are skipped save no rows and cost nothing. Set a maximum cost per run in the run options; the Actor stops cleanly at the limit and keeps every row stored so far. See the Pricing tab for current rates.

โฌ‡๏ธ Input

Only mode is required, and its default is user. The matching target field must not be empty: usernames for the user modes, keywords for Search and Find Profiles, post_links for Post by Link. Open the Input tab to see every option.

{
"mode": "search",
"keywords": ["coffee subscription"],
"max_posts": 10,
"search_filter": "recent",
"start_date": "7 days"
}
FieldDescription
modeuser, user_reposts, user_replies, search, profiles or post_link
usernamesNames, @names or profile URLs, up to 20
keywordsKeywords or hashtags, up to 20; in the user modes they only tag rows (keyword_match) and drop nothing
post_linksPost links, up to 20
max_postsCap per username, keyword or link, from 10 to 10,000 (Find Profiles and Post by Link stop at 100)
search_filter, search_languageSort order and preferred language, Search only
start_date, end_dateYYYY-MM-DD or relative values such as 7 days, counted in UTC
min_likesDrop posts with fewer likes
hydrate_postsOn by default; reads each post's own page for more thread and media detail, slower
include_profile_rowsUser modes: one extra profile row per account
include_own_replies, include_repliesAlso save the account's own replies (User Posts) or other people's replies (Post by Link)
enrich_authorsSearch and Post by Link: fill author details, one extra page load per author
filter_dates_all_modesApply the dates to the user modes and Post by Link as well
concurrency, request_timeout, max_retries, proxyConfigurationSpeed, patience and proxy settings

๐Ÿ’ก Keep max_posts low for a first test run, then raise it.

โฌ†๏ธ Output

The scraped results are shown as a dataset in the Storage tab. The table view is for convenience and doesn't show all the fields. The Output tab also offers ready-made views: Posts, Engagement, Media, Authors & profiles, Contacts, Replies, Reposts and Post by Link threads. A run summary is saved as SUMMARY in the key-value store.

Example post row for the input above (shortened, with illustrative values):

{
"record_type": "post",
"post_url": "https://www.threads.com/@northside.roasters/post/Dxample001",
"post_code": "Dxample001",
"text_content": "New roast is in and the subscription boxes ship Friday.",
"created_at": "2026-11-05T09:30:00+00:00",
"like_count": 128,
"reply_count": 14,
"repost_count": 6,
"quote_count": 2,
"share_count": 9,
"view_count": null,
"view_count_status": "not_checked",
"has_media": false,
"media_type": "text",
"hashtags": ["coffee"],
"is_reply": false,
"source_tab": "",
"username": "northside.roasters",
"is_verified": false,
"followers_count": 5400,
"search_keyword": "coffee subscription",
"keyword_match": true,
"search_keywords": ["coffee subscription"],
"search_filter": "recent"
}

Find Profiles output

With {"mode": "profiles", "keywords": ["austin coffee"], "max_posts": 10} a profile row looks like this (illustrative values):

{
"record_type": "profile",
"username": "bean.and.brew",
"display_name": "Bean and Brew",
"profile_url": "https://www.threads.com/@bean.and.brew",
"is_verified": false,
"followers_count": 12800,
"bio": "Austin coffee roasters. Orders: hello@example.com",
"profile_tags": ["Coffee"],
"emails": ["hello@example.com"],
"phones": [],
"bio_links": ["https://example.com/shop"],
"is_private": false,
"post_count": 214,
"search_keyword": "austin coffee",
"keyword_match": true
}

โš ๏ธ Limitations and error handling

  • Threads shows visitors only part of an account's history. The Actor reads every public page that answers without a login, so a run can return fewer rows than max_posts. The run summary then sets pagination_limited.
  • Search returns whatever public results Threads offers for a term. A smaller result than your limit is normal.
  • Private accounts and content hidden from visitors return nothing.
  • view_count is often empty because Threads does not show view counts to visitors. view_count_status says available, not_public_yet (very recent posts) or not_checked.
  • is_repost is always false; repost rows carry reposted_by_username instead.
  • emails and phones are filled only when the bio contains them.
  • max_posts below 10 is raised to 10, and Find Profiles and Post by Link never return more than 100 per keyword or link.
  • Find Profiles ignores the date fields.
  • If Threads rejects a request, the Actor retries, starts using a proxy and keeps it for the rest of the run.

Each target gets a status in the SUMMARY record:

StatusMeaningWhat to do
okTarget finishedOpen the dataset
request_failedThe page could not be loaded (network or block)Run again later or choose a proxy
not_found_or_privateAccount missing, private or hidden from visitorsCheck the username
no_tab_dataThe page showed no posts to a visitorTry a different mode or account
login_wallThe search page asked for a loginRun again later
invalid_linkNot a Threads post linkPaste a full post link
not_found_or_unavailablePost missing or unavailableCheck the link
errorUnexpected error for that targetRun it again alone

The run stops with a message if the mode is unknown or the matching target field is empty.

๐Ÿ”Œ Integrating Threads Scraper - Posts, Profiles & Search with other apps

You can start the Actor through the Apify API with the Actor ID data_wiki/threads-scraper-posts-profiles-search, run it on a schedule, and send finished datasets onward. See the API tab for ready-made code in JavaScript, Python and the CLI.

  • Apify schedules repeat a saved input daily or weekly, for example a Search run with start_date set to 7 days.
  • Webhooks call your own service when a run finishes.
  • Make and Zapier pass the rows to spreadsheets and other apps.
  • Other options are listed in the Apify integrations docs.

AI agents can start the Actor through the Apify MCP server.

๐Ÿ”— Other Threads scrapers by data_wiki

ActorWhat it extractsWhen to use it
Meta Threads Profile ScraperOne row per profile with followers, bio, topics and optional posts, replies, reposts or mediaYou already know the accounts and want profile-first results
Threads ScraperProfile cards, posts, search results and post URLs, with the replies under each post as extra rowsYou need the reply thread under every post or the Both sort option
Bluesky Scraper Enterprise GradePublic Bluesky posts, comments, profiles and followers by keyword, hashtag, handle or linkYour listening also covers Bluesky, a different network
Contact Details ScraperEmails, phone numbers and social links from any list of websitesYou collected website links from Threads bios and want contact details from those sites

Threads Scraper - Posts, Profiles & Search only collects data that users have made public on Threads and does not extract private data. Results can still contain personal data such as names, bios, emails or phone numbers from bios. Collect it only with a legitimate reason, check the Threads terms and rules such as the GDPR, and consult a lawyer if you are unsure. Apify explains the topic in Is web scraping legal? and What is ethical web scraping?. The public site is Threads.

โ“ FAQ

What can the threads search scraper collect?

The threads search scraper collects public posts, reposts, replies and profiles, depending on the mode. Each row has text, engagement counters, media links and author details.

Do I need to log in to Threads?

No. The Actor reads only what a visitor of threads.com sees, so no login is needed, and private content is not collected.

Can I search Threads without an account?

Yes. The Actor reads public results, so no Threads account is needed. You still need an Apify account to run it.

Which Threads Actor should I use?

Use Threads Scraper - Posts, Profiles & Search when you start from keywords, hashtags or post links, or want reposts, replies and bio contact details; it has six modes and 107 flat fields. The reply-thread Threads Actor has four modes, 37 fields, the replies under each post and a Both sort order. The profile-first Threads Actor returns one row per profile, optionally with a feed that includes media, and charges per saved item.

Is there a Threads scraper API?

You can run this Actor through the Apify API and read its dataset the same way. It is not an official Threads API, and it needs no Threads token.

How do I get the data out?

Threads data export works from the Storage tab in JSON, CSV, Excel, XML or HTML, or through the API. To export Threads posts on a schedule, save the input as a Task and attach a schedule. Choose CSV when you want to export Threads data to CSV for a spreadsheet.

Why did I get fewer posts than my limit?

Threads shows only part of an account's history to visitors, and a search returns what is public. The run summary tells you when this happened.

Can it read replies and reposts?

Yes. The User Replies mode works as a threads replies scraper for an account, and the User Reposts mode lists what an account boosted, with the original post. Threads reposts rows carry reposted_by_username and reposted_at.

Can I use it from code?

Yes. Call the Apify API with the input fields shown above. A Threads data scraper run returns the same rows as the Console.

Can I use it through an MCP server?

Yes. Add the Apify MCP server to your AI client, search for this Actor and call it with the same input.

๐Ÿ’ฌ Your feedback

Found a bug or need a field added? Open an issue from the Issues tab of this Actor. Need a custom solution? Contact hello.datawiki@gmail.com.