← All tools
threads · fetchsolari:readAvailable on any SOLARI plan, including the trial. One credit per successful call.

solari fetch threads post

One Threads post with its first replies, read live.

MCP tool
solari_fetch_threads_post
CLI
solari fetch threads post
Access
solari:readAvailable on any SOLARI plan, including the trial. One credit per successful call.Available on any SOLARI plan, including the trial. One credit per successful call.
Plans
Any paid plan or trial
Credit
1

Overview

Read one Threads post by its public URL or permalink code, with its author and the first batch of direct replies, most liked first. Threads is fetch-only in SOLARI, so this call is the post reader: there is no catalog step. A post SOLARI has never seen is collected live, which takes 5 to 30 seconds; within an hour the stored copy is reused unless refresh=true.

When to use it — When you were given a Threads post link or code and want the post, its author, or what people replied.

What comes back — The post, up to replies_limit direct replies most liked first, and the fetch command to read the author's profile.

Parameters

urlstringoptional
Public post URL on threads.com or threads.net. Provide this or code.≤ 512 chars
codestringoptional
Permalink code, the segment after /post/ in the URL. Provide this or url.pattern ^[A-Za-z0-9_-]{5,40}$
replies_limitintegeroptional
How many direct replies, most liked first. 0 skips them.≥ 0
refreshbooleanoptional
Collect again even if a copy from the last hour exists.

Response

Response

itemobject
The post, with its author's handle.
repliesobject[]
Direct replies, most liked first. The first batch only.
collected_attimestamp | null
When this copy was collected.
fetched_on_demandboolean
true if this call collected it live.
staleboolean
true if live collection failed and an older copy is returned. collected_at says how old.
notestring | null
Caveat, when there is one.
nextstring
Fetch command to read the author's profile.

item · replies[]

post_iduuid
Threads post id. Not interchangeable with Instagram or TikTok.
codestring | null
Permalink code, the segment after /post/ in the URL.
urlstring | null
Public permalink.
account_iduuid | null
Author account_id.
usernamestring | null
Author handle.
textstring | null
Post text.
posted_attimestamp | null
Published at (UTC).
like_countinteger | null
Likes.
reply_countinteger | null
Replies on Threads. Can exceed the replies returned.
repost_countinteger | null
Reposts.
quote_countinteger | null
Quotes.
reshare_countinteger | null
Shares.
counts_hiddenboolean | null
true if the author hides engagement counts.
hashtagsstring[]
Hashtags without the #.
mentionsstring[]
Handles mentioned, without the @.
link_urlsstring[]
Links attached to the post.
is_replyboolean | null
true for a reply to another post.
reply_to_usernamestring | null
Handle this post replies to. Null for top-level posts.
is_paid_partnershipboolean | null
Paid partnership label.
topicstring | null
Topic tag, when Threads sets one.
languagestring | null
Language code of the text.
quoted_postobject | null
The quoted post: username, text, like_count, posted_at, url. Null unless this is a quote.
assetsobject[]
Media files in order. Each has asset_url, media_type, and video_duration.
assets[].asset_urlstring | null
Direct download link to the full-size image or video. Null when no file is stored.

Example

Request

$ solari fetch threads post url=https://www.threads.com/@zuck/post/Ddt7cL5EfUG replies_limit=2

Response · Long strings and repeated array entries are trimmed for readability.

{
  "item": {
    "post_id": "019f3a5c-2b7e-7c41-9d0e-5a1f2c3b4d66",
    "code": "DdU1-6okapE",
    "url": "https://www.threads.com/@zuck/post/DdU1-6okapE",
    "account_id": "019f3a5c-2b7e-7c41-9d0e-5a1f2c3b4d5e",
    "username": "zuck",
    "text": "Last month I wrote about how we can build a positive and safe future for everyone: meta.com/thefutureisforeveryone \n\nEvery lab has the responsibility and incentive to move at the pace required to train its models safely,…",
    "posted_at": "2026-09-15T23:01:39.000Z",
    "like_count": 1639,
    "reply_count": 412,
    "repost_count": 136,
    "quote_count": 30,
    "reshare_count": 112,
    "counts_hidden": false,
    "hashtags": [],
    "mentions": [],
    "link_urls": [],
    "is_reply": false,
    "reply_to_username": null,
    "is_paid_partnership": false,
    "topic": null,
    "language": null,
    "quoted_post": null,
    "assets": []
  },
  "replies": [
    {
      "post_id": "019f3a5c-2b7e-7c41-9d0e-5a1f2c3b4d62",
      "code": "DdU1-7_kb4B",
      "url": "https://www.threads.com/@zuck/post/DdU1-7_kb4B",
      "account_id": "019f3a5c-2b7e-7c41-9d0e-5a1f2c3b4d5e",
      "username": "zuck",
      "text": "The reality is:\n\n- People won't want to use agents that are misaligned with them and that don't do what they ask, so labs have a strong natural incentive to make their models more aligned.\n\nThere is a lot of debate about…",
      "posted_at": "2026-09-15T23:01:39.000Z",
      "like_count": 663,
      "reply_count": 77,
      "repost_count": 27,
      "quote_count": 4,
      "reshare_count": 10,
      "counts_hidden": false,
      "hashtags": [],
      "mentions": [],
      "link_urls": [],
      "is_reply": true,
      "reply_to_username": "zuck",
      "is_paid_partnership": false,
      "topic": null,
      "language": null,
      "quoted_post": null,
      "assets": []
    },
    {
      "post_id": "019f3a5c-2b7e-7c41-9d0e-5a1f2c3b4d63",
      "code": "DdU1-7tEf-q",
      "url": "https://www.threads.com/@zuck/post/DdU1-7tEf-q",
      "account_id": "019f3a5c-2b7e-7c41-9d0e-5a1f2c3b4d5e",
      "username": "zuck",
      "text": "- Labs face significant liability if their models cause harm, so they have a strong incentive to prevent this as well. \n\nMeta delayed shipping Muse for several months to focus on safety and security. We didn't call for e…",
      "posted_at": "2026-09-15T23:01:39.000Z",
      "like_count": 230,
      "reply_count": 11,
      "repost_count": 3,
      "quote_count": 0,
      "reshare_count": 2,
      "counts_hidden": false,
      "hashtags": [],
      "mentions": [],
      "link_urls": [],
      "is_reply": true,
      "reply_to_username": "zuck",
      "is_paid_partnership": false,
      "topic": null,
      "language": null,
      "quoted_post": null,
      "assets": []
    }
  ],
  "collected_at": "2026-09-28T09:13:55Z",
  "fetched_on_demand": true,
  "stale": false,
  "note": null,
  "next": "solari fetch threads account username=zuck"
}

As an MCP call

{
  "name": "solari_fetch_threads_post",
  "arguments": {
    "url": "https://www.threads.com/@zuck/post/Ddt7cL5EfUG",
    "replies_limit": 2
  }
}

Notes

  • Pass url or code, not both. threads.com and threads.net URLs both work.
  • Replies are the first batch only, so reply_count on the post can exceed the replies returned. replies_limit=0 skips them.
  • A first collection takes 5 to 30 seconds (fetched_on_demand=true). Repeat calls within an hour return the stored copy unless refresh=true.
  • stale=true means the live collection failed and an older copy came back. collected_at says how old it is.
  • Media URLs right after a collection may be temporary. Read them promptly.
  • A reference with no public post is an error, not an empty result. Failed calls cost nothing.

Machine-readable: /docs/tools/fetch-threads-post.md