SoundTouch supportedURLs Endpoint Analysis
This document provides a comprehensive analysis of the /supportedURLs endpoint response from real Bose SoundTouch devices and compares it with our current implementation.
Reconciliation note (June 2026). The categorised lists below had drifted from
pkg/client. Verified against the code, these are implemented and have been re-marked (some were wrongly under “Not Yet Implemented”, and a few were listed twice): the music-service set (setMusicServiceAccount,setMusicServiceOAuthAccount,removeMusicServiceAccount,serviceAvailability), presets (storePreset,removePreset), stations (searchStation,addStation,removeStation),navigate, the native stereo-pair group set (getGroup,addGroup,removeGroup,updateGroup),speaker,playNotification,requestToken,notification. Still not implemented (confirmed absent frompkg/client):search,standby,powerManagement,lowPowerStandby,language,listMediaServers,bluetoothInfo,userPlayControl, and the wireless / bluetooth-pairing / software-update / source-shortcut families.
Discovery Summary
Test Devices:
- Device 1:
192.0.2.11:8090(deviceID:AABBCCDDEE01) - Device 2:
192.0.2.10:8090(deviceID:AABBCCDDEEFF)
Key Findings:
- Both devices return identical endpoint lists
- 103 total endpoints discovered
- ~35 currently implemented in this Go library (34%)
- 68 additional endpoints available for future implementation
Endpoint Categories
✅ Fully Implemented (Core Functionality)
Device Information (5/5):
/info- Device information/capabilities- Device capabilities/supportedURLs- Supported endpoints list/networkInfo- Network configuration/name- Device name management
Playback Control (3/3):
/nowPlaying- Current playback status/now_playing- Alternative current playback endpoint/key- Send key commands
Volume & Audio (4/4):
/volume- Volume control/bass- Bass settings/bassCapabilities- Bass capability information/balance- Stereo balance
Source Management (2/2):
/sources- Available sources/select- Select source/content
Preset Management (1/2):
/presets- Get presets ✅ Complete/storePreset- Store/update presets ✅ Complete (reverse-engineered)/removePreset- Remove presets ✅ Complete (reverse-engineered)
Zone/Multiroom (4/4):
/getZone- Get zone configuration/setZone- Set zone configuration/addZoneSlave- Add device to zone/removeZoneSlave- Remove device from zone
Clock & Display (2/2):
/clockDisplay- Clock display settings/clockTime- Device time management
Advanced Audio (3/3):
/audiodspcontrols- DSP settings (capability-dependent)/audioproducttonecontrols- Advanced tone controls (capability-dependent)/audioproductlevelcontrols- Speaker level controls (capability-dependent)
System Info (1/3):
/recents- Recently played content ✅/trackInfo- Track information ❌ non-functional on real devices (use/now_playing)/bluetoothInfo- Bluetooth information ❌ not implemented inpkg/client
✅ Stereo-Pair Group Management (native)
Implemented natively in pkg/client (in addition to the /setZone multiroom path):
/addGroup✅ -AddGroup()/removeGroup✅ -RemoveGroup()/getGroup✅ -GetGroup()/updateGroup✅ -UpdateGroup()
❌ Not Yet Implemented (High Priority)
Enhanced Playback Control:
/nowSelection- Current selection details/playbackRequest- Advanced playback requests/userPlayControl- User play control interface/userTrackControl- User track control interface/selectPreset- Select preset by ID
Source Enhancement:
/sourceDiscoveryStatus- Source discovery status/nameSource- Name/rename sources/selectLastSource- Select last used source/selectLastWiFiSource- Select last WiFi source/selectLastSoundTouchSource- Select last SoundTouch source/selectLocalSource- Select local source
Music Services Integration: ✅ implemented (moved out of this list)
✅/setMusicServiceAccountSetMusicServiceAccount()✅/setMusicServiceOAuthAccountSetMusicServiceOAuthAccount()✅/removeMusicServiceAccountRemoveMusicServiceAccount()✅/serviceAvailabilityGetServiceAvailability()
Enhanced Presets:
✅/storePresetStorePreset()(also listed under Fully Implemented)✅/removePresetRemovePreset()/bookmark- Bookmark current content/userRating- User rating for content
Station/Radio Management:
✅/searchStationSearchStation()✅/addStationAddStation()✅/removeStationRemoveStation()/genreStations- Browse stations by genre/stationInfo- Station information
❌ Not Yet Implemented (Medium Priority)
System Configuration:
/powerManagement- Power management settings/standby- Standby mode control/lowPowerStandby- Low power standby mode/systemtimeout- System timeout settings/powersaving- Power saving configuration/language- Language settings✅/speakerPlayTTS()/PlayURL()(TTS & URL notifications; not “speaker configuration”)
Network & Connectivity:
/performWirelessSiteSurvey- WiFi site survey/addWirelessProfile- Add WiFi profile/getActiveWirelessProfile- Get active WiFi profile/setWiFiRadio- WiFi radio control
Bluetooth Enhancement:
/enterBluetoothPairing- Enter Bluetooth pairing mode/clearBluetoothPaired- Clear Bluetooth pairings
Content Discovery:
/search- Content search✅/navigateNavigate()/listMediaServers- List available media servers
❌ Not Yet Implemented (Low Priority)
Pairing & Setup:
/pairLightswitch- Pair with lightswitch accessory/cancelPairLightswitch- Cancel lightswitch pairing/clearPairedList- Clear all pairings/enterPairingMode- Enter general pairing mode/setPairedStatus- Set pairing status/setPairingStatus- Update pairing status/soundTouchConfigurationStatus- Configuration status/setup- Device setup interface
Software Updates:
/swUpdateStart- Start software update/swUpdateAbort- Abort software update/swUpdateQuery- Query update status/swUpdateCheck- Check for updates
System Utilities:
/userActivity- User activity tracking✅/requestTokenRequestToken()✅/notificationNotifySourcesUpdated()✅/playNotificationPlayNotification()/introspect- System introspection/test- System test interface
Internal/Advanced:
/pdo- Internal PDO operations/slaveMsg- Slave device messaging/masterMsg- Master device messaging/factoryDefault- Factory reset/criticalError- Critical error handling/netStats- Network statistics/rebroadcastlatencymode- Rebroadcast latency mode/getBCOReset- Get BCO reset status/setBCOReset- Set BCO reset
Product Management:
/setProductSerialNumber- Set product serial number/setProductSoftwareVersion- Set software version/setComponentSoftwareVersion- Set component versions
Cloud Integration (EOL May 2026):
/marge- Marge service integration/setMargeAccount- Set Marge account/pushCustomerSupportInfoToMarge- Push support info to cloud
Enhanced DSP (Device Dependent):
/DSPMonoStereo- DSP mono/stereo settings
Implementation Recommendations
Phase 1: High-Value User Features
- Enhanced Source Selection -
/selectLast*endpoints for better UX - Preset Management -
/storePreset,/removePreset,/selectPreset - Station Management - Radio/streaming station operations
- Music Service Integration - Account management endpoints
Phase 2: System Enhancement
- Power Management - Standby and power saving controls
- Network Management - WiFi profile and radio control
- Content Discovery - Search and navigation capabilities
- Bluetooth Enhancement - Pairing management
Phase 3: Advanced Features
- System Diagnostics - Network stats, introspection
- Update Management - Software update control
- Notification System - Notification management
- Advanced Setup - Pairing and configuration tools
Notes
Device Consistency: Both test devices expose identical endpoint lists, suggesting consistent firmware behavior across SoundTouch models.
Official vs. Real: The device exposes 84 additional endpoints beyond the 19 documented in the official API v1.0, indicating significant undocumented functionality.
Cloud Dependency: Some endpoints (especially
/marge*) may become non-functional after the May 2026 SoundTouch cloud EOL.Implementation Strategy: Focus on user-facing functionality first, then system management, finally internal/diagnostic features.
Testing Required: Each new endpoint implementation should be tested against real hardware to verify functionality and response formats.
Documentation Gap: Many endpoints lack official documentation, requiring reverse engineering through testing.
Raw Device Response
Device Count: 103 unique endpoints Response Format: XML with URL location attributes Common Pattern: Most endpoints support both GET (query) and POST (modify) operations
Example Response Structure:
<?xml version="1.0" encoding="UTF-8" ?>
<supportedURLs deviceID="AABBCCDDEE01">
<URL location="/info" />
<URL location="/capabilities" />
<!-- ... 101 additional endpoints ... -->
</supportedURLs>This analysis provides a roadmap for expanding the Go library’s API coverage from 34% to potentially 100% of available device functionality.