# solari fetch threads post

> Threads の投稿 1 件を最初の返信と一緒にライブで読みます。

- **CLI**: `solari fetch threads post`
- **MCP ツール**: `solari_fetch_threads_post`
- **アクセス権**: `solari:read` — トライアルを含むすべての SOLARI プランで利用できます。成功した呼び出し 1 回につき 1 クレジットです。
- **対象プラン**: 有料プランまたはトライアル
- **クレジット**: 1

公開 URL またはパーマリンクのコードで Threads の投稿を 1 件、投稿者と最初のひとまとまりの直接返信(いいねの多い順)と一緒に読みます。SOLARI では Threads は fetch 専用なので、catalog の手順はなく、この呼び出しがそのまま投稿の読み取りです。SOLARI が初めて見る投稿はその場で収集し(5〜30 秒)、1 時間以内の再呼び出しは保存済みのコピーを使い回します。refresh=true で新しく収集します。

**どんなときに使うか** — Threads の投稿リンクやコードを渡され、その投稿、投稿者、あるいは人々の返信を知りたいときに使います。

**返される内容** — 投稿、いいねの多い順の直接返信を最大 replies_limit 件、そして投稿者のプロフィールを読む fetch コマンドです。

## パラメータ

- `url` (string, 任意, ≤ 512 chars) — threads.com または threads.net の公開投稿 URL。code の代わりに渡します。
- `code` (string, 任意, pattern ^[A-Za-z0-9_-]{5,40}$) — パーマリンクのコード。URL の /post/ の後ろの部分。url の代わりに渡します。
- `replies_limit` (integer, 任意, ≥ 0) — 直接返信を何件まで。いいねの多い順で、0 なら省きます。
- `refresh` (boolean, 任意) — 直近 1 時間のコピーがあっても収集し直します。

## レスポンス

### `Response`

- `item` (object) — 投稿。投稿者のハンドル付き。
- `replies` (object[]) — 直接返信。いいねの多い順で、最初のひとまとまりだけ。
- `collected_at` (timestamp | null) — このコピーを収集した時刻。
- `fetched_on_demand` (boolean) — この呼び出しがライブで収集したら true。
- `stale` (boolean) — ライブ収集に失敗して古いコピーが返ったら true。collected_at がその古さを示します。
- `note` (string | null) — 注意点があるときだけ入ります。
- `next` (string) — 投稿者のプロフィールを読む fetch コマンド。

### `item · replies[]`

- `post_id` (uuid) — Threads の投稿 id。Instagram や TikTok の id とは互換しません。
- `code` (string | null) — パーマリンクのコード。URL の /post/ の後ろの部分。
- `url` (string | null) — 公開パーマリンク。
- `account_id` (uuid | null) — 投稿者の account_id。
- `username` (string | null) — 投稿者のハンドル。
- `text` (string | null) — 投稿の本文。
- `posted_at` (timestamp | null) — 投稿日時(UTC)。
- `like_count` (integer | null) — いいね数。
- `reply_count` (integer | null) — Threads 上の返信数。返った返信より多いことがあります。
- `repost_count` (integer | null) — リポスト数。
- `quote_count` (integer | null) — 引用数。
- `reshare_count` (integer | null) — シェア数。
- `counts_hidden` (boolean | null) — 投稿者がエンゲージメント数を隠していたら true。
- `hashtags` (string[]) — ハッシュタグ。# なし。
- `mentions` (string[]) — メンションされたハンドル。@ なし。
- `link_urls` (string[]) — 投稿に付いたリンク。
- `is_reply` (boolean | null) — 別の投稿への返信なら true。
- `reply_to_username` (string | null) — この投稿が返信した相手のハンドル。トップレベルの投稿なら null。
- `is_paid_partnership` (boolean | null) — 有料パートナーシップのラベル。
- `topic` (string | null) — Threads が付けたトピックタグ。あるときだけ。
- `language` (string | null) — 本文の言語コード。
- `quoted_post` (object | null) — 引用した投稿。username、text、like_count、posted_at、url があります。引用投稿でなければ null。
- `assets` (object[]) — 投稿のメディアファイルです。順番どおりに並び、それぞれ asset_url、media_type、video_duration があります
- `assets[].asset_url` (string | null) — 元のサイズの画像や動画を直接ダウンロードできるリンクです。保存されたファイルがない場合は null です

## 例

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

_読みやすさのため、長い文字列と繰り返しの配列要素を省略しています。_

```json
{
  "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"
}
```

## MCP で呼び出す場合

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

## 注意点

- url か code のどちらか一方だけを渡します。threads.com と threads.net の URL はどちらも使えます。
- 返信は最初のひとまとまりだけなので、投稿の reply_count が返った返信の数より大きいことがあります。replies_limit=0 なら返信を省きます。
- 初回の収集は 5〜30 秒かかります(fetched_on_demand=true)。1 時間以内の再呼び出しは保存済みのコピーを返し、refresh=true なら新しく収集します。
- stale=true は、ライブ収集に失敗して古いコピーが返ったという意味です。collected_at がその古さを示します。
- 収集直後のメディア URL は一時的な場合があります。すぐに読んでください。
- 公開投稿のない参照は、空の結果ではなくエラーです。失敗した呼び出しはクレジットを消費しません。

## 関連ツール

- [`solari_fetch_threads_post_search`](https://solari.sh/docs/tools/fetch-threads-post-search.md?lang=ja)
- [`solari_fetch_threads_account`](https://solari.sh/docs/tools/fetch-threads-account.md?lang=ja)
- [`solari_fetch_threads_posts`](https://solari.sh/docs/tools/fetch-threads-posts.md?lang=ja)
