## Search `chats.search(ChatSearchParams**kwargs) -> SyncCursorSearch[Chat]` **get** `/v1/chats/search` Search chats by title/network or participants using Beeper Desktop's renderer algorithm. ### Parameters - `account_ids: Optional[SequenceNotStr[str]]` Provide an array of account IDs to filter chats from specific messaging accounts only - `cursor: Optional[str]` Opaque pagination cursor; do not inspect. Use together with 'direction'. - `direction: Optional[Literal["after", "before"]]` Pagination direction used with 'cursor': 'before' fetches older results, 'after' fetches newer results. Defaults to 'before' when only 'cursor' is provided. - `"after"` - `"before"` - `inbox: Optional[Literal["primary", "low-priority", "archive"]]` Filter by inbox type: "primary" (non-archived, non-low-priority), "low-priority", or "archive". If not specified, shows all chats. - `"primary"` - `"low-priority"` - `"archive"` - `include_muted: Optional[bool]` Include chats marked as Muted by the user, which are usually less important. Default: true. Set to false if the user wants a more refined search. - `last_activity_after: Optional[Union[str, datetime]]` Provide an ISO datetime string to only retrieve chats with last activity after this time - `last_activity_before: Optional[Union[str, datetime]]` Provide an ISO datetime string to only retrieve chats with last activity before this time - `limit: Optional[int]` Set the maximum number of chats to retrieve. Valid range: 1-200, default is 50 - `query: Optional[str]` Literal token search (non-semantic). Use single words users type (e.g., "dinner"). When multiple words provided, ALL must match. Case-insensitive. - `scope: Optional[Literal["titles", "participants"]]` Search scope: 'titles' matches title + network; 'participants' matches participant names. - `"titles"` - `"participants"` - `type: Optional[Literal["single", "group", "any"]]` Specify the type of chats to retrieve: use "single" for direct messages, "group" for group chats, or "any" to get all types - `"single"` - `"group"` - `"any"` - `unread_only: Optional[bool]` Set to true to only retrieve chats that have unread messages ### Returns - `class Chat: …` - `id: str` Unique identifier of the chat across Beeper. - `account_id: str` Account ID this chat belongs to. - `participants: Participants` Chat participants information. - `has_more: bool` True if there are more participants than included in items. - `items: List[User]` Participants returned for this chat (limited by the request; may be a subset). - `id: str` Stable Beeper user ID. Use as the primary key when referencing a person. - `cannot_message: Optional[bool]` True if Beeper cannot initiate messages to this user (e.g., blocked, network restriction, or no DM path). The user may still message you. - `email: Optional[str]` Email address if known. Not guaranteed verified. - `full_name: Optional[str]` Display name as shown in clients (e.g., 'Alice Example'). May include emojis. - `img_url: Optional[str]` Avatar image URL if available. May be temporary or local-only to this device; download promptly if durable access is needed. - `is_self: Optional[bool]` True if this user represents the authenticated account's own identity. - `phone_number: Optional[str]` User's phone number in E.164 format (e.g., '+14155552671'). Omit if unknown. - `username: Optional[str]` Human-readable handle if available (e.g., '@alice'). May be network-specific and not globally unique. - `total: int` Total number of participants in the chat. - `title: str` Display title of the chat as computed by the client/server. - `type: Literal["single", "group"]` Chat type: 'single' for direct messages, 'group' for group chats. - `"single"` - `"group"` - `unread_count: int` Number of unread messages. - `is_archived: Optional[bool]` True if chat is archived. - `is_muted: Optional[bool]` True if chat notifications are muted. - `is_pinned: Optional[bool]` True if chat is pinned. - `last_activity: Optional[datetime]` Timestamp of last activity. - `last_read_message_sort_key: Optional[str]` Last read message sortKey. - `local_chat_id: Optional[str]` Local chat ID specific to this Beeper Desktop installation. ### Example ```python from beeper_desktop_api import BeeperDesktop client = BeeperDesktop() page = client.chats.search() page = page.items[0] print(page.id) ```