Search chats
GET /v0/search-chats
Search chats by title/network or participants using Beeper Desktop’s renderer algorithm. Use GET /v1/chats/search
instead.
Parameters
Section titled “ Parameters ”Query Parameters
Section titled “Query Parameters ”Pagination cursor from previous response. Use with direction to navigate results
Example
eyJvZmZzZXQiOjE3MTk5OTk5OTl9
Pagination cursor from previous response. Use with direction to navigate results
Pagination direction: “after” for newer page, “before” for older page. Defaults to “before” when only cursor is provided.
Pagination direction: “after” for newer page, “before” for older page. Defaults to “before” when only cursor is provided.
Filter by inbox type: “primary” (non-archived, non-low-priority), “low-priority”, or “archive”. If not specified, shows all chats.
Filter by inbox type: “primary” (non-archived, non-low-priority), “low-priority”, or “archive”. If not specified, shows all chats.
Set to true to only retrieve chats that have unread messages
Set to true to only retrieve chats that have unread messages
Set the maximum number of chats to retrieve. Valid range: 1-200, default is 50
Set the maximum number of chats to retrieve. Valid range: 1-200, default is 50
Literal token search (non-semantic). Use single words users type (e.g., “dinner”). When multiple words provided, ALL must match. Case-insensitive.
Literal token search (non-semantic). Use single words users type (e.g., “dinner”). When multiple words provided, ALL must match. Case-insensitive.
Search scope: ‘titles’ matches title + network; ‘participants’ matches participant names.
Search scope: ‘titles’ matches title + network; ‘participants’ matches participant names.
Provide an ISO datetime string to only retrieve chats with last activity before this time
Provide an ISO datetime string to only retrieve chats with last activity before this time
Provide an ISO datetime string to only retrieve chats with last activity after this time
Provide an ISO datetime string to only retrieve chats with last activity after this time
Provide an array of account IDs to filter chats from specific messaging accounts only
Example
[ "local-whatsapp_ba_EvYDBBsZbRQAy3UOSWqG0LuTVkc", "local-telegram_ba_QFrb5lrLPhO3OT5MFBeTWv0x4BI"]
Provide an array of account IDs to filter chats from specific messaging accounts only
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.
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.
Responses
Section titled “ Responses ”Tool executed successfully
object
Chats matching the filters.
object
Unique identifier of the chat (room/thread ID, same as id) across Beeper.
Example
!NCdzlIaMjZUmvmvyHU:beeper.com
Local chat ID specific to this Beeper Desktop installation.
Beeper account ID this chat belongs to.
Display-only human-readable network name (e.g., ‘WhatsApp’, ‘Messenger’). You MUST use ‘accountID’ to perform actions.
Example
WhatsApp
Display title of the chat as computed by the client/server.
Chat type: ‘single’ for direct messages, ‘group’ for group chats.
Chat participants information.
object
Participants returned for this chat (limited by the request; may be a subset).
A person on or reachable through Beeper. Values are best-effort and can vary by network.
object
Stable Beeper user ID. Use as the primary key when referencing a person.
Human-readable handle if available (e.g., ‘@alice’). May be network-specific and not globally unique.
User’s phone number in E.164 format (e.g., ‘+14155552671’). Omit if unknown.
Email address if known. Not guaranteed verified.
Display name as shown in clients (e.g., ‘Alice Example’). May include emojis.
Avatar image URL if available. May be temporary or local-only to this device; download promptly if durable access is needed.
True if Beeper cannot initiate messages to this user (e.g., blocked, network restriction, or no DM path). The user may still message you.
True if this user represents the authenticated account’s own identity.
True if there are more participants than included in items.
Total number of participants in the chat.
Timestamp of last activity. Chats with more recent activity are often more important.
Example
2025-08-31T23:30:12.520Z
Number of unread messages.
Example
3
True if chat is archived.
True if chat notifications are muted.
True if chat is pinned.
Example
{ "id": "!instagram_mattwondra:local-instagram.localhost", "localChatID": "1229391", "accountID": "local-instagram_ba_eRfQMmnSNy_p7Ih7HL7RduRpKFU", "network": "Instagram", "title": "Matt Wondra", "type": "single", "participants": { "items": [ { "id": "@mattwondra:local-instagram.localhost", "username": "mattwondra", "fullName": "Matt Wondra", "cannotMessage": false, "isSelf": false }, { "id": "@batuhan:local-instagram.localhost", "username": "batuhan", "fullName": "Batuhan İçöz", "cannotMessage": false, "isSelf": true } ], "hasMore": false, "total": 2 }, "lastActivity": "2025-08-31T19:41:41.000Z", "unreadCount": 0, "lastReadMessageSortKey": 449706228480, "isArchived": false, "isMuted": false, "isPinned": false}
True if additional results can be fetched using the provided cursors.
Cursor for fetching older results (use with direction=‘before’). Opaque string; do not inspect.
Cursor for fetching newer results (use with direction=‘after’). Opaque string; do not inspect.
Example
{ "items": [ { "id": "!KPFTtZYWuERwib8T702N9IfqiCc:ba_EvYDBBsZbRQAy3UOSWqG0LuTVkc.local-whatsapp.localhost", "localChatID": "1229391", "accountID": "local-whatsapp_ba_EvYDBBsZbRQAy3UOSWqG0LuTVkc", "network": "WhatsApp", "title": "Kishan Bagaria", "type": "single", "participants": { "items": [ { "id": "@kishanbagaria:local-whatsapp.localhost", "phoneNumber": "+15551112222", "fullName": "Kishan Bagaria", "cannotMessage": false, "isSelf": false } ], "hasMore": false, "total": 2 }, "lastActivity": "2025-08-31T19:41:41.000Z", "unreadCount": 3, "lastReadMessageSortKey": 449706228480, "isArchived": false, "isMuted": false, "isPinned": true }, { "id": "!nZeX7dh67_RaPnmWGJIjUkV2svE:ba_sXf0adnbr287.local-telegram.localhost", "localChatID": "1229078", "accountID": "local-telegram_ba_sXf0adnbr287_pRup35Tgl-lsIg", "network": "Telegram", "title": "Brad Murray", "type": "single", "participants": { "items": [ { "id": "@bradmurray:local-telegram.localhost", "phoneNumber": "+15553334444", "fullName": "Brad Murray", "cannotMessage": false, "isSelf": false } ], "hasMore": false, "total": 2 }, "lastActivity": "2025-08-31T18:05:20.648Z", "unreadCount": 0, "lastReadMessageSortKey": 449706782720, "isArchived": true, "isMuted": false, "isPinned": false }, { "id": "!twitter_dm_photomatt:local-twitter.localhost", "localChatID": "1228956", "accountID": "local-twitter_ba_gUU1IHNGo_CsTZLp0vDFUYk9EuE", "network": "Twitter/X", "title": "Matt Mullenweg", "type": "single", "participants": { "items": [ { "id": "@photomatt:local-twitter.localhost", "username": "photomatt", "fullName": "Matt Mullenweg", "cannotMessage": false, "isSelf": false } ], "hasMore": false, "total": 2 }, "lastActivity": "2025-08-31T12:30:15.123Z", "unreadCount": 1, "lastReadMessageSortKey": 449705982340, "isArchived": false, "isMuted": true, "isPinned": false } ], "hasMore": true, "oldestCursor": "1756667120648", "newestCursor": "1756669301000"}
Invalid request parameters
object
Error message
Error code
Additional error details
object
Access token is missing or invalid
object
Error message
Error code
Additional error details
object
Access token does not have the required scope
object
Error message
Error code
Additional error details
object
Resource not found
object
Error message
Error code
Additional error details
object
Unprocessable entity - validation error
object
Error message
Error code
Additional error details
object
Too many requests - rate limit exceeded
object
Error message
Error code
Additional error details
object
Internal server error
object
Error message
Error code
Additional error details