Skip to main content
The client.chats service gives you full control over the iMessage conversations on your BlueBubbles Server. You can paginate through all chats, create new ones, add or remove participants, manage read state, send typing indicators, and delete or leave group chats. Many of these operations require the Private API to be enabled on your server.

List chats

Use list() to query chats from the server’s local iMessage database. Pass a request body to control pagination, sorting, and the related data you want returned.

Query options

Paginate through all chats


Fetch a single chat

Use get() to retrieve a specific chat by its GUID:
The GUID format for direct messages is iMessage;-;+15551234567 (note the -) or iMessage;+;+15551234567 for group chats. Use the GUIDs returned by list() to ensure you have the correct format.

Create a new chat

create() opens a new iMessage conversation with one or more participants. You can optionally send an opening message at the same time.
Creating chats requires the Private API. Requires BlueBubbles Server 0.3.0+.
Include country codes in phone numbers where possible. For US numbers, prefix with 1.

Add and remove participants

Add or remove participants from an existing group chat using addParticipantToChat() and removeParticipantFromChat().
Both methods require the Private API. Requires BlueBubbles Server 0.3.0+.

Mark a chat as read or unread

markRead() marks a chat as read and dispatches a read event to other connected BlueBubbles clients.
Requires Private API and BlueBubbles Server 1.1.0+.

Send typing indicators

Show or hide the typing bubble in a conversation. Both methods require the Private API.
Typing indicators automatically stop when you send a message to the same chat. You don’t need to call stopSendTypingIndicator() after a successful sendText().

Leave or delete a chat

Use leaveChat() to remove yourself from a group conversation. This only works for group chats — calling it on a direct message chat returns an error.
Requires the Private API.

Set or remove a group icon

Customize a group chat’s avatar using setGroupIcon(), or revert to the default with removeGroupIcon(). Both methods require the Private API.