client.server.
Metadata and logs
getServerMetadata()
Returns metadata about the BlueBubbles Server and the underlying operating system — including the server version, macOS version, and other environment details.
Signature
getServerLogs()
Fetches recent log output from the BlueBubbles Server.
Signature
Alerts
getServerAlerts()
Returns all alerts generated by the BlueBubbles Server. Alerts include connectivity warnings, configuration issues, and other notable server events.
Signature
markAlertsAsRead()
Marks one or more alerts as read on the server. You must pass the IDs of the alerts you want to mark — a catch-all endpoint is intentionally not provided to avoid race conditions.
Signature
An array of alert IDs to mark as read. Retrieve alert IDs using
getServerAlerts() first.Restart
restartServer()
Performs a full restart of the BlueBubbles Server application. The server closes itself completely and reopens.
Signature
restartServices()
Performs a soft restart of the individual services running inside BlueBubbles Server — including the HTTP service, the FCM service, and the Private API service. The server application itself stays running.
Signature
Statistics
getMediaTotals()
Returns aggregate totals for different media types (images, videos, etc.) across all chats.
Signature
getMediaTotalsPerChat()
Returns media totals broken down by individual chat. Useful for identifying which conversations contain the most media.
Signature
getImessageEntityTotals()
Returns row counts for the core iMessage database entities: handles, messages, and chats.
Signature
Updates
checkForServerUpdate()
Checks whether a new version of the BlueBubbles Server app is available. Returns update metadata if an update exists.
Signature
installServerUpdate()
Installs an available update. By default the call returns immediately without waiting for the installation to complete. Pass wait=true as a URL parameter (via requestBody) to block until the update finishes.
Signature
Always call
checkForServerUpdate() before installServerUpdate() to confirm
an update is actually available. Installing when no update exists will return
an error.