Subsonic API

Funkwhale implements a subset of the Subsonic API that makes it compatible with various apps in the Subsonic ecosystem (See Using Funkwhale from other apps).

Supported endpoints

We seek the best compatibility with existing apps and wil eventually implement all endpoints that match Funkwhale’s feature set. However, the current implementation do not include folder-based endpoints, as it does not match our internal model at all and will require substantial effort to emulate.

We’ll try to keep this list up-to-date, but you can also browse the relevant code if needed.

As of today, the following endpoints are implemented:

  • createPlaylist
  • deletePlaylist
  • getAlbum
  • getAlbumList2
  • getArtist
  • getArtistInfo2
  • getArtists
  • getAvatar
  • getCoverArt
  • getIndexes
  • getLicense
  • getMusicFolders
  • getPlaylist
  • getPlaylists
  • getRandomSongs
  • getSong
  • getStarred
  • getStarred2
  • getUser
  • ping
  • scrobble
  • search3
  • star
  • stream
  • unstar
  • updatePlaylist

We support both XML and JSON formats for all those endpoints.

Additional properties

Regardless of the endpoints, we always return those additional properties in our payload, which you can use to adapt your client behaviour if needed:

{
    "subsonic-response": {
        ...
        "type": "funkwhale",
        "funkwhaleVersion": "0.17"
    }
}

Testing a Subsonic app

We maintain a demo server at https://demo.funkwhale.audio/, which you can use for your tests. Example with the ping endpoint: https://demo.funkwhale.audio/rest/ping.view?f=json