Subsonic API Compatibility

Are you a Subsonic client developer? Check out the API features supported by Navidrome

Supported Subsonic API endpoints

Navidrome is currently compatible with Subsonic API v1.16.1, with some exceptions.

OpenSubsonic extensions are being constantly added. For an up to date list of supported extensions, check here.

This is a (hopefully) up-to-date list of all Subsonic API endpoints implemented in Navidrome. Check the “Notes” column for limitations/missing behavior. Also keep in mind these differences between Navidrome and Subsonic:

  • Navidrome will not implement any video related functionality, it is focused on Music only
  • Navidrome supports multiple Music Libraries (Music Folders) with user-specific access controls
  • There are currently no plans to support browse-by-folder. Endpoints for this functionality (Ex: getIndexes, getMusicDirectory) returns a simulated directory tree, using the format: /Artist/Album/01 - Song.mp3.
  • Navidrome does not mark songs as played by calls to stream, only when scrobble is called with submission=true
  • IDs in Navidrome are always strings, normally MD5 hashes or UUIDs. This is important to mention because, even though the Subsonic API schema specifies IDs as strings, some clients insist in converting IDs to integers
System
ping
getLicenseAlways valid ;)
Browsing
getMusicFoldersReturns all libraries accessible to the authenticated user
getIndexesDoesn’t support shortcuts, nor direct children
getMusicDirectory
getSong
getArtists
getArtist
getAlbum
getGenres
getArtistInfoRequires external integrations
getArtistInfo2Requires external integrations
getAlbumInfoRequires external integrations
getAlbumInfo2Requires external integrations
getTopSongsRequires Last.fm integration
getSimilarSongsRequires Last.fm integration
getSimilarSongs2Requires Last.fm integration
Album/Songs Lists
getAlbumList
getAlbumList2
getStarred
getStarred2
getNowPlaying
getRandomSongs
getSongsByGenre
Searching
search2Doesn’t support Lucene queries, only simple auto complete queries
search3Doesn’t support Lucene queries, only simple auto complete queries
Playlists
getPlaylistsusername parameter is not implemented
getPlaylist
createPlaylist
updatePlaylist
deletePlaylist
Media Retrieval
stream
downloadAccepts ids for Songs, Albums, Artists and Playlists. Also accepts transcoding options similar to stream
getCoverArt
getLyricsWorks with embedded lyrics and external files
getAvatarIf Gravatar is enabled and the user has an email, returns a redirect to their Gravatar. Or else returns a placeholder
Media Annotation
star
unstar
setRating
scrobble
Bookmarks
getBookmarks
createBookmark
deleteBookmark
getPlayQueuecurrent is a string id, not int as it shows in the official Subsonic API documentation
savePlayQueue
Sharing (if EnableSharing is true)
getShares
createShare
updateShare
deleteShare
Internet radio
getInternetRadioStations
createInternetRadioStation
updateInternetRadioStation
deleteInternetRadioStation
User Management
getUserIgnores username parameter, and returns the user identified in the authentication. Roles reflect actual server capabilities and user permissions. For example: downloadRole depends on download being enabled, jukeboxRole depends on jukebox being enabled, etc. Note that some features like ratings and favorites are always available to all users regardless of roles
getUsersReturns only the user identified in the authentication
Media library scanning
getScanStatusAlso returns the extra fields lastScan and folderCount
startScanAccepts an extra fullScan boolean param, to force a full scan