Skip to content

Subsonic API

Derrik Diener edited this page Jul 16, 2026 · 1 revision

Subsonic API Compatibility

Supernova implements the Subsonic REST API. This means you can use almost any third-party Subsonic client on iOS, Android, or Desktop to connect to your Supernova server.

Supported Clients

Because Supernova strictly adheres to the standard Subsonic API contracts, popular apps will work out-of-the-box, including:

  • DSub (Android)
  • playSub (iOS)
  • Symfonium (Android)
  • Ultrasonic (Android)

Connecting

When configuring your client, you will generally need to provide:

  1. Server URL: The URL where your Supernova instance is hosted (e.g., http://192.168.1.100:8080).
  2. Username: Your Supernova login username.
  3. Password: Your Supernova password.

Note: Supernova supports the modern Subsonic authentication methods (token/salt), so clients that require secure authentication are fully supported.

Implementation Details

The API endpoints are served under /rest/. Supernova's implementation handles both XML and JSON responses depending on the client's request (f=json or f=xml).

Features currently supported via the Subsonic API:

  • Authentication (ping, getLicense)
  • Browsing (getIndexes, getMusicDirectory, getGenres)
  • Metadata (getArtist, getAlbum, getSong, getCoverArt)
  • Playback & Streaming (stream, download)
  • Playlists (getPlaylists, getPlaylist)
  • Favorites (getStarred, getStarred2)
  • Search (search2, search3)

Security

  • All Subsonic API routes are protected by the same middleware layer as the web UI.
  • File streaming endpoints enforce path validation, ensuring that a maliciously crafted Subsonic client cannot execute a path traversal attack to read unauthorized system files.

Clone this wiki locally