Skip to content
SoundTouch API Comparison: Community Wiki vs Current Implementation

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)

EndpointWiki StatusOur StatusNotes
/infoโœ… Documentedโœ… CompleteDevice information
/now_playingโœ… Documentedโœ… CompleteCurrent playback status
/keyโœ… Documentedโœ… CompleteKey press/release simulation
/volumeโœ… Documentedโœ… CompleteVolume and mute control
/bassโœ… Documentedโœ… CompleteBass level control
/bassCapabilitiesโœ… Documentedโœ… CompleteBass capability detection
/sourcesโœ… Documentedโœ… CompleteAvailable audio sources
/selectโœ… Documentedโœ… CompleteSource selection
/presetsโœ… Documentedโœ… CompletePreset configurations (read-only)
/getZoneโœ… Documentedโœ… CompleteZone status and membership
/setZoneโœ… Documentedโœ… CompleteZone creation and management
/addZoneSlaveโœ… Documentedโœ… CompleteAdd device to zone
/removeZoneSlaveโœ… Documentedโœ… CompleteRemove device from zone
/capabilitiesโœ… Documentedโœ… CompleteDevice feature capabilities
/audiodspcontrolsโœ… Documentedโœ… CompleteAudio DSP modes and video sync
/audioproducttonecontrolsโœ… Documentedโœ… CompleteAdvanced bass/treble controls
/audioproductlevelcontrolsโœ… Documentedโœ… CompleteSpeaker level controls
/name (GET/POST)โœ… Documentedโœ… CompleteDevice name management
/balanceโœ… Documentedโœ… CompleteStereo balance control
/clockTimeโœ… Documentedโœ… CompleteDevice time management
/clockDisplayโœ… Documentedโœ… CompleteClock display settings
/networkInfoโœ… Documentedโœ… CompleteNetwork connectivity info
/requestTokenโœ… Documentedโœ… CompleteBearer token generation

๐Ÿ”ฅ High Priority Missing (20 endpoints)

EndpointWiki StatusPriorityUse Case
/storePresetโœ… DetailedHIGHSave stations/playlists to presets
/removePresetโœ… DetailedHIGHDelete saved presets
/selectPresetโœ… DetailedHIGHPlay preset by ID
/setMusicServiceAccountโœ… DetailedHIGHAdd Spotify/Pandora accounts
/removeMusicServiceAccountโœ… DetailedHIGHRemove music service accounts
/searchStationโœ… DetailedHIGHFind Pandora/Spotify content
/addStationโœ… DetailedHIGHAdd stations to favorites
/removeStationโœ… DetailedHIGHRemove stations from favorites
/navigateโœ… DetailedHIGHBrowse music libraries/services
/searchโœ… DetailedHIGHSearch music content
/userPlayControlโœ… DetailedHIGHPlay/pause/stop controls
/userRatingโœ… DetailedHIGHThumbs up/down ratings
/recentsโœ… DetailedHIGHRecently played content
/standbyโœ… DetailedHIGHPower management
/powerManagementโœ… DetailedHIGHPower state information
/lowPowerStandbyโœ… DetailedHIGHLow-power mode
/listMediaServersโœ… DetailedHIGHUPnP/DLNA server discovery
/serviceAvailabilityโœ… DetailedHIGHSource availability status
/introspectโœ… DetailedHIGHMusic service account status
/languageโœ… DetailedHIGHDevice language settings

๐ŸŽต Music Service Management (12 endpoints)

CategoryEndpointsWiki CoverageNotes
Account Management/setMusicServiceAccount, /removeMusicServiceAccountโœ… Full XML examplesPandora, Spotify, NAS setup
Station Management/searchStation, /addStation, /removeStationโœ… Pandora testedStation discovery and favorites
Content Navigation/navigate, /searchโœ… Detailed examplesMusic library browsing
Track Information/trackInfo, /introspectโœ… Service-specificExtended metadata

๐Ÿ  Smart Home Integration (15 endpoints)

CategoryEndpointsWiki CoverageNotes
Notifications/speaker, /playNotificationโœ… TTS examplesText-to-speech, URL playback
Power Management/standby, /powerManagement, /lowPowerStandbyโœ… CompleteSmart home automation
Network Management/performWirelessSiteSurvey, /addWirelessProfile, /getActiveWirelessProfileโœ… WiFi setupNetwork configuration
Bluetooth/enterBluetoothPairing, /clearBluetoothPaired, /bluetoothInfoโœ… Pairing controlBluetooth management
Source Control/selectLastSource, /selectLastSoundTouchSource, /selectLocalSourceโœ… Source switchingQuick source access

๐Ÿ“ฑ Advanced Device Features (19 endpoints)

CategoryEndpointsWiki CoverageNotes
Stereo Pairs/getGroup, /addGroup, /removeGroup, /updateGroupโœ… ST-10 specificL/R speaker pairing
System Info/soundTouchConfigurationStatus, /systemtimeout, /rebroadcastlatencymodeโœ… ConfigurationDevice state management
Software Updates/swUpdateCheck, /swUpdateQuery, /swUpdateAbort, /swUpdateStartโœ… Update processFirmware management
Audio Processing/DSPMonoStereo, /audiospeakerattributeandsettingโœ… Hardware-specificAdvanced 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 changes
  • groupUpdated - Stereo pair changes
  • zoneUpdated - Multi-room changes
  • nowPlayingUpdated - Source/playback changes
  • volumeUpdated - Volume/mute changes
  • audiodspcontrols - 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) error

Phase 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:

  1. Phase 1 Implementation: Focus on preset management and music services (high user impact)
  2. Test Infrastructure: Set up automated testing against real devices
  3. Documentation: Integrate wiki examples into our API documentation
  4. 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.

Last updated on