New features in versions 10.5, 10.6, & 11.0

The Control API includes the following features as of version 11.0:

  • You can now cancel audio clips with cancelAudioClip.
  • The audioClip object shows the available error codes and states.
    • Removed ERROR_AUDIO_CLIP_DO_NOT_DISTURB, ERROR_AUDIO_CLIP_CANCEL,
      and ERROR_AUDIO_CLIP_EXPIRE. Added ERROR_AUDIO_CLIP_PAUSE_CONTENT_FAILED.
    • Removed PENDING audioClipState, added ERROR.
  • We recommend that you provide the User-Agent HTTP Header to all requests as a best practice so that Sonos knows who is sending the request. See Send HTTP headers; send parameters in the body in the Control documentation for details.
  • Made it easier to find the latest Cloud Queue API version supported. See the Cloud Queue API page for details.
  • Clarified the difference between loadStreamUrl and loadCloudQueue. Use loadStreamUrl to load a live stream that does not end. Use loadCloudQueue to load a set list of tracks or a playlist.
  • You no longer need to send the X-Sonos-API-Key in Control API request headers to the Sonos cloud. The access token is enough to authenticate your request. The API-key is also known as your client credentials. Use these credentials to authenticate with users. Once your app authenticates with the user, use the access token in all of your requests. See Authorize for details.
  • A detailed description of the lifetime of an event subscription. Subscriptions last for a period of three days. Sonos cleans up most subscriptions 30 seconds after the target has gone, except for subscriptions to the groups and favorites namespaces. See Subscribe for details.
  • Users can request that Sonos remove connections to your connected product to deactivate it on their Sonos system. Sonos will add a user interface for this at a later date.
  • If your app sends invalid player IDs in the createGroup or setGroupMembers commands, or the modifyGroupMembers command to add players to the group, it sends an ERROR_INVALID_PARAMETER error with the list of invalid player IDs. See globalError and groups for details.

SMAPI updates

SMAPI includes the following features and updates:

  • We moved all of the documentation from Sonos Labs to the developer portal. See Content Service: Add Features for a list of the features and links to how to add them. If you’re a new content service partner, start developing your integration by following the Content Service: Get Started.
  • Sonos deprecated the python Self-Test for content partners. When you submit your service for review, add “N/A” in the Self-Test configuration file and Self-Test Summary Report HTML file fields. See C: Quality assurance and performance in the Submit your service documentation for details.
  • If you have a manifest file URL, enter it in the String Resource XML File field. See Submit your service for details.
  • Users can add programmed radio tracks or stations to favorites. See How favorites work in Add programmed radio for details.
  • We no longer send getLastUpdate requests if the user is not browsing your content. This should limit the amount of requests sent to your server.

SMAPI documentation fixes and updates:

  • Set up image substitution for album art section in Add album art had malformed sample XML code.
  • Fixed typo in Create lists. The albumsList itemType should be albumList. Also changed the albumsList displayType example to listOfAlbums to eliminate confusion with itemType.
  • Typo in SMAPI object types and Add playlists. The renamable property should be renameable.
  • In Add reporting, clarified that endpoints require the version number somewhere in the URL, the example uses v2.1, and partners can also use the latest version of the cloud queue.

SMAPI known issues:

  • There’s a bug in how the Sonos app displays string text for the title entry in an action under relatedActions. See Add actions for details. As a workaround, bypass the strings file and hard code the text that you want to display for the action. Sonos correctly replaces strings for relatedBrowse and relatedText actions.
  • Sonos players don’t respect the AuthTokenExpired Fault for getMediaURI when the mimeType is audio/m3u8.

See Release notes for Sonos software for customer-facing features.