Skip to content

Subsonic API Reference ​

Tunecamp exposes a full Subsonic API at /rest, compatible with Subsonic API version 1.16.1. This makes it compatible with all major Subsonic clients.

Tested Clients ​

ClientPlatformStatus
DSubAndroidβœ…
SymfoniumAndroidβœ…
TempoiOSβœ…
SubstreamerMultiβœ…
AmuseAndroidβœ…
play:SubiOSβœ…

Connection Settings ​

  • Server URL: https://your-server.com/rest
  • Username: Your Tunecamp username (administrator or artist)
  • Password: Your Subsonic password β€” not your account password

Generate the Subsonic password under Profile β†’ Settings β†’ Subsonic Password. It is shown once, at creation; if you lose it, generate a new one. Removing it signs out every Subsonic app using it, and leaves the rest of your account untouched.

NOTE

The Subsonic protocol authenticates as md5(password + salt), so the server must be able to read the secret back β€” it cannot store a one-way hash. That is why Subsonic gets its own random password instead of your account password: a database leak exposes only revocable, streaming-scoped credentials.

NOTE

Roaming Users: To use Subsonic on a new instance, log in to that instance via the web interface first. This triggers the Lazy Account Creation (roaming) which sets up your local profile; then generate a Subsonic password there.

Supported Endpoints ​

TuneCamp implements the core Subsonic specification (v1.16.1) required by mobile clients:

System & Connectivity ​

EndpointDescriptionStatus
ping.viewCheck server connectivity and authenticateβœ… Supported
getLicense.viewReturns valid server licenseβœ… Supported
getScanStatus.viewMedia library scan statusβœ… Supported

Browsing & Catalog ​

EndpointDescriptionStatus
getMusicFolders.viewList root music foldersβœ… Supported
getIndexes.viewList artists alphabetically indexedβœ… Supported
getArtists.viewList all artists (ID3 indexed)βœ… Supported
getMusicDirectory.viewBrowse directory structure (artist β†’ albums β†’ tracks)βœ… Supported
getArtist.viewGet artist details and discographyβœ… Supported
getAlbum.viewGet album details with tracklistβœ… Supported
getArtistInfo.view / getArtistInfo2.viewArtist biography and imagesβœ… Supported
getAlbumInfo.view / getAlbumInfo2.viewAlbum description and cover artβœ… Supported
getGenres.viewList all musical genresβœ… Supported
EndpointDescriptionStatus
getAlbumList.view / getAlbumList2.viewAlbum lists (newest, random, frequent, recent, starred, alphabeticalByName, byGenre, byYear)βœ… Supported
getRandomSongs.viewRandom track selection from libraryβœ… Supported
getStarred.view / getStarred2.viewGet favorited/starred itemsβœ… Supported
search.view / search2.view / search3.viewFull-text search across artists, albums, and tracksβœ… Supported

Media Streaming & Playback ​

EndpointDescriptionStatus
stream.viewStream audio files (supports transcode bitrates & format conversion)βœ… Supported
getCoverArt.viewServe artwork images for artists, albums, and tracksβœ… Supported
scrobble.viewRecord track plays in database and external scrobblersβœ… Supported
getNowPlaying.viewList currently playing tracks across active sessionsβœ… Supported

Playlists & Podcasts ​

EndpointDescriptionStatus
getPlaylists.viewList your own playlists plus every public one (admins: all)βœ… Supported
getPlaylist.viewGet playlist details with song list β€” owner, admin, or a public playlistβœ… Supported
createPlaylist.viewCreate a new user playlistβœ… Supported
updatePlaylist.viewAdd/remove songs, update visibility β€” owner or admin onlyβœ… Supported
deletePlaylist.viewDelete a playlist β€” owner or admin onlyβœ… Supported
getPodcasts.viewList podcast channels / episodesβœ… Supported
getNewestPodcasts.viewList newest podcast episodesβœ… Supported

User Profile ​

EndpointDescriptionStatus
getUser.viewGet user details and streaming permissionsβœ… Supported

Planned / Non-Implemented Endpoints ​

The following Subsonic endpoints are not currently needed for core playback in DSub/Symfonium/Tempo and return an unsupported endpoint code if queried:

  • download.view (handled via stream.view or TuneCamp native REST API)
  • getSong.view, getTopSongs.view, getSimilarSongs.view
  • getLyrics.view, getAvatar.view
  • star.view, unstar.view (favorites managed via Web UI)
  • getPlayQueue.view, savePlayQueue.view, getBookmarks.view
  • getInternetRadioStations.view, getShares.view, jukeboxControl.view

Released under the MIT License.