solari fetch threads posts
One Threads account's recent posts, read live.
- MCP tool
- solari_fetch_threads_posts
- CLI
- solari fetch threads posts
- 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 account's newest top-level posts, with its profile, by exact username. Each post carries text, hashtags, mentions, links, like, reply, repost, quote, and share counts, the quoted post, and assets with a direct-download asset_url. Threads is fetch-only in SOLARI, so this call is the post listing: there is no catalog step. A handle 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 have an exact Threads handle and want what it posted recently.
What comes back — The profile, up to limit top-level posts newest first, and the fetch command to open the newest one with its replies.
Parameters
- usernamestringrequired
- Threads username, with or without @.≤ 64 chars
- limitintegeroptional
- How many posts, newest first.≥ 1
- refreshbooleanoptional
- Collect again even if a copy from the last hour exists.
Response
Response
- accountobject
- The profile.
- postsobject[]
- Top-level posts, newest first.
- totalinteger
- Posts returned.
- 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: for example a private account.
- nextstring
- Fetch command to open the newest post with its replies. Only when a post exists.
account
- account_iduuid
- Threads account id. Not interchangeable with Instagram or TikTok.
- usernamestring
- Handle, lowercase, without the @.
- full_namestring | null
- Display name.
- biographystring | null
- Bio text.
- follower_countinteger | null
- Followers at collection time.
- is_verifiedboolean | null
- Verified badge.
- is_privateboolean | null
- Private account. Its posts come back empty.
- bio_linksstring[]
- Links listed in the bio.
- profile_pic_urlstring | null
- Profile picture URL, largest size available.
- urlstring | null
- Public profile URL.
posts[]
- 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 posts username=zuck limit=2Response · Long strings and repeated array entries are trimmed for readability.
{
"account": {
"account_id": "019f3a5c-2b7e-7c41-9d0e-5a1f2c3b4d5e",
"username": "zuck",
"full_name": "Mark Zuckerberg",
"biography": "Mostly superintelligence and MMA takes",
"follower_count": 5745085,
"is_verified": true,
"is_private": false,
"bio_links": [],
"profile_pic_url": "https://scontent-gmp1-1.cdninstagram.com/v/t51.82787-19/825322135_17989325280103224_1252773933700107438_n.jpg?…",
"url": "https://www.threads.com/@zuck"
},
"posts": [
{
"post_id": "019f3a5c-2b7e-7c41-9d0e-5a1f2c3b4d60",
"code": "Ddt7cL5EfUG",
"url": "https://www.threads.com/@zuck/post/Ddt7cL5EfUG",
"account_id": "019f3a5c-2b7e-7c41-9d0e-5a1f2c3b4d5e",
"username": "zuck",
"text": "Agrippa said it's time to get back to work 😎",
"posted_at": "2026-09-25T16:50:21.000Z",
"like_count": 4964,
"reply_count": 477,
"repost_count": 254,
"quote_count": 45,
"reshare_count": 136,
"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": [
{
"asset_url": "https://smr-images.bzine.co/threads/…",
"media_type": "image",
"video_duration": null
},
{
"asset_url": "https://smr-images.bzine.co/threads/…",
"media_type": "image",
"video_duration": null
}
]
},
{
"post_id": "019f3a5c-2b7e-7c41-9d0e-5a1f2c3b4d61",
"code": "Ddpj4YZkd3P",
"url": "https://www.threads.com/@zuck/post/Ddpj4YZkd3P",
"account_id": "019f3a5c-2b7e-7c41-9d0e-5a1f2c3b4d5e",
"username": "zuck",
"text": "Here's everything I announced at Meta Connect today 👇",
"posted_at": "2026-09-24T00:07:31.000Z",
"like_count": 2680,
"reply_count": 612,
"repost_count": 164,
"quote_count": 34,
"reshare_count": 138,
"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": []
}
],
"total": 2,
"collected_at": "2026-09-28T09:13:55Z",
"fetched_on_demand": true,
"stale": false,
"note": null,
"next": "solari fetch threads post url=https://www.threads.com/@zuck/post/Ddt7cL5EfUG"
}As an MCP call
{
"name": "solari_fetch_threads_posts",
"arguments": {
"username": "zuck",
"limit": 2
}
}Notes
- Threads is fetch-only. There is no catalog step: read the posts from this response.
- Only top-level posts are listed, newest first. The account's own replies are not included; fetch threads post reads one post with its replies.
- 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.
- A private account answers its profile with posts empty. Media URLs right after a collection may be temporary, so read them promptly.
- A handle with no Threads profile is an error, not an empty result. Failed calls cost nothing.
Related tools
- solari_fetch_threads_accountOne Threads account's profile, read live.
- solari_fetch_threads_account_searchFind Threads accounts by name, live.
- solari_fetch_threads_postOne Threads post with its first replies, read live.
Machine-readable: /docs/tools/fetch-threads-posts.md