# solari fetch threads post search

> Threads' top posts for a keyword, live.

- **CLI**: `solari fetch threads post search`
- **MCP tool**: `solari_fetch_threads_post_search`
- **Access**: `solari:read` — Available on any SOLARI plan, including the trial. One credit per successful call.
- **Plans**: Any paid plan or trial
- **Credit**: 1

Search Threads itself for posts matching a keyword and get its top results: one page of about 20 posts in Threads' own relevance order, each with full post fields and assets. Threads has no catalog, so this is its only keyword search. The matching posts are collected and stored, so fetch threads post can open any of them with its replies.

**When to use it** — When you want what people post on Threads about a topic, brand, or phrase and have no handle to start from.

**What comes back** — Up to limit posts from Threads' one result page, best first, and the fetch command to open the first one with its replies.

## Parameters

- `query` (string, required, ≤ 100 chars) — Keyword or phrase to search for.
- `limit` (integer, optional, ≥ 1) — How many posts from the one result page, at most.

## Response

### `Response`

- `query` (string) — The keyword the search ran on.
- `items` (object[]) — Matching posts, Threads' relevance order.
- `total` (integer) — Posts returned.
- `fetched_on_demand` (boolean) — Always true: every search collects live.
- `note` (string | null) — Caveat, when there is one: for example when nothing matched.
- `next` (string) — Fetch command to open the first post with its replies. Only when there is a hit.

### `items[]`

- `post_id` (uuid) — Threads post id. Not interchangeable with Instagram or TikTok.
- `code` (string | null) — Permalink code, the segment after /post/ in the URL.
- `url` (string | null) — Public permalink.
- `account_id` (uuid | null) — Author account_id.
- `username` (string | null) — Author handle.
- `text` (string | null) — Post text.
- `posted_at` (timestamp | null) — Published at (UTC).
- `like_count` (integer | null) — Likes.
- `reply_count` (integer | null) — Replies on Threads. Can exceed the replies returned.
- `repost_count` (integer | null) — Reposts.
- `quote_count` (integer | null) — Quotes.
- `reshare_count` (integer | null) — Shares.
- `counts_hidden` (boolean | null) — true if the author hides engagement counts.
- `hashtags` (string[]) — Hashtags without the #.
- `mentions` (string[]) — Handles mentioned, without the @.
- `link_urls` (string[]) — Links attached to the post.
- `is_reply` (boolean | null) — true for a reply to another post.
- `reply_to_username` (string | null) — Handle this post replies to. Null for top-level posts.
- `is_paid_partnership` (boolean | null) — Paid partnership label.
- `topic` (string | null) — Topic tag, when Threads sets one.
- `language` (string | null) — Language code of the text.
- `quoted_post` (object | null) — The quoted post: username, text, like_count, posted_at, url. Null unless this is a quote.
- `assets` (object[]) — Media files in order. Each has asset_url, media_type, and video_duration.
- `assets[].asset_url` (string | null) — Direct download link to the full-size image or video. Null when no file is stored.

## Example

```console
$ solari fetch threads post search query="Meta AI" limit=1
```

_Long strings and repeated array entries are trimmed for readability._

```json
{
  "query": "Meta AI",
  "items": [
    {
      "post_id": "019f3a5c-2b7e-7c41-9d0e-5a1f2c3b4d64",
      "code": "Dd008mwipTJ",
      "url": "https://www.threads.com/@meta.ai/post/Dd008mwipTJ",
      "account_id": "019f3a5c-2b7e-7c41-9d0e-5a1f2c3b4d7b",
      "username": "meta.ai",
      "text": "Từng tháng âm:\n\n1. Tháng Giêng - Cung Phu Thê (Sửu): Có Hồng Loan, Thanh Long. Tháng khởi duyên, dễ có người mai mối, gặp gỡ nơi đông người. Tài chính hao nhẹ do Đầu Quân.\n\n2. Tháng 2 - Cung Huynh Đệ (Tý): Liêm Trinh Thi…",
      "posted_at": "2026-09-28T09:08:17.000Z",
      "like_count": 0,
      "reply_count": 2,
      "repost_count": 0,
      "quote_count": 0,
      "reshare_count": 0,
      "counts_hidden": false,
      "hashtags": [],
      "mentions": [],
      "link_urls": [],
      "is_reply": true,
      "reply_to_username": "meta.ai",
      "is_paid_partnership": false,
      "topic": null,
      "language": null,
      "quoted_post": null,
      "assets": []
    }
  ],
  "total": 1,
  "fetched_on_demand": true,
  "note": null,
  "next": "solari fetch threads post url=https://www.threads.com/@meta.ai/post/Dd008mwipTJ"
}
```

## As an MCP call

```json
{
  "name": "solari_fetch_threads_post_search",
  "arguments": {
    "query": "Meta AI",
    "limit": 1
  }
}
```

## Notes

- Only Threads' top tab is available: one page, no recent tab, no further page. Calling again with the same keyword returns the same page.
- Results follow Threads' relevance ranking and may include loosely related posts, including replies. Read text and username before using one.
- Matching posts are stored: fetch threads post opens any of them with its replies, and fetch threads account reads an author.
- Every call asks Threads live, takes a few seconds, is not cached, and costs 1 credit. An empty items list with a note means no public post matched.

## Related tools

- [`solari_fetch_threads_post`](https://pub.brandazine.ai/docs/tools/fetch-threads-post.md)
- [`solari_fetch_threads_account`](https://pub.brandazine.ai/docs/tools/fetch-threads-account.md)
- [`solari_fetch_threads_account_search`](https://pub.brandazine.ai/docs/tools/fetch-threads-account-search.md)
