Sonos Music API

Sonos uses the Sonos Music API (SMAPI) to communicate with your music service. SMAPI is a platform independent, language independent, Web services API that uses SOAP version 1.1 for messaging. Sonos can access your service over HTTP 1.1 and HTTPS. Sonos describes SMAPI using a WSDL (Web Services Description Language) and XSD (XML Schema Definition). Download the WSDL from SOAP requests and responses.

Sonos is the client of SMAPI. Sonos players and apps send requests via SMAPI to your service endpoint. Your service should respond to these requests. This enables Sonos users to access their own personal accounts on your service using Sonos apps and players. Add your service endpoints to the Content Integration Form before you submit your service for review.

See Content Service: Get Started for details about creating your SMAPI service.

Testing SMAPI endpoints

You can test your endpoints during development using cURL. For example:

curl --location "https://smapi-test.sonoschina.com/smapi/SonosAPI" \
--request POST \
--header 'Content-Type: text/xml' \
--header 'SOAPAction: "http://www.sonos.com/Services/1.1#getApplink"' \
--data '
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.sonos.com/Services/1.1">
   <s:Header>
      <credentials xmlns="http://www.sonos.com/Services/1.1">
         <deviceId>B8-E9-37-C0-01-18:0</deviceId>
         <deviceProvider>Sonos</deviceProvider>
      </credentials>
   </s:Header>
   <s:Body>
      <getAppLink xmlns="http://www.sonos.com/Services/1.1">
         <householdId>Sonos_4czgmbzy91wJnRf8VuKB0eYPyF_1405dcfa</householdId>
         <hardware>Android 7,2</hardware>
         <osVersion>Version 7.2</osVersion>
         <sonosAppName>ACR_Nexus7,2</sonosAppName>
         <callbackPath>sonos://x-callback-url/addAccount?state=sid%3D55555%26OAuthDeviceID%3DSonos_household%26callbackPath%3D%2FaddAccount</callbackPath>   
      </getAppLink>
   </s:Body>
</s:Envelope>'

See Test your service for details.

🚧

Unless otherwise noted, Sonos players send requests to your insecure endpoint. However, we will soon change this so that players send requests to your secure endpoint (we'll let you know when this happens).

You should be able to handle all requests over your secure endpoint once we make this change.

Categories of SMAPI requests

Click an API link to go to the reference page. Or a link to an overview on Sonos Labs for more details.

Authentication

See Add authentication for details.

Browse & search

See Content on Sonos for details.

Personalize content

See Content Service: Add Features for details.

Playlists

See Add playlists for details.

Reports

These APIs are deprecated

See Add reporting for details.

Playback

See Streaming basics for details.