> ## Documentation Index
> Fetch the complete documentation index at: https://docs.minimo.it/llms.txt
> Use this file to discover all available pages before exploring further.

# Manage threads

> List, filter, search and read inbox threads, then mark them read, assign, close, snooze or pin them.

Every operation below exists in the app, as an MCP tool for your AI agent, and in the [Inbox API](https://docs.minimo.it/api-reference/inbox/list-threads.md).

## List threads

Threads come pinned first, then by newest activity. The filters match the inbox tabs:

| Filter | Values | What it returns |
| - | - | - |
| `status` | `open` (default), `closed`, `snoozed`, `all` | Threads in that state. |
| `channel` | `whatsapp`, `email`, `sms`, `telegram` | Threads that used that channel. |
| `unread` | `true` | Threads with unread messages. |
| `needsAttention` | `true` | A person must answer: the AI handed over, or the AI is paused while the contact's last message is unanswered. |
| `assigned` | `me`, `unassigned`, `any` (default) | By assignee. `me` is the user of the key or connection. |
| `search` | text | Matches the contact's name, email or phone. |

The answer also carries the **counters** of the tabs: `open`, `unread`, `needsAttention`, `needsTakeover`, `unassigned`,
`snoozed`, `closed` and, when the call acts as a user, `mine`.

* MCP: `minimo_inbox_list-threads`
* API: [`GET /public/v1/inbox/threads`](https://docs.minimo.it/api-reference/inbox/list-threads)

## Search inside messages

To find a thread by **what was written** (not by who wrote it), search the messages: text, email subject, sender name
or address. The HTML of emails without a text part is searched too. Results are threads, newest match first, and each
one shows the matching message as `lastMessage`, so you can see why it matched.

Without `fromDate` the search covers the **last 180 days**. Narrow it with `channel`, `direction` (`inbound` = written by
the contact) and a date range.

* MCP: `minimo_inbox_search-threads`
* API: [`GET /public/v1/inbox/threads/search`](https://docs.minimo.it/api-reference/inbox/search-threads)

## Read a thread

Reading returns the thread and its **most recent messages**, oldest to newest, every channel together:

* `text` is always plain text, also for emails that only have HTML (ask for `includeHtml` to get the HTML too).
* WhatsApp media come as `media.url` (image, audio, video, document), email files as `attachments`.
* Messages you sent carry their delivery `status`, `failureReason` and `seenAt`.

The default is the latest 30 messages (up to 100). When `olderMessages` is `true`, read further back with
`beforeMessageId` set to the first `messageId` you got.

> [!NOTE]
>
> Reading never marks a thread as read. Mark it explicitly, as below.

* MCP: `minimo_inbox_get-thread`
* API: [`GET /public/v1/inbox/threads/{threadId}`](https://docs.minimo.it/api-reference/inbox/get-thread)

## Update a thread

| Change | How |
| - | - |
| Mark read / unread | `markRead: true` / `false` |
| Close / reopen | `status: "closed"` / `"open"` |
| Snooze | `status: "snoozed"` with `snoozedUntil` (a future date-time). The thread comes back to the inbox then. |
| Assign | `assignTo: "me"`, a teammate's user id (from `assignedTo.userId` of a thread), or `null` to unassign. Assigning someone notifies them and clears the AI's handover request. |
| Pin | `pinned: true` / `false` |

Updates act as the user of the key or connection and send nothing to the contact.

* MCP: `minimo_inbox_update-thread`
* API: [`PATCH /public/v1/inbox/threads/{threadId}`](https://docs.minimo.it/api-reference/inbox/update-thread)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.