Search
GET /v0/search
Returns matching chats, participant name matches in groups, and the first page of messages in one call. Paginate messages via search-messages. Paginate chats via search-chats. Uses the same sorting as the chat search in the app. Use GET /v1/search
instead.
Parameters
Section titled “ Parameters ”Query Parameters
Section titled “Query Parameters ”User-typed search text. Literal word matching (NOT semantic).
User-typed search text. Literal word matching (NOT semantic).
Responses
Section titled “ Responses ”Tool executed successfully
object
object
Top chat results.
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}
Top group results by participant matches.
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}
object
Messages matching the query and filters.
object
Stable message ID for cursor pagination.
Example
1343993
Stable message ID (same as id).
Example
1343993
Beeper chat/thread/room ID.
Example
!NCdzlIaMjZUmvmvyHU:beeper.com
Beeper account ID the message belongs to.
Sender user ID.
Example
@kishanbagaria:local-whatsapp.localhost
Resolved sender display name (impersonator/full name/username/participant name).
Message timestamp.
Example
2025-08-31T23:30:12.520Z
Plain-text body if present. May include a JSON fallback with text entities for rich messages.
True if the authenticated user sent the message.
Attachments included with this message, if any.
object
Attachment type.
Public URL or local file path to fetch the asset. May be temporary or local-only to this device; download promptly if durable access is needed.
MIME type if known (e.g., ‘image/png’).
Original filename if available.
File size in bytes if known.
True if the attachment is a GIF.
True if the attachment is a sticker.
True if the attachment is a voice note.
Duration in seconds (audio/video).
Preview image URL for video attachments (poster frame). May be temporary or local-only to this device; download promptly if durable access is needed.
Pixel dimensions of the attachment: width/height in px.
object
True if the message is unread for the authenticated user. May be omitted.
Reactions to the message, if any.
object
Reaction ID, typically ${participantID}${reactionKey} if multiple reactions allowed, or just participantID otherwise.
The reaction key: an emoji (😄), a network-specific key, or a shortcode like “smiling-face”.
URL to the reaction’s image. May be temporary or local-only to this device; download promptly if durable access is needed.
User ID of the participant who reacted.
True if the reactionKey is an emoji.
Example
{ "id": "1343993", "messageID": "1343993", "chatID": "!signal_adamvy:local-signal.localhost", "accountID": "local-signal_ba_7N74FrU29pxij_TnqfxeUHj53FY", "senderID": "@adamvy:local-signal.localhost", "senderName": "Adam Van Ymeren", "timestamp": "2025-08-28T11:04:29.621Z", "sortKey": 821744079, "text": "Hey, can we reschedule our meeting to 3pm?", "isSender": false, "isUnread": false}
Map of chatID -> chat details for chats referenced in items.
object
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.
Example
1725489123456|c29tZUltc2dQYWdl
Cursor for fetching newer results (use with direction=‘after’). Opaque string; do not inspect.
Example
1725489123456|c29tZUltc2dQYWdl
Example
{ "items": [ { "id": "1343993", "messageID": "1343993", "chatID": "!signal_adamvy:local-signal.localhost", "accountID": "local-signal_ba_7N74FrU29pxij_TnqfxeUHj53FY", "senderID": "@adamvy:local-signal.localhost", "senderName": "Adam Van Ymeren", "timestamp": "2025-08-28T11:04:29.621Z", "sortKey": 821744079, "text": "Hey, can we reschedule our meeting to 3pm?", "isSender": false, "isUnread": false }, { "id": "1343994", "messageID": "1343994", "chatID": "!telegram_nick:local-telegram.localhost", "accountID": "local-telegram_ba_QFrb5lrLPhO3OT5MFBeTWv0x4BI", "senderID": "@nick:local-telegram.localhost", "senderName": "Nick Mills-Barrett", "timestamp": "2025-08-28T14:22:15.432Z", "sortKey": 821755234, "text": "The deployment is complete, everything looks good", "isSender": false, "isUnread": true } ], "chats": { "!signal_adamvy:local-signal.localhost": { "id": "!signal_adamvy:local-signal.localhost", "localChatID": "1229720", "accountID": "local-signal_ba_7N74FrU29pxij_TnqfxeUHj53FY", "network": "Signal", "title": "Adam Van Ymeren", "type": "single", "participants": { "items": [ { "id": "@adamvy:local-signal.localhost", "fullName": "Adam Van Ymeren", "cannotMessage": false, "isSelf": false }, { "id": "@batuhan:local-signal.localhost", "fullName": "Batuhan İçöz", "cannotMessage": false, "isSelf": true } ], "hasMore": false, "total": 2 }, "lastActivity": "2025-08-31T17:38:20.393Z", "unreadCount": 0, "isArchived": false, "isMuted": false, "isPinned": true }, "!telegram_nick:local-telegram.localhost": { "id": "!telegram_nick:local-telegram.localhost", "localChatID": "1229721", "accountID": "local-telegram_ba_QFrb5lrLPhO3OT5MFBeTWv0x4BI", "network": "Telegram", "title": "Nick Mills-Barrett", "type": "single", "participants": { "items": [ { "id": "@nick:local-telegram.localhost", "username": "nick", "fullName": "Nick Mills-Barrett", "cannotMessage": false, "isSelf": false }, { "id": "@batuhan:local-telegram.localhost", "username": "batuhan", "fullName": "Batuhan İçöz", "cannotMessage": false, "isSelf": true } ], "hasMore": false, "total": 2 }, "lastActivity": "2025-08-31T16:45:10.123Z", "unreadCount": 2, "isArchived": false, "isMuted": true, "isPinned": false } }, "hasMore": true, "oldestCursor": "1756379069621", "newestCursor": null}
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