SoundTouch API Comparison: Community Wiki vs Current Implementation
SoundTouch API Comparison: Community Wiki vs Current Implementation
Date: January 2026 Source: SoundTouch Plus Wiki Our Implementation: Bose-SoundTouch Go Library v1.0
Executive Summary
The SoundTouch Plus community wiki documents 87 distinct API endpoints with comprehensive examples, while our current implementation covers 23 endpoints. This represents a significant opportunity to expand our API coverage from basic functionality to comprehensive SoundTouch ecosystem management.
Key Findings
- ๐ Wiki Coverage: 87 endpoints documented with real-world examples
- ๐ Our Coverage: 23 endpoints implemented (26% of wiki coverage)
- ๐ฏ Gap: 64 additional endpoints available for implementation
- โญ Quality: Wiki provides production-ready XML examples and device-specific notes
Implementation Status Matrix
โ Already Implemented (23 endpoints)
| Endpoint | Wiki Status | Our Status | Notes |
|---|---|---|---|
/info | โ Documented | โ Complete | Device information |
/now_playing | โ Documented | โ Complete | Current playback status |
/key | โ Documented | โ Complete | Key press/release simulation |
/volume | โ Documented | โ Complete | Volume and mute control |
/bass | โ Documented | โ Complete | Bass level control |
/bassCapabilities | โ Documented | โ Complete | Bass capability detection |
/sources | โ Documented | โ Complete | Available audio sources |
/select | โ Documented | โ Complete | Source selection |
/presets | โ Documented | โ Complete | Preset configurations (read-only) |
/getZone | โ Documented | โ Complete | Zone status and membership |
/setZone | โ Documented | โ Complete | Zone creation and management |
/addZoneSlave | โ Documented | โ Complete | Add device to zone |
/removeZoneSlave | โ Documented | โ Complete | Remove device from zone |
/capabilities | โ Documented | โ Complete | Device feature capabilities |
/audiodspcontrols | โ Documented | โ Complete | Audio DSP modes and video sync |
/audioproducttonecontrols | โ Documented | โ Complete | Advanced bass/treble controls |
/audioproductlevelcontrols | โ Documented | โ Complete | Speaker level controls |
/name (GET/POST) | โ Documented | โ Complete | Device name management |
/balance | โ Documented | โ Complete | Stereo balance control |
/clockTime | โ Documented | โ Complete | Device time management |
/clockDisplay | โ Documented | โ Complete | Clock display settings |
/networkInfo | โ Documented | โ Complete | Network connectivity info |
/requestToken | โ Documented | โ Complete | Bearer token generation |
๐ฅ High Priority Missing (20 endpoints)
| Endpoint | Wiki Status | Priority | Use Case |
|---|---|---|---|
/storePreset | โ Detailed | HIGH | Save stations/playlists to presets |
/removePreset | โ Detailed | HIGH | Delete saved presets |
/selectPreset | โ Detailed | HIGH | Play preset by ID |
/setMusicServiceAccount | โ Detailed | HIGH | Add Spotify/Pandora accounts |
/removeMusicServiceAccount | โ Detailed | HIGH | Remove music service accounts |
/searchStation | โ Detailed | HIGH | Find Pandora/Spotify content |
/addStation | โ Detailed | HIGH | Add stations to favorites |
/removeStation | โ Detailed | HIGH | Remove stations from favorites |
/navigate | โ Detailed | HIGH | Browse music libraries/services |
/search | โ Detailed | HIGH | Search music content |
/userPlayControl | โ Detailed | HIGH | Play/pause/stop controls |
/userRating | โ Detailed | HIGH | Thumbs up/down ratings |
/recents | โ Detailed | HIGH | Recently played content |
/standby | โ Detailed | HIGH | Power management |
/powerManagement | โ Detailed | HIGH | Power state information |
/lowPowerStandby | โ Detailed | HIGH | Low-power mode |
/listMediaServers | โ Detailed | HIGH | UPnP/DLNA server discovery |
/serviceAvailability | โ Detailed | HIGH | Source availability status |
/introspect | โ Detailed | HIGH | Music service account status |
/language | โ Detailed | HIGH | Device language settings |
๐ต Music Service Management (12 endpoints)
| Category | Endpoints | Wiki Coverage | Notes |
|---|---|---|---|
| Account Management | /setMusicServiceAccount, /removeMusicServiceAccount | โ Full XML examples | Pandora, Spotify, NAS setup |
| Station Management | /searchStation, /addStation, /removeStation | โ Pandora tested | Station discovery and favorites |
| Content Navigation | /navigate, /search | โ Detailed examples | Music library browsing |
| Track Information | /trackInfo, /introspect | โ Service-specific | Extended metadata |
๐ Smart Home Integration (15 endpoints)
| Category | Endpoints | Wiki Coverage | Notes |
|---|---|---|---|
| Notifications | /speaker, /playNotification | โ TTS examples | Text-to-speech, URL playback |
| Power Management | /standby, /powerManagement, /lowPowerStandby | โ Complete | Smart home automation |
| Network Management | /performWirelessSiteSurvey, /addWirelessProfile, /getActiveWirelessProfile | โ WiFi setup | Network configuration |
| Bluetooth | /enterBluetoothPairing, /clearBluetoothPaired, /bluetoothInfo | โ Pairing control | Bluetooth management |
| Source Control | /selectLastSource, /selectLastSoundTouchSource, /selectLocalSource | โ Source switching | Quick source access |
๐ฑ Advanced Device Features (19 endpoints)
| Category | Endpoints | Wiki Coverage | Notes |
|---|---|---|---|
| Stereo Pairs | /getGroup, /addGroup, /removeGroup, /updateGroup | โ ST-10 specific | L/R speaker pairing |
| System Info | /soundTouchConfigurationStatus, /systemtimeout, /rebroadcastlatencymode | โ Configuration | Device state management |
| Software Updates | /swUpdateCheck, /swUpdateQuery, /swUpdateAbort, /swUpdateStart | โ Update process | Firmware management |
| Audio Processing | /DSPMonoStereo, /audiospeakerattributeandsetting | โ Hardware-specific | Advanced audio features |
Wiki Documentation Quality Analysis
๐ Exceptional Documentation Quality
Real-World Examples:
- โ Complete XML request/response examples
- โ Device-specific behavior notes (ST-10 vs ST-300)
- โ Error conditions and troubleshooting
- โ WebSocket event generation documentation
- โ Service-specific requirements (Pandora Premium, etc.)
Production-Ready Details:
<!-- Example from wiki - POST /storePreset -->
<preset id="3" createdOn="1701220500" updatedOn="1701220500">
<ContentItem source="TUNEIN" type="stationurl" location="/v1/playback/station/s309605" sourceAccount="" isPresetable="true">
<itemName>K-LOVE 90s</itemName>
<containerArt>http://cdn-profiles.tunein.com/s309605/images/logog.png</containerArt>
</ContentItem>
</preset>Device Compatibility Matrix:
- ST-10: Supports notifications, stereo pairing
- ST-300: Supports advanced audio controls, HDMI
- All devices: Support basic playback and zone management
๐ฏ Implementation Guidance
Safety Notes from Wiki:
- Volume limits: Devices auto-limit 10-70 for notifications
- Timeout handling: Some endpoints timeout on unsupported devices
- State requirements: Certain operations require specific device states
WebSocket Events Documented:
presetsUpdated- Preset changesgroupUpdated- Stereo pair changeszoneUpdated- Multi-room changesnowPlayingUpdated- Source/playback changesvolumeUpdated- Volume/mute changesaudiodspcontrols- Audio mode changes
Implementation Roadmap
Phase 1: Essential Missing Features (High Impact)
Target: 20 endpoints in 4 weeks
// Preset Management
func (c *Client) StorePreset(id int, content ContentItem) error
func (c *Client) RemovePreset(id int) error
func (c *Client) SelectPreset(id int) error
// Music Service Setup
func (c *Client) SetMusicServiceAccount(source, user, pass string) error
func (c *Client) RemoveMusicServiceAccount(source, user string) error
// Content Discovery
func (c *Client) NavigateLibrary(source, account string, startItem, numItems int) (*NavigateResponse, error)
func (c *Client) SearchContent(source, account, term string) (*SearchResponse, error)
// Power Management
func (c *Client) Standby() error
func (c *Client) GetPowerState() (*PowerState, error)Phase 2: Smart Home Integration (Medium Impact)
Target: 15 endpoints in 3 weeks
// Notification System
func (c *Client) PlayTTSMessage(message string, volume int) error
func (c *Client) PlayURL(url string, volume int) error
// Network Management
func (c *Client) PerformWiFiSurvey() (*WiFiNetworks, error)
func (c *Client) AddWiFiProfile(ssid, password, securityType string) error
// Enhanced Controls
func (c *Client) SendPlayControl(action PlayControlAction) error
func (c *Client) RateCurrentTrack(rating RatingValue) errorPhase 3: Advanced Features (Lower Impact)
Target: 19 endpoints in 4 weeks
// Stereo Pair Management
func (c *Client) CreateStereoPair(leftIP, rightIP string, name string) error
func (c *Client) GetStereoPairStatus() (*StereoPair, error)
// System Management
func (c *Client) CheckSoftwareUpdate() (*UpdateInfo, error)
func (c *Client) GetSystemTimeout() (*TimeoutConfig, error)Integration Benefits
๐ Complete Ecosystem Support
- Music Services: Full Spotify, Pandora, NAS integration
- Smart Home: Power, notifications, network management
- Professional: Advanced audio controls, system configuration
๐ง Developer Experience
- Comprehensive Examples: Wiki provides copy-paste XML structures
- Error Handling: Well-documented failure modes and recovery
- Device Compatibility: Clear hardware-specific feature matrix
๐ Use Case Expansion
- Home Automation: Complete power and network control
- Music Management: Full playlist and station management
- Professional Audio: Advanced DSP and speaker configuration
- System Administration: Update management and configuration
Technical Implementation Notes
Request/Response Patterns from Wiki
Standard Success Response:
<?xml version="1.0" encoding="UTF-8" ?>
<status>/endpointName</status>Complex Response Example (from /navigate):
<navigateResponse source="STORED_MUSIC" sourceAccount="guid/0">
<totalItems>10</totalItems>
<items>
<item Playable="1">
<name>Album Artists</name>
<type>dir</type>
<ContentItem source="STORED_MUSIC" location="107" sourceAccount="guid/0" isPresetable="true">
<itemName>Album Artists</itemName>
</ContentItem>
</item>
</items>
</navigateResponse>Error Handling Patterns
Device Compatibility:
// Check capabilities before calling advanced features
capabilities, err := client.GetCapabilities()
if err != nil {
return err
}
if !capabilities.SupportsAudioDSPControls {
return ErrFeatureNotSupported
}WebSocket Event Integration
Each POST endpoint maps to specific WebSocket events that our existing event system can handle:
// Extend existing event system
type WebSocketEvent struct {
PresetUpdated *PresetsUpdate `xml:"presetsUpdated"`
GroupUpdated *GroupUpdate `xml:"groupUpdated"`
// Add new event types...
}Conclusion
The SoundTouch Plus Wiki represents a treasure trove of production-ready API documentation that can transform our library from basic device control to comprehensive SoundTouch ecosystem management.
Key Opportunities:
- ๐ฏ 3x Coverage Expansion: From 23 to 87+ endpoints
- ๐ Smart Home Ready: Complete automation integration
- ๐ต Music Service Integration: Full streaming service support
- ๐ฑ Professional Features: Advanced audio and system control
- โ Production Ready: Real-world tested examples and error handling
Immediate Next Steps:
- Phase 1 Implementation: Focus on preset management and music services (high user impact)
- Test Infrastructure: Set up automated testing against real devices
- Documentation: Integrate wiki examples into our API documentation
- Community Engagement: Collaborate with SoundTouch Plus project for mutual benefit
This wiki documentation provides everything needed to implement a complete, production-ready SoundTouch API library that rivals official Bose applications in functionality.
Note: All endpoints documented in the wiki are tested against real hardware. Device-specific limitations are clearly documented with compatibility matrices for ST-10, ST-300, and other SoundTouch models.