# solari fetch threads post

> Threads 게시물 하나를 첫 답글들과 함께 라이브로 읽습니다.

- **CLI**: `solari fetch threads post`
- **MCP 도구**: `solari_fetch_threads_post`
- **권한**: `solari:read` — 체험을 포함해 모든 SOLARI 플랜에서 쓸 수 있습니다. 성공한 호출 1번에 1 크레딧입니다.
- **이용 가능 플랜**: 유료 플랜 또는 체험
- **크레딧**: 1

공개 URL이나 퍼머링크 코드로 Threads 게시물 하나를 작성자, 그리고 첫 번째 묶음의 직접 답글(좋아요 많은 순)과 함께 읽습니다. SOLARI에서 Threads는 fetch 전용이라 catalog 단계 없이 이 호출이 곧 게시물 리더입니다. SOLARI가 처음 보는 게시물은 그 자리에서 수집하고(5~30초), 한 시간 안의 재호출은 저장된 사본을 다시 씁니다. 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, 선택) — 최근 한 시간 안의 사본이 있어도 다시 수집합니다

## 응답

### `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). 한 시간 안의 재호출은 저장된 사본을 돌려주고, refresh=true면 새로 수집합니다.
- stale=true는 라이브 수집이 실패해서 예전 사본이 왔다는 뜻입니다. collected_at이 얼마나 오래됐는지 알려 줍니다.
- 수집 직후의 미디어 URL은 임시일 수 있습니다. 바로 읽어 두세요.
- 공개 게시물이 없는 참조는 빈 결과가 아니라 에러입니다. 실패한 호출은 크레딧을 쓰지 않습니다.

## 관련 도구

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