Commands

sonos smapi

sonos smapi

SMAPI (Sonos Music API) is the same protocol the Sonos app uses to browse and search music services — Spotify, Apple Music, TuneIn, Mixcloud, and friends. No third-party app credentials are needed, but some services require local SMAPI auth before search or playback works.

sonos smapi services
sonos smapi categories --service "<Service>"
sonos smapi search     --service "<Service>" --category <cat> <query>
sonos smapi browse     --service "<Service>" [--id <container>] [--recursive]

#sonos smapi services

Lists the Sonos music-service catalog available to the household/region. A listed service is not necessarily authenticated for local SMAPI search yet.

sonos smapi services
sonos smapi services --format json

#sonos smapi categories

Lists the searchable categories for one service.

sonos smapi categories --service "Spotify"
FlagDefaultWhat it does
--service stringSpotifyMusic service name (as shown in sonos smapi services).

Searches a linked service.

sonos smapi search --service "Spotify" --category tracks "miles davis"
sonos smapi search --service "Spotify" --category albums --limit 25 "kind of blue"

# Pick a result and play it
sonos smapi search --service "Spotify" --category tracks "miles davis" \
  --open --name "Kitchen" --index 1
FlagDefaultWhat it does
--service stringSpotifyService name.
--category stringtracksCategory — service-dependent (tracks, albums, artists, playlists).
--limit int10Max results (1–200, service-dependent).
--index int1Result index for --open / --enqueue (1-based).
--openoffPlay the selected result. Requires --name / --ip.
--enqueueoffEnqueue the selected result. Requires --name / --ip.

#sonos smapi browse

Browse a music service container hierarchically.

sonos smapi browse --service "Spotify" --id root
sonos smapi browse --service "Spotify" --id <some-container-id>
sonos smapi browse --service "Spotify" --id root --recursive
FlagDefaultWhat it does
--service stringSpotifyService name.
--id stringrootContainer/item id. Use root to start.
--limit int50Max results.
--recursiveoffRecursively browse (service-dependent).
--index int1Result index for --open / --enqueue.
--openoffPlay selected item.
--enqueueoffEnqueue selected item.

#Authenticating a service

Some services need a one-time DeviceLink/AppLink flow before SMAPI search works. See sonos auth smapi.

#See also