Skip to content
Snippets Groups Projects
Forked from funkwhale / funkwhale
6327 commits behind the upstream repository.
subsonic.rst 1.75 KiB

Subsonic API

Funkwhale implements a subset of the Subsonic API that makes it compatible with various apps in the Subsonic ecosystem (See :doc:`../users/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