Documentation for controlling and preserving Bose SoundTouch devices
This document captures advanced API endpoints and device behaviors discovered by the SoundTouch community through reverse engineering projects like SoundCork and ÜberBöse API. These features are not documented in the official Bose SoundTouch Web API v1.0 but are crucial for full device emulation and offline operation.
While the local /8090 API is well-documented, the cloud-side service emulation reveals deeper device integration points.
SoundCork has pioneered the emulation of “Marge” group endpoints, which differ from the local /getGroup API. These are primarily used for persistent configurations like Stereo Pairs (e.g., two ST-10s).
/marge/streaming/account/{account}/device/{device}/group
Returns <group/> if ungrouped, or full group configuration for stereo pairs./marge/streaming/account/{account}/group
Creates a new group (returns a 7-digit group ID). Used for initial pairing./marge/streaming/account/{account}/group/{group}
Dissolves a group configuration.
Devices report real-time telemetry to the cloud. Intercepting these provides a window into device usage without polling.
POST /v1/scmudc/{deviceId}play-state-changed, preset-pressed, power-pressed, source-state-changed, and art-changed (Metadata updates). This endpoint was first extensively documented in the ÜberBöse API specification.
When a SoundTouch device boots or “powers on” (distinct from waking from standby), it contacts specific support endpoints.
POST /streaming/support/power_onTUNEIN and LOCAL_INTERNET_RADIO source availability from the cloud ONLY at boot time. If the cloud is unreachable during a hard reboot (power cycle), these sources will disappear from the device’s /sources list and become unavailable, even if the local API is working. This behavior was analyzed and reported by the ÜberBöse API project (Issue #3).
Integration with music services (Spotify, Pandora, etc.) involves specific token management endpoints.
POST /oauth/device/{deviceId}/music/musicprovider/{providerId}/token/{tokenType}The community is working on extending SoundTouch functionality beyond its original design.
There is an active effort to add radio-browser.info as a native sourceprovider. This would allow devices to browse a massive directory of thousands of stations without relying on the TuneIn cloud service.
/streaming/sourceproviders response.
Deep analysis of the Stockholm (device firmware) internal web application reveals a set of internal AJAX/XML calls used by the device’s own control interface.
Marge (XML-based) and Gabbo (App-send based).The SoundTouch device firmware has a case-sensitivity bug regarding HTTP ETag headers.
ETag header to be exactly title-cased. If a server returns etag (lowercase), the device fails to use it for If-None-Match requests, breaking efficient preset synchronization.