What the Private API unlocks
The following features are only available when the Private API is active on the server:Sending with method: "private-api"
When you call client.messages.sendText(), the server uses AppleScript by default. To explicitly route the send through the Private API — which enables richer features and better reliability — pass method: "private-api" in the request body.
method explicitly. These are:
subject— attaches a subject line to the messageeffectId— sends the message with an iMessage effect (e.g., balloons, confetti)selectedMessageGuid— sends the message as a reply to a specific prior message
Sending reactions
Reactions (tapbacks) are exclusively a Private API feature. Provide thechatGuid, the GUID of the message you’re reacting to, and one of the supported reaction strings.
reaction values:
Prefix the reaction name with
- to remove a previously sent tapback.
Managing group participants
Adding and removing participants from a group chat both require the Private API. Include the participant’s phone number or email address (with country code for phone numbers).Include the country code when specifying phone number addresses. For US numbers, prefix with
1 — for example, +15550005678.Typing indicators
You can show and hide the typing indicator in a conversation. The indicator automatically clears when a message is sent to that chat.Creating a new chat
Creating a new iMessage conversation requires the Private API. Pass an array of participant addresses and an optional opening message.Marking chats as read and unread
1
Mark as read
Calling
markRead marks the chat as read on the macOS server and notifies other BlueBubbles clients to update their unread state.2
Mark as unread
Calling
markChatAsUnread marks the chat as unread. On macOS Ventura and later, this also updates the unread state for other Apple devices signed into the same account. On earlier macOS versions, the event is dispatched to BlueBubbles clients only.