## Search `accounts.contacts.search(straccount_id, ContactSearchParams**kwargs) -> ContactSearchResponse` **get** `/v1/accounts/{accountID}/contacts` Search contacts on a specific account using merged account contacts, network search, and exact identifier lookup. ### Parameters - `account_id: str` Account ID this resource belongs to. - `query: str` Text to search users by. Network-specific behavior. ### Returns - `class ContactSearchResponse: …` - `items: List[User]` - `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. ### Example ```python from beeper_desktop_api import BeeperDesktop client = BeeperDesktop() response = client.accounts.contacts.search( account_id="accountID", query="x", ) print(response.items) ```