Threads Related Posts Scraper avatar

Threads Related Posts Scraper

Pricing

Pay per event

Go to Apify Store
Threads Related Posts Scraper

Threads Related Posts Scraper

🧵 Map the Related threads recommendations below public Threads posts. Export source-to-related edges, authors, text, links, domains, timestamps, and engagement.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Turn the Related threads section below public Threads posts into a structured recommendation graph.

Provide one or more public post URLs and receive the related post URL, author, timestamp, text, outbound link, visible engagement, and the exact source→related edge.

No Threads login is required for publicly visible recommendations.

Threads Related Posts Scraper opens public post pages and waits for the separately labeled Related threads section.

It extracts only those recommendation cards.

It does not mix ordinary replies, profile posts, or search results into the dataset.

Each row preserves the source post that caused the recommendation to appear.

That provenance makes changes measurable across scheduled runs.

A recommendation is different from a keyword match.

It shows which conversations Threads places next to a specific source post for an anonymous session.

Use the data to:

  • map adjacent conversations;
  • discover creators and publishers;
  • monitor recommendation changes;
  • audit outbound domains;
  • seed content research;
  • build bounded recommendation graphs.

Who is it for?

Social-listening teams

Track conversations that Threads recommends beside important posts.

Creator and influencer researchers

Discover accounts appearing in recommendation cards without manually browsing every seed.

Recommendation-system auditors

Store directed edges and compare snapshots over time.

Content discovery pipelines

Feed related post text, authors, and domains into tagging, enrichment, or review workflows.

Publishers and brand analysts

See which articles and domains surface near a public conversation.

What data can you extract?

FieldDescription
sourcePostUrlPublic post where the recommendation appeared
relatedPostUrlResolved recommended Threads post URL
edgeKeyDeterministic source→related edge
sourceDepthDepth of the source in a recursive crawl
authorUsernameRelated post author username
authorProfileUrlPublic Threads profile URL
publishedAtMachine-readable rendered timestamp when available
relativeTimeVisible time such as 4h
textRelated post text or snippet
outboundUrlDecoded external link when present
outboundDomainExternal hostname for grouping
likeCountVisible likes when rendered
replyCountVisible replies when rendered
repostCountVisible reposts when rendered
scrapedAtUTC extraction timestamp

Engagement values are nullable because Threads may hide an individual count.

  1. Open a public Threads post in your browser.
  2. Copy its /@username/post/code URL.
  3. Add one or more URLs to Public Threads post URLs.
  4. Keep Recommendation depth at 0 for a direct snapshot.
  5. Choose a global result limit.
  6. Start the Actor.
  7. Export the dataset as JSON, CSV, Excel, or another Apify format.

Input

{
"startUrls": [
{ "url": "https://www.threads.com/@zuck/post/CuP48CiS5sx" }
],
"maxItems": 10,
"maxDepth": 0
}

startUrls

Required list of public Threads post URLs.

Legacy threads.net links are normalized to threads.com.

Profile, search, tag, and non-Threads URLs are outside this Actor's scope.

maxItems

Global maximum number of recommendation-edge rows.

The default is 25 and the maximum is 1,000.

The limit applies across every seed and recursion level.

maxDepth

Use 0 for recommendations directly below supplied seeds.

Use 1 to also visit related posts and extract their recommendations.

Use 2 only for a broader, still-bounded graph.

proxyConfiguration

Optional Apify Proxy or custom proxy settings.

Try a proxy when Threads repeatedly returns a transient error shell from your run location.

Output example

{
"sourcePostUrl": "https://www.threads.com/@zuck/post/CuP48CiS5sx",
"relatedPostUrl": "https://www.threads.com/@thisisanfield/post/DbGlnp4mjdC",
"edgeKey": "https://www.threads.com/@zuck/post/CuP48CiS5sx->https://www.threads.com/@thisisanfield/post/DbGlnp4mjdC",
"sourceDepth": 0,
"authorUsername": "thisisanfield",
"authorProfileUrl": "https://www.threads.com/@thisisanfield",
"publishedAt": "2026-07-22T17:00:00.000Z",
"relativeTime": "12h",
"text": "NEW: Andoni Iraola is right to sound the alarm over Liverpool’s squad depth",
"outboundUrl": "https://lfc.thisisanfield.com/example",
"outboundDomain": "lfc.thisisanfield.com",
"likeCount": null,
"replyCount": null,
"repostCount": null,
"scrapedAt": "2026-07-23T05:00:00.000Z"
}

Values change because recommendations and engagement are live.

Direct snapshots versus recursive maps

A depth-0 run answers: “What does Threads recommend beside these seeds now?”

A depth-1 run answers: “What appears beside the seeds and beside their first-hop recommendations?”

The Actor deduplicates queued related URLs.

It also deduplicates identical directed edges.

maxItems remains the hard global stop.

Scheduling a recommendation monitor

Create an Apify schedule with stable seed URLs.

Send each run to a named dataset or downstream integration.

Compare edgeKey values between snapshots.

New edges indicate newly observed recommendations.

Missing edges can indicate recommendations that no longer rendered for that session.

Do not assume a single anonymous session represents every user or geography.

This Actor uses pay-per-event pricing.

A run has a small $0.005 start charge plus a tiered charge for each saved related-post row.

The BRONZE price is $0.0030846 per related post.

Higher Apify plans receive lower per-record tier prices, down to $0.00086368 per related post on DIAMOND.

Only typed recommendation records saved to the dataset trigger the item event.

Failed pages and skipped invalid URLs do not create item charges.

Tips for reliable runs

  • Start with one known public post.
  • Keep depth at 0 until the seed is verified.
  • Use modest result limits for scheduled monitoring.
  • Enable Apify Proxy if direct sessions repeatedly show a transient error.
  • Avoid private, deleted, age-restricted, or login-only posts.
  • Expect recommendations to vary across time and sessions.

Integrations

Google Sheets

Send each recommendation snapshot to a sheet for editorial review.

Slack or email alerts

Trigger an alert when a new edgeKey appears for a monitored source.

Webhooks

Deliver the completed dataset to your data pipeline after every scheduled run.

Make and Zapier

Route related authors or outbound domains into no-code enrichment workflows.

AI analysis

Summarize themes, classify domains, or cluster related post text after extraction.

JavaScript API example

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/threads-related-posts-scraper').call({
startUrls: [{ url: 'https://www.threads.com/@zuck/post/CuP48CiS5sx' }],
maxItems: 10,
maxDepth: 0,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python API example

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/threads-related-posts-scraper').call(run_input={
'startUrls': [{'url': 'https://www.threads.com/@zuck/post/CuP48CiS5sx'}],
'maxItems': 10,
'maxDepth': 0,
})
for item in client.dataset(run['defaultDatasetId']).iterate_items():
print(item)

cURL API example

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~threads-related-posts-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"startUrls": [{"url":"https://www.threads.com/@zuck/post/CuP48CiS5sx"}],
"maxItems": 10,
"maxDepth": 0
}'

Use with Apify MCP

Connect AI tools through https://mcp.apify.com?tools=automation-lab/threads-related-posts-scraper.

Claude Code

claude mcp add --transport http apify \
"https://mcp.apify.com?tools=automation-lab/threads-related-posts-scraper"

Claude Desktop

{
"mcpServers": {
"apify": {
"type": "http",
"url": "https://mcp.apify.com?tools=automation-lab/threads-related-posts-scraper"
}
}
}

Cursor

Add the same HTTP MCP URL in Cursor Settings → Tools & MCP → Add custom MCP.

VS Code

Add the HTTP MCP server URL through the MCP configuration used by your VS Code AI extension.

Example prompts:

  • “Map the recommendations below these three Threads posts.”
  • “Return authors and external domains from this Related threads section.”
  • “Build a one-hop recommendation graph with at most 50 edges.”

Data quality and deduplication

The Actor canonicalizes public post URLs.

A row is uniquely identified by its source and related URL.

The same related post may correctly appear more than once when different sources recommend it.

That is not a duplicate: it represents distinct directed edges.

Visible counts are parsed only when the rendered card exposes an accessible metric.

Limitations

Threads is a dynamic Meta surface and markup can change.

The Related threads section may not render for every public post.

Recommendations may vary by session, time, geography, or experiments.

This Actor does not log in and cannot access private content.

It does not claim exhaustive or personalized recommendation coverage.

Browser retries are bounded so a transient target does not create an endless run.

This Actor extracts information shown on public pages without authentication.

You are responsible for your use case, source terms, and applicable privacy, copyright, and data-protection law.

Collect only what you need.

Avoid using results for harassment, discrimination, or invasive profiling.

Consult qualified counsel for regulated or high-risk uses.

Troubleshooting

Try another public post and confirm that the section is visible in an anonymous browser.

Recommendations can be absent or session-dependent.

Enable Apify Proxy if the log shows repeated transient Threads error pages.

Some engagement counts are null

Threads does not expose every count on every card.

Null means the metric was not reliably visible, not zero.

My URL was skipped

Use the full public /@username/post/code URL.

Profile, search, and redirect-only URLs are intentionally rejected.

Recursive runs stop early

maxItems is a global cap.

Increase it carefully or lower maxDepth to prioritize direct edges.

Choose this Actor when the recommendation edge itself is the product.

FAQ

Does it require a Threads or Instagram account?

No. Version 1 targets recommendations rendered on anonymous public post pages.

Does it scrape replies?

No. Replies are excluded from this Actor's product boundary.

Can I process several seeds?

Yes. Add several URLs and set one global maxItems limit.

What does depth 0 mean?

Only recommendations directly below your supplied seeds are extracted.

Why can results change between runs?

Threads controls the live recommendation surface and may personalize or experiment with it.

Can I export CSV or Excel?

Yes. Use the standard Apify dataset export controls or API formats.

Are external redirect URLs decoded?

Yes. When Threads uses l.threads.com, the Actor returns the decoded destination and hostname.

Paste a public Threads post URL, keep depth at 0, and start with ten records.

Review the source→related edges, then schedule the input or expand to one-hop discovery when the seed produces useful recommendations.