Threads Scraper — Posts, Profiles, Search & Monitoring avatar

Threads Scraper — Posts, Profiles, Search & Monitoring

Pricing

from $1.50 / 1,000 post results

Go to Apify Store
Threads Scraper — Posts, Profiles, Search & Monitoring

Threads Scraper — Posts, Profiles, Search & Monitoring

Scrape public Threads posts, profiles, replies, search and media without login. Mix targets in one run, monitor new or changed posts, and pay only for delivered results.

Pricing

from $1.50 / 1,000 post results

Rating

0.0

(0)

Developer

Automation Tech

Automation Tech

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Scrape public Threads data without login, cookies, or a Meta API key.

Paste usernames, post URLs, hashtags, keywords, or account searches into one run and get clean, structured profiles, posts, exposed replies, media, engagement data, and monitoring updates.

No login · Mixed targets · Persistent monitoring · Pay only for delivered results

What you can do

  • Track competitor and creator posts
  • Monitor brands, keywords, and hashtags
  • Discover Threads accounts by topic
  • Export public posts, profiles, replies, repost feeds, and media metadata
  • Detect new posts and engagement changes on scheduled runs
  • Feed clean JSON/CSV/Excel data into dashboards, automations, AI agents, or MCP workflows

Quick start

For most runs, this is enough:

{
"targets": ["@openai"]
}

Mix different target types in the same run:

{
"targets": [
"@openai",
"#artificialintelligence",
"AI agents",
"accounts:AI researchers",
"replies:@instagram"
],
"maxResults": 250
}

The Actor detects each target type automatically, combines the results, removes duplicates, and preserves where each record came from.

Ready-made Tasks

The Actor includes reusable Apify Tasks for the most common workflows:

  • Profile & Recent Posts — scrape a public profile and recent posts
  • Keyword & Hashtag Research — research topic and hashtag results in one run
  • Account Discovery — find public Threads accounts by topic
  • Competitor / Creator Monitor — return new posts and engagement changes across repeated runs
  • Keyword & Hashtag Monitor — track topic results with persistent state
  • Replies & Reposts Research — inspect public replies and repost feeds

Each Task uses the latest Actor build, conservative first-run limits, a maximum charge guard, and editable example inputs. These Tasks are published as public Example tasks and have their own Store landing pages.

What you can scrape

  • Public profile metadata
  • Recent public profile posts
  • Single public post pages
  • Replies exposed in public post/profile payloads
  • Public profile replies feeds
  • Public profile reposts feeds
  • Keyword search
  • Hashtag search
  • Account/user search
  • Images, videos, and carousel metadata when exposed
  • Public engagement counters when exposed
  • New and changed records across scheduled monitoring runs

Missing upstream values stay null; the Actor does not invent counts or relationship data.

Target syntax

InputMeaning
@openaiProfile + recent public posts
openaiProfile
Threads profile URLProfile + recent public posts
Public /post/ URLSingle post page
#AIHashtag search
AI agentsKeyword search
keyword:AIExplicit one-word keyword search
accounts:AI researchersAccount/user search
replies:@openaiPublic profile replies feed
reposts:@openaiPublic profile reposts feed

You can provide up to 100 mixed targets plus optional account-search queries in one run.

Turn any scrape into a monitor

Run the same targets on a schedule and return only what is new or changed:

{
"targets": ["@openai", "keyword:OpenAI"],
"monitor": true,
"stateKey": "openai-monitor",
"emitMode": "new_and_changed"
}

The first run builds the baseline. Future runs can emit:

  • new — posts not previously delivered
  • changed — engagement changes on previously seen posts
  • new_and_changed — both
  • all — every eligible record

Monitoring state is bounded and checkpointed from delivered records, so posts dropped by the result cap are not incorrectly marked as already seen.

Clean output for mixed workflows

Every post/reply follows the same versioned shape:

{
"recordType": "post",
"id": "...",
"url": "https://www.threads.com/@user/post/...",
"text": "...",
"publishedAt": "2026-09-23T00:00:00.000Z",
"author": {
"id": "...",
"username": "user",
"displayName": "User",
"verified": true
},
"engagement": {
"likes": 100,
"replies": 4,
"reposts": 2,
"quotes": 1,
"shares": null,
"views": null
},
"media": [],
"isReply": false,
"isRepost": false,
"isQuote": false,
"sourceTypes": ["profile", "keyword"],
"matchedQueries": ["AI"],
"matchedProfiles": ["openai"],
"scrapedAt": "2026-09-23T00:01:00.000Z",
"schemaVersion": "2.0.0"
}

One post can be discovered through several targets. The Actor deduplicates by stable Threads ID when possible, then merges useful provenance instead of charging for intentional duplicates.

Dataset views are included for:

  • Results
  • Posts
  • Profiles
  • Replies
  • Changes

Raw nested JSON remains available for API users, while the common columns are flattened for CSV/Excel-friendly views.

Filters and sorting

Optional filters include:

  • date range
  • minimum/maximum likes
  • minimum replies or reposts
  • verified authors only
  • include/exclude authors
  • include/exclude keywords
  • hashtags and mentions
  • media type
  • replies only / root posts only
  • include/exclude reposts and quotes

Sort by newest, oldest, likes, replies, reposts, or combined engagement.

Pricing

This Actor uses pay-per-event billing.

You are billed for result rows actually delivered to the dataset, not for internal HTTP pages, retries, duplicate discoveries, filtered records, or empty results.

Current event prices are shown in the Actor's Pricing tab.

This makes scheduled monitoring especially predictable: a run that finds very little new data also produces very little billable output.

Reliability

The Actor is HTTP-first to keep runs lightweight:

  1. Fetch public logged-out Threads pages.
  2. Discover structured payloads by record shape instead of one brittle JSON path.
  3. Follow public same-site continuation URLs when Threads exposes usable ones.
  4. Retry transient 408/425/429/5xx failures with bounded backoff.
  5. In auto proxy mode, escalate direct → datacenter → residential only when needed.
  6. Preserve valid partial results if a later request fails.

Every run writes a machine-readable RUN_SUMMARY with discovery counts, duplicates, filters, result-cap drops, retries, failed/partial targets, monitoring counters, and delivered rows.

Practical limits

Threads controls what logged-out visitors can see. This release intentionally does not overclaim what the public surface provides:

  • Profile pages expose a recent public post window; complete profile history is not claimed.
  • Post pages can expose replies, but exhaustive recursive reply-tree pagination is not claimed.
  • Reply depth is limited by relationship metadata Threads exposes publicly.
  • Search depth and ordering depend on the public Threads search surface; exhaustive search is not claimed.
  • Some public fields may be absent and therefore remain null.
  • Browser/login fallback is not required for the verified surfaces in this release.

If a target becomes partial or fails, the run summary reports it instead of silently pretending the scrape was complete.

API and automation

Run the Actor through the Apify API, schedules, Tasks, integrations, or MCP-compatible workflows. Results are stored in the default dataset and can be exported as JSON, JSONL, CSV, or Excel.

For low-noise monitoring, schedule the same input with a stable stateKey and emitMode: "new" or "new_and_changed".

Development verification

Repository checks:

npm ci
npm run typecheck
npm test
THREADS_LIVE_TESTS=1 npm test

The normal suite is network-free. Live tests validate public Threads shapes and invariants rather than volatile hardcoded counts.


This is an unofficial public-data tool and is not affiliated with Meta or Threads.