This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Overview

Complete API documentation and reference.

What is OpenSubsonic API?

The OpenSubsonic API allows anyone to build their own programs using a compatible server, whether they’re on the web, the desktop, or on mobile devices. All the OpenSubsonic-compatible apps (clients and servers) are built using the OpenSubsonic API.

The OpenSubsonic API allows you to call methods that respond in REST style XML or JSON. Since most clients now only rely on JSON, this documentation only shows the JSON answers in the documentation.

This project is built upon the original Subsonic API.

See:

  • OpenSubsonic API for the API documentation.
  • Goals for some of the goals of this project.
  • Issues for some of the issues this project tries to solve over the original API.

Participants

OpenSubsonic is built with servers and clients trying to improve the global media center ecosystem by providing a common expandable API that can fit most of the needs of modern music apps.

Any server or client can join the organization and make proposals for OpenSubsonic. The only condition is that if (as a client) you request an API extension that is accepted, you engage yourself in implementing it in your client in a timely manner.

Servers

Name OpenSubsonic documentation
Ampache Documentation
Astiga -
gonic -
LMS - Lightweight Music Server Documentation
Navidrome Documentation
Nextcloud Music / ownCloud Music Documentation
Supysonic -

Clients

Name OpenSubsonic documentation
Airsonic Refix Documentation
Amperfy
Feishin (ex Sonixd)
Supersonic
Symfonium Documentation

Goals

The OpenSubsonic API has several goals, which include:

  • Being an open, collaboratively maintained specification.
  • Ensuring security across all extensions.
  • The API aims for consistent results across all servers, ensuring that every request produces the same outcome. The API definition must be clear and precise, eliminating any ambiguity about the expected results.
  • Maintaining complete backwards compatibility with the existing Subsonic API.
  • Offering piecewise optional implementation for servers and clients.

Addressing Issues with the Subsonic API

Some of the issues the OpenSubsonic API aims to address include:

  • Outdated and insecure authentication methods.
  • Suboptimal versioning schema.
  • Insufficient methods for expressing server functionality.
  • Lack of an open and collaborative way to evolve the API.

By extending the existing Subsonic API, the OpenSubsonic API hopes to create a more secure, flexible, and collaborative environment for the Subsonic ecosystem.

Join us

Feel free to join the OpenSubsonic forum for discussions, suggestions, and questions.

1 - OpenSubsonic API

API details and methods.

See API Reference for the basic API documentation. (Mandatory parameters, authentication, error handling, …)

Be sure to read OpenSubsonic changes to easily identify the changes brought by OpenSubsonic.

File structure vs ID3 tags

Starting with version 1.8.0, the API provides methods for accessing the media collection organized according to ID3 tags, rather than file structure.

For instance, browsing through the collection using ID3 tags should use the getArtists, getArtist and getAlbum methods. To browse using file structure you would use getIndexes and getMusicDirectory.

Correspondingly, there are two sets of methods for searching, starring and album lists. Refer to the method documentation for details.

API methods

System ping getLicense getOpenSubsonicExtensions
Browsing getMusicFolders getIndexes getMusicDirectory getGenres getArtists getArtist getAlbum getSong getVideos getVideoInfo getArtistInfo getArtistInfo2 getAlbumInfo getAlbumInfo2 getSimilarSongs getSimilarSongs2 getTopSongs
Album/song lists getAlbumList getAlbumList2 getRandomSongs getSongsByGenre getNowPlaying getStarred getStarred2
Searching search search2 search3
Playlists getPlaylists getPlaylist createPlaylist updatePlaylist deletePlaylist
Media retrieval stream download hls getCaptions getCoverArt getLyrics getAvatar
Media annotation star unstar setRating scrobble
Sharing getShares createShare updateShare deleteShare
Podcast getPodcasts getNewestPodcasts refreshPodcasts createPodcastChannel deletePodcastChannel deletePodcastEpisode downloadPodcastEpisode
Jukebox jukeboxControl
Internet radio getInternetRadioStations createInternetRadioStation updateInternetRadioStation deleteInternetRadioStation
Chat getChatMessages addChatMessage
User management getUser getUsers createUser updateUser deleteUser changePassword
Bookmarks getBookmarks createBookmark deleteBookmark getPlayQueue savePlayQueue
Media library scanning getScanStatus startScan

2 - API Reference

Common API documentation.

Parameters

Please note that all methods take the following parameters:

Parameter Req. OpenS. Default Comment
u Yes** The username.
p Yes* The password, either in clear text or hex-encoded with a “enc:” prefix. Since 1.13.0 this should only be used for testing purposes.
t Yes* (Since 1.13.0) The authentication token computed as md5(password + salt). See below for details.
s Yes* (Since 1.13.0) A random string (“salt”) used as input for computing the password hash. See below for details.
apiKey Yes** Yes [OS] An API key used for authentication
v Yes The protocol version implemented by the client, i.e., the version of the subsonic-rest-api.xsd schema used (see below).
c Yes A unique string identifying the client application.
f No xml Request data to be returned in this format. Supported values are “xml”, “json” (since 1.4.0) and “jsonp” (since 1.6.0). If using jsonp, specify name of javascript callback function using a callback parameter.

*) Either p or both t and s must be specified.

**) If apiKey is specified, then none of p, t, s, nor u can be specified.

Remember to URL encode the request parameters. All methods (except those that return binary data) returns XML documents conforming to the subsonic-rest-api.xsd schema. The XML documents are encoded with UTF-8.

POST support

OpenSubsonic add official support for application/x-www-form-urlencoded POST to pass the argument.

Check that the server support the HTTP form POST extension before using it.

The arguments can then be passed in the POST body (Do not forget to URL encode both the keys and values), this allows to overcome the URL size limits when passing many parameters for playlists for example.

Authentication

If you are targeting API version 1.12.0 or earlier, authentication is performed by sending the password as clear text or hex-encoded. Examples:

Starting with API version 1.13.0, the recommended authentication scheme is to send an authentication token, calculated as a one-way salted hash of the password.

This involves two steps:

  1. For each REST call, generate a random string called the salt. Send this as parameter s. Use a salt length of at least six characters.
  2. Calculate the authentication token as follows: token = md5(password + salt). The md5() function takes a string and returns the 32-byte ASCII hexadecimal representation of the MD5 hash, using lower case characters for the hex values. The ‘+’ operator represents concatenation of the two strings. Treat the strings as UTF-8 encoded when calculating the hash. Send the result as parameter t.

For example: if the password is sesame and the random salt is c19b2d, then token = md5(“sesamec19b2d”) = 26719a1196d2a940705a59634eb18eab. The corresponding request URL then becomes:

For servers that implement API Key authentication, the recommended authentication is to use an API key. This is a token generated from the Subsonic server. It must be passed in in as apiKey=<API key>, and the u parameter must not be provided. Note that u/p may still be used by servers which are backed by LDAP/PAM/other authentication.

Subsonic-response

All API endpoint unless noted otherwise returns a subsonic-response that indicate the result of the command and give some information about the server.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1"
  }
}

See: subsonic-response for the field details.

Error handling

If a method fails it will return an error code and message in an error element. In addition, the status attribute of the subsonic-response root element will be set to failed instead of ok. For example:

{
  "subsonic-response": {
    "status": "failed",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true,
    "error": {
      "code": 40,
      "message": "Wrong username or password"
    }
  }
}
{
  "subsonic-response": {
    "status": "failed",
    "version": "1.16.1",
    "error": {
      "code": 40,
      "message": "Wrong username or password"
    }
  }
}
Field Type Req. OpenS. Details
error error Yes The error details.
code int Yes The error code.
message string No A human readable error message.

The following error codes are defined:

Code Description
0 A generic error.
10 Required parameter is missing.
20 Incompatible Subsonic REST protocol version. Client must upgrade.
30 Incompatible Subsonic REST protocol version. Server must upgrade.
40 Wrong username or password.
41 Token authentication not supported for LDAP users.
42 Provided authentication mechanism not supported.
43 Multiple conflicting authentication mechanisms provided.
44 Invalid API key.
50 User is not authorized for the given operation.
60 The trial period for the Subsonic server is over. Please upgrade to Subsonic Premium. Visit subsonic.org for details.
70 The requested data was not found.

3 - OpenSubsonic changes

API changes in OpenSubsonic API vs the original Subsonic API.

Documentation

In the documentation all changes from the original Subsonic API will be emphasized with the following warning:

All endpoints or responses modified by the OpenSubsonic API will have [OS] indicator in the navigation menu.

Most servers and clients have dedicated pages to show what parts of OpenSubsonic they support. See Overview

OpenSubsonic expand the original API via 3 different ways:

  • Clarifications: Documentation improvement to ensure consistency in server answers or actions where doubt was possible.
  • Extensions: Non breaking changes to the API to improve clients life. Like new returned field, or new parameters to existing functions.
  • Additions: New endpoints added to provide functions that could not be provided via non breaking extensions.

Required changes

OpenSubsonic is built to be mostly optional to ease the burden on the servers who can’t support some features, while still allowing clients to precisely know what the servers support without having to guess.

To achieve this servers supporting OpenSubsonic have to support a very minimal subset of things.

  1. Expand the subsonic-response with the new mandatory fields.
  2. Implement the getOpenSubsonicExtensions endpoint. This must be accessible without any authentication parameters
  3. Return error 41 (API Reference) if they do not support Subsonic 1.13.0 new authentification system while advertising a version > 1.13.0

List of changes

Clarifications

List of clarifications

Non breaking changes

List of non breaking changes

Additions

List of additions

Extensions

List of extension

4 - Extensions

OpenSubsonic extensions documentation.

4.1 - API Key Authentication

Add a new authentication mechanism involving only an API key, and no

OpenSubsonic version: 1

OpenSubsonic extension name apiKeyAuthentication (As returned by getOpenSubsonicExtensions)

Version 1

This extension requires changes to the semantics of authentication. Broadly, there are two general changes:

  1. Required: A new authentication mechanism: apiKey for query.
  2. Recommended: Deprecation of token/salt-based authentication.

API keys

An API key is any authentication token generated by an OpenSubsonic server that can be used to authenticate. How this API key is generated by the server is implementation-specific: the server may provide a page where the user can configure one or more API keys, the server may automatically generate a API key, or any other variety of means. The format of the API key is not specified, but it must be of reasonable length to fit into a query parameter (less than 2048 characters URL-encoded).

Servers which implement this extension must provide some mechanism for viewing active API key(s) and allow for revoking API keys. Note that these API keys do not expire; as long as they are not revoked by the user, they are assumed to be valid.

Using a API key

An API key is used as a query parameter apiKey=<api key>. When an API key is provided, the client must not provide a u parameter; passing in u must be treated as an error 43.

It is recommended that servers which provide API-key authentication no longer support salt/token-based authentication.

If multiple conflicting authentication parameters are passed in, the server must return an error 43, Multiple conflicting authentication mechanisms provided

If a server removes support for token-based authentication, it must return error 41 (Token authentication not supported for LDAP users.).

If a server removes support for any other particular authentication mechanism, it must return an error 42 (Provided authentication mechanism not supported).

In both cases, it is recommended that the server provide a meaningful url (configuration url, documentation, etc) in the helpUrl to help clients instruct their users how to obtain an API key.

New error codes

This extension introduces three new errors 42, 43 and 44, and adds a new field helpUrl. See error

4.2 - HTTP form POST

Add support for POST request to the API (application/x-www-form-urlencoded)

OpenSubsonic version: 1

OpenSubsonic extension name formPost (As returned by getOpenSubsonicExtensions)

Version 1

This extension requires that the server support passing API arguments via POST with the arguments respecting the application/x-www-form-urlencoded format.

See: API reference

4.3 - Song Lyrics

Add support for synchronized lyrics, multiple languages, and retrieval by song ID

OpenSubsonic version: 1

OpenSubsonic extension name songLyrics (As returned by getOpenSubsonicExtensions)

Version 1

This extension requires the following endpoints:

4.4 - Template extension

A template extension.

OpenSubsonic version: 1

OpenSubsonic extension name: template (As returned by getOpenSubsonicExtensions)

This is a template extension that allows servers to do marvelous stuff and clients to use that stuff.

Version 1

You can now bake cakes and brownies via the API!

This extension requires the following endpoints:

Version 2

You can now bake a lot of stuff via the API!

This extension requires the following endpoints:

4.5 - Transcode Offset

Add support for start offset for transcoding.

OpenSubsonic version: 1

OpenSubsonic extension name: transcodeOffset (As returned by getOpenSubsonicExtensions)

When a server support this extension this means that it support the timeOffset parameter of the stream endpoint for music.

Version 1

You can now start transcoding at any position in the media, allowing seeking when transcoding on the clients!

This extension requires the support of the timeOffset parameter of the stream endpoint for music.

5 - Endpoints

Low level endpoints documentation.

5.1 - addChatMessage

Adds a message to the chat log.

http://your-server/rest/addChatMessage Since 1.2.0

Adds a message to the chat log.

Parameters

Parameter Req. OpenS. Default Comment
message Yes The chat message.

Example

Result

An empty subsonic-response element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1"
  }
}

5.2 - changePassword

Changes the password of an existing user on the server.

http://your-server/rest/changePassword Since 1.1.0

Changes the password of an existing user on the server, using the following parameters. You can only change your own password unless you have admin privileges.

Parameters

Parameter Req. OpenS. Default Comment
username Yes The name of the user which should change its password.
password Yes The new password of the new user, either in clear text of hex-encoded (see above).

Example

Result

An empty subsonic-response element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1"
  }
}

5.3 - createBookmark

Creates or updates a bookmark.

http://your-server/rest/createBookmark Since 1.9.0

Creates or updates a bookmark (a position within a media file). Bookmarks are personal and not visible to other users.

Parameters

Parameter Req. OpenS. Default Comment
id Yes ID of the media file to bookmark. If a bookmark already exists for this file it will be overwritten.
position Yes The position (in milliseconds) within the media file.
comment No A user-defined comment.

Example

Result

An empty subsonic-response element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1"
  }
}

5.4 - createInternetRadioStation

Adds a new internet radio station.

http://your-server/rest/createInternetRadioStation Since 1.16.0

Adds a new internet radio station. Only users with admin privileges are allowed to call this method.

Parameters

Parameter Req. OpenS. Default Comment
streamUrl Yes The stream URL for the station.
name Yes The user-defined name for the station.
homepageUrl No The home page URL for the station.

Example

Result

An empty subsonic-response element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1"
  }
}

5.5 - createPlaylist

Creates (or updates) a playlist.

http://your-server/rest/createPlaylist Since 1.2.0

Creates (or updates) a playlist.

Parameters

Parameter Req. OpenS. Default Comment
playlistId Yes (if updating) The playlist ID.
name Yes (if creating) The human-readable name of the playlist.
songId No ID of a song in the playlist. Use one songId parameter for each song in the playlist.

Example

Result

Since 1.14.0

A subsonic-response element with a nested playlist element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
    "playlist": {
      "id": "800000075",
      "name": "testcreate",
      "owner": "user",
      "public": true,
      "created": "2023-03-16T03:18:41+00:00",
      "changed": "2023-03-16T03:18:41+00:00",
      "songCount": 1,
      "duration": 304,
      "entry": [
        {
          "id": "300000060",
          "parent": "200000002",
          "title": "BrownSmoke",
          "isDir": false,
          "isVideo": false,
          "type": "music",
          "albumId": "200000002",
          "album": "Colorsmoke EP",
          "artistId": "100000002",
          "artist": "Synthetic",
          "coverArt": "300000060",
          "duration": 304,
          "bitRate": 20,
          "bitDepth": 16,
          "samplingRate": 44100,
          "channelCount": 2,
          "userRating": 5,
          "averageRating": 5,
          "track": 4,
          "year": 2007,
          "genre": "Electronic",
          "size": 792375,
          "discNumber": 1,
          "suffix": "wma",
          "contentType": "audio/x-ms-wma",
          "path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007/04-Synthetic_-_BrownSmokeYSBM20k22khS.wma"
        }
      ]
    }
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "playlist": {
      "id": "800000075",
      "name": "testcreate",
      "owner": "user",
      "public": true,
      "created": "2023-03-16T03:18:41+00:00",
      "changed": "2023-03-16T03:18:41+00:00",
      "songCount": 1,
      "duration": 304,
      "entry": [
        {
          "id": "300000060",
          "parent": "200000002",
          "title": "BrownSmoke",
          "isDir": false,
          "isVideo": false,
          "type": "music",
          "albumId": "200000002",
          "album": "Colorsmoke EP",
          "artistId": "100000002",
          "artist": "Synthetic",
          "coverArt": "300000060",
          "duration": 304,
          "bitRate": 20,
          "bitDepth": 16,
          "samplingRate": 44100,
          "channelCount": 2,
          "userRating": 5,
          "averageRating": 5,
          "track": 4,
          "year": 2007,
          "genre": "Electronic",
          "size": 792375,
          "discNumber": 1,
          "suffix": "wma",
          "contentType": "audio/x-ms-wma",
          "path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007/04-Synthetic_-_BrownSmokeYSBM20k22khS.wma"
        }
      ]
    }
  }
}
Field Type Req. OpenS. Details
playlist playlist Yes The created playlist

Before 1.14.0

An empty subsonic-response element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1"
  }
}

5.6 - createPodcastChannel

Adds a new Podcast channel.

http://your-server/rest/createPodcastChannel Since 1.9.0

Adds a new Podcast channel. Note: The user must be authorized for Podcast administration (see Settings > Users > User is allowed to administrate Podcasts).

Parameters

Parameter Req. OpenS. Default Comment
url Yes The URL of the Podcast to add.

Example

Result

An empty subsonic-response element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1"
  }
}

5.7 - createShare

Creates a public URL that can be used by anyone to stream music or video from the server.

http://your-server/rest/createShare Since 1.6.0

Creates a public URL that can be used by anyone to stream music or video from the server. The URL is short and suitable for posting on Facebook, Twitter etc. Note: The user must be authorized to share (see Settings > Users > User is allowed to share files with anyone).

Parameters

Parameter Req. OpenS. Default Comment
id Yes ID of a song, album or video to share. Use one id parameter for each entry to share.
description No A user-defined description that will be displayed to people visiting the shared media.
expires No The time at which the share expires. Given as milliseconds since 1970.

Example

Result

A subsonic-response element with a nested shares element on success. Which in turns contains a single share element for the newly created share

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
    "shares": {
      "share": [
        {
          "id": "12",
          "url": "http://localhost:8989/share.php?id=12&secret=fXlKyEv3",
          "description": "Forget and Remember (Comfort Fit)",
          "username": "user",
          "created": "2023-03-16T04:13:09+00:00",
          "visitCount": 0,
          "entry": [
            {
              "id": "300000116",
              "parent": "200000021",
              "title": "Can I Help U?",
              "isDir": false,
              "isVideo": false,
              "type": "music",
              "albumId": "200000021",
              "album": "Forget and Remember",
              "artistId": "100000036",
              "artist": "Comfort Fit",
              "coverArt": "300000116",
              "duration": 103,
              "bitRate": 216,
              "bitDepth": 16,
              "samplingRate": 44100,
              "channelCount": 2,
              "track": 1,
              "year": 2005,
              "genre": "Hip-Hop",
              "size": 2811819,
              "discNumber": 1,
              "suffix": "mp3",
              "contentType": "audio/mpeg",
              "path": "user/Comfort Fit/Forget And Remember/1 - Can I Help U?.mp3"
            },
            {
              "id": "300000121",
              "parent": "200000021",
              "title": "Planetary Picknick",
              "isDir": false,
              "isVideo": false,
              "type": "music",
              "albumId": "200000021",
              "album": "Forget and Remember",
              "artistId": "100000036",
              "artist": "Comfort Fit",
              "coverArt": "300000121",
              "duration": 358,
              "bitRate": 238,
              "bitDepth": 16,
              "samplingRate": 44100,
              "channelCount": 2,
              "track": 2,
              "year": 2005,
              "genre": "Hip-Hop",
              "size": 10715592,
              "discNumber": 1,
              "suffix": "mp3",
              "contentType": "audio/mpeg",
              "path": "user/Comfort Fit/Forget And Remember/2 - Planetary Picknick.mp3"
            }
          ]
        }
      ]
    }
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "shares": {
      "share": [
        {
          "id": "12",
          "url": "http://localhost:8989/share.php?id=12&secret=fXlKyEv3",
          "description": "Forget and Remember (Comfort Fit)",
          "username": "user",
          "created": "2023-03-16T04:13:09+00:00",
          "visitCount": 0,
          "entry": [
            {
              "id": "300000116",
              "parent": "200000021",
              "title": "Can I Help U?",
              "isDir": false,
              "isVideo": false,
              "type": "music",
              "albumId": "200000021",
              "album": "Forget and Remember",
              "artistId": "100000036",
              "artist": "Comfort Fit",
              "coverArt": "300000116",
              "duration": 103,
              "bitRate": 216,
              "bitDepth": 16,
              "samplingRate": 44100,
              "channelCount": 2,
              "track": 1,
              "year": 2005,
              "genre": "Hip-Hop",
              "size": 2811819,
              "discNumber": 1,
              "suffix": "mp3",
              "contentType": "audio/mpeg",
              "path": "user/Comfort Fit/Forget And Remember/1 - Can I Help U?.mp3"
            },
            {
              "id": "300000121",
              "parent": "200000021",
              "title": "Planetary Picknick",
              "isDir": false,
              "isVideo": false,
              "type": "music",
              "albumId": "200000021",
              "album": "Forget and Remember",
              "artistId": "100000036",
              "artist": "Comfort Fit",
              "coverArt": "300000121",
              "duration": 358,
              "bitRate": 238,
              "bitDepth": 16,
              "samplingRate": 44100,
              "channelCount": 2,
              "track": 2,
              "year": 2005,
              "genre": "Hip-Hop",
              "size": 10715592,
              "discNumber": 1,
              "suffix": "mp3",
              "contentType": "audio/mpeg",
              "path": "user/Comfort Fit/Forget And Remember/2 - Planetary Picknick.mp3"
            }
          ]
        }
      ]
    }
  }
}
Field Type Req. OpenS. Details
shares shares Yes The created share

5.8 - createUser

Creates a new user on the server.

http://your-server/rest/createUser Since 1.1.0

Creates a new user on the server, using the following parameters:

Parameters

Parameter Req. OpenS. Default Comment
username Yes The name of the new user.
password Yes The password of the new user, either in clear text of hex-encoded (see above).
email Yes The email address of the new user.
ldapAuthenticated No false Whether the user is authenicated in LDAP.
adminRole No false Whether the user is administrator.
settingsRole No true Whether the user is allowed to change personal settings and password.
streamRole No true Whether the user is allowed to play files.
jukeboxRole No false Whether the user is allowed to play files in jukebox mode.
downloadRole No false Whether the user is allowed to download files.
uploadRole No false Whether the user is allowed to upload files.
playlistRole No false Whether the user is allowed to create and delete playlists. Since 1.8.0, changing this role has no effect.
coverArtRole No false Whether the user is allowed to change cover art and tags.
commentRole No false Whether the user is allowed to create and edit comments and ratings.
podcastRole No false Whether the user is allowed to administrate Podcasts.
shareRole No false (Since 1.8.0) Whether the user is allowed to share files with anyone.
videoConversionRole No false (Since 1.15.0) Whether the user is allowed to start video conversions.
musicFolderId No All folders (Since 1.12.0) IDs of the music folders the user is allowed access to. Include the parameter once for each folder.

Example

Result

An empty subsonic-response element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1"
  }
}

5.9 - deleteBookmark

Creates or updates a bookmark.

http://your-server/rest/deleteBookmark Since 1.9.0

Creates or updates a bookmark (a position within a media file). Bookmarks are personal and not visible to other users.

Parameters

Parameter Req. OpenS. Default Comment
id Yes ID of the media file for which to delete the bookmark. Other users’ bookmarks are not affected.

Example

Result

An empty subsonic-response element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1"
  }
}

5.10 - deleteInternetRadioStation

Deletes an existing internet radio station.

http://your-server/rest/deleteInternetRadioStation Since 1.16.0

Deletes an existing internet radio station. Only users with admin privileges are allowed to call this method.

Parameters

Parameter Req. OpenS. Default Comment
id Yes The ID for the station.

Example

Result

An empty subsonic-response element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1"
  }
}

5.11 - deletePlaylist

Deletes a saved playlist.

http://your-server/rest/deletePlaylist Since 1.2.0

Deletes a saved playlist.

Parameters

Parameter Req. OpenS. Default Comment
id Yes ID of the playlist to delete, as obtained by getPlaylists.

Example

Result

An empty subsonic-response element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1"
  }
}

5.12 - deletePodcastChannel

Deletes a Podcast channel.

http://your-server/rest/deletePodcastChannel Since 1.9.0

Deletes a Podcast channel. Note: The user must be authorized for Podcast administration (see Settings > Users > User is allowed to administrate Podcasts).

Parameters

Parameter Req. OpenS. Default Comment
id Yes The ID of the Podcast channel to delete.

Example

Result

An empty subsonic-response element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
  }
}
{
  "subsonic-response": {
    "status":"ok",
    "version":"1.16.1",
  }
}

5.13 - deletePodcastEpisode

Deletes a Podcast episode.

http://your-server/rest/deletePodcastEpisode Since 1.9.0

Deletes a Podcast episode. Note: The user must be authorized for Podcast administration (see Settings > Users > User is allowed to administrate Podcasts).

Parameters

Parameter Req. OpenS. Default Comment
id Yes The ID of the Podcast episode to delete.

Example

Result

An empty subsonic-response element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1"
  }
}

5.14 - deleteShare

Deletes an existing share.

http://your-server/rest/deleteShare Since 1.6.0

Deletes an existing share.

Parameters

Parameter Req. OpenS. Default Comment
id Yes ID of the share to delete.

Example

Result

An empty subsonic-response element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1"
  }
}

5.15 - deleteUser

Deletes an existing user on the server.

http://your-server/rest/deleteUser Since 1.3.0

Deletes an existing user on the server, using the following parameters:

Parameters

Parameter Req. OpenS. Default Comment
username Yes The name of the user to delete.

Example

Result

An empty subsonic-response element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1"
  }
}

5.16 - download

Downloads a given media file.

http://your-server/rest/download Since 1.0.0

Downloads a given media file. Similar to stream, but this method returns the original media data without transcoding or downsampling.

Parameters

Parameter Req. OpenS. Default Comment
id Yes A string which uniquely identifies the file to stream. Obtained by calls to getMusicDirectory.

Example

Result

Returns binary data on success, or an XML document on error (in which case the HTTP content type will start with “text/xml”).

5.17 - downloadPodcastEpisode

Request the server to start downloading a given Podcast episode.

http://your-server/rest/downloadPodcastEpisode Since 1.9.0

Request the server to start downloading a given Podcast episode. Note: The user must be authorized for Podcast administration (see Settings > Users > User is allowed to administrate Podcasts).

Parameters

Parameter Req. OpenS. Default Comment
id Yes The ID of the Podcast episode to download.

Example

Result

An empty subsonic-response element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1"
  }
}

5.18 - getAlbum

Returns details for an album.

http://your-server/rest/getAlbum Since 1.8.0

Returns details for an album, including a list of songs. This method organizes music according to ID3 tags.

Parameters

Parameter Req. OpenS. Default Comment
id Yes The album ID.

Example

Result

A subsonic-response element with a nested album element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
    "album": {
      "id": "200000021",
      "parent": "100000036",
      "album": "Forget and Remember",
      "title": "Forget and Remember",
      "name": "Forget and Remember",
      "isDir": true,
      "coverArt": "al-200000021",
      "songCount": 20,
      "created": "2021-07-22T02:09:31+00:00",
      "duration": 4248,
      "playCount": 0,
      "artistId": "100000036",
      "artist": "Comfort Fit",
      "year": 2005,
      "genre": "Hip-Hop",
      "song": [
        {
          "id": "300000116",
          "parent": "200000021",
          "title": "Can I Help U?",
          "isDir": false,
          "isVideo": false,
          "type": "music",
          "albumId": "200000021",
          "album": "Forget and Remember",
          "artistId": "100000036",
          "artist": "Comfort Fit",
          "coverArt": "300000116",
          "duration": 103,
          "bitRate": 216,
          "bitDepth": 16,
          "samplingRate": 44100,
          "channelCount": 2,
          "track": 1,
          "year": 2005,
          "genre": "Hip-Hop",
          "size": 2811819,
          "discNumber": 1,
          "suffix": "mp3",
          "contentType": "audio/mpeg",
          "path": "user/Comfort Fit/Forget And Remember/1 - Can I Help U?.mp3"
        },
        {
          "id": "300000121",
          "parent": "200000021",
          "title": "Planetary Picknick",
          "isDir": false,
          "isVideo": false,
          "type": "music",
          "albumId": "200000021",
          "album": "Forget and Remember",
          "artistId": "100000036",
          "artist": "Comfort Fit",
          "coverArt": "300000121",
          "duration": 358,
          "bitRate": 238,
          "bitDepth": 16,
          "samplingRate": 44100,
          "channelCount": 2,
          "track": 2,
          "year": 2005,
          "genre": "Hip-Hop",
          "size": 10715592,
          "discNumber": 1,
          "suffix": "mp3",
          "contentType": "audio/mpeg",
          "path": "user/Comfort Fit/Forget And Remember/2 - Planetary Picknick.mp3"
        }
      ]
    }
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "album": {
      "id": "200000021",
      "parent": "100000036",
      "album": "Forget and Remember",
      "title": "Forget and Remember",
      "name": "Forget and Remember",
      "isDir": true,
      "coverArt": "al-200000021",
      "songCount": 20,
      "created": "2021-07-22T02:09:31+00:00",
      "duration": 4248,
      "playCount": 0,
      "artistId": "100000036",
      "artist": "Comfort Fit",
      "year": 2005,
      "genre": "Hip-Hop",
      "song": [
        {
          "id": "300000116",
          "parent": "200000021",
          "title": "Can I Help U?",
          "isDir": false,
          "isVideo": false,
          "type": "music",
          "albumId": "200000021",
          "album": "Forget and Remember",
          "artistId": "100000036",
          "artist": "Comfort Fit",
          "coverArt": "300000116",
          "duration": 103,
          "bitRate": 216,
          "bitDepth": 16,
          "samplingRate": 44100,
          "channelCount": 2,
          "track": 1,
          "year": 2005,
          "genre": "Hip-Hop",
          "size": 2811819,
          "discNumber": 1,
          "suffix": "mp3",
          "contentType": "audio/mpeg",
          "path": "user/Comfort Fit/Forget And Remember/1 - Can I Help U?.mp3"
        },
        {
          "id": "300000121",
          "parent": "200000021",
          "title": "Planetary Picknick",
          "isDir": false,
          "isVideo": false,
          "type": "music",
          "albumId": "200000021",
          "album": "Forget and Remember",
          "artistId": "100000036",
          "artist": "Comfort Fit",
          "coverArt": "300000121",
          "duration": 358,
          "bitRate": 238,
          "bitDepth": 16,
          "samplingRate": 44100,
          "channelCount": 2,
          "track": 2,
          "year": 2005,
          "genre": "Hip-Hop",
          "size": 10715592,
          "discNumber": 1,
          "suffix": "mp3",
          "contentType": "audio/mpeg",
          "path": "user/Comfort Fit/Forget And Remember/2 - Planetary Picknick.mp3"
        }
      ]
    }
  }
}
Field Type Req. OpenS. Details
album album Yes The album

5.19 - getAlbumInfo

Returns album info.

http://your-server/rest/getAlbumInfo Since 1.14.0

Returns album notes, image URLs etc, using data from last.fm.

Parameters

Parameter Req. OpenS. Default Comment
id Yes The album ID or song ID.

Example

Result

A subsonic-response element with a nested albumInfo element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
    "albumInfo": {
      "notes": "Download the full release here (creative commons). These cripsy beats are ripe with thumping funk and techno influences, sample wizardry and daring shuffles. Composed with the help of unique sound plugins which were especially programmed to measure Comfort Fit’s needs and wishes, we think the chances aren’t bad that you’ll fall for the unique sound signature, bounce and elegance of this unusual Hip Hop production. Ltj bukem / Good looking Rec., UK: \"Really love this music.\" Velanche / XLR8R, UK: \"Awesome job he's done... overall production is dope.\" Kwesi / BBE Music, UK: \"Wooooooowwwww... WHAT THE FUCK! THIS IS WHAT",
      "musicBrainzId": "6e1d48f7-717c-416e-af35-5d2454a13af2",
      "smallImageUrl": "http://localhost:8989/play/art/0f8c3cbd6b0b22c3b5402141351ac812/album/21/thumb34.jpg",
      "mediumImageUrl": "http://localhost:8989/play/art/41b16680dc1b3aaf5dfba24ddb6a1712/album/21/thumb64.jpg",
      "largeImageUrl": "http://localhost:8989/play/art/e6fd8d4e0d35c4436e56991892bfb27b/album/21/thumb174.jpg"
    }
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "albumInfo": {
      "notes": "Download the full release here (creative commons). These cripsy beats are ripe with thumping funk and techno influences, sample wizardry and daring shuffles. Composed with the help of unique sound plugins which were especially programmed to measure Comfort Fit’s needs and wishes, we think the chances aren’t bad that you’ll fall for the unique sound signature, bounce and elegance of this unusual Hip Hop production. Ltj bukem / Good looking Rec., UK: \"Really love this music.\" Velanche / XLR8R, UK: \"Awesome job he's done... overall production is dope.\" Kwesi / BBE Music, UK: \"Wooooooowwwww... WHAT THE FUCK! THIS IS WHAT",
      "musicBrainzId": "6e1d48f7-717c-416e-af35-5d2454a13af2",
      "smallImageUrl": "http://localhost:8989/play/art/0f8c3cbd6b0b22c3b5402141351ac812/album/21/thumb34.jpg",
      "mediumImageUrl": "http://localhost:8989/play/art/41b16680dc1b3aaf5dfba24ddb6a1712/album/21/thumb64.jpg",
      "largeImageUrl": "http://localhost:8989/play/art/e6fd8d4e0d35c4436e56991892bfb27b/album/21/thumb174.jpg"
    }
  }
}
Field Type Req. OpenS. Details
albumInfo albumInfo Yes The album info

5.20 - getAlbumInfo2

Returns album info.

http://your-server/rest/getAlbumInfo2 Since 1.14.0

Similar to getAlbumInfo, but organizes music according to ID3 tags.

Parameters

Parameter Req. OpenS. Default Comment
id Yes The album ID or song ID.

Example

Result

A subsonic-response element with a nested albumInfo element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
    "albumInfo": {
      "notes": "Download the full release here (creative commons). These cripsy beats are ripe with thumping funk and techno influences, sample wizardry and daring shuffles. Composed with the help of unique sound plugins which were especially programmed to measure Comfort Fit’s needs and wishes, we think the chances aren’t bad that you’ll fall for the unique sound signature, bounce and elegance of this unusual Hip Hop production. Ltj bukem / Good looking Rec., UK: \"Really love this music.\" Velanche / XLR8R, UK: \"Awesome job he's done... overall production is dope.\" Kwesi / BBE Music, UK: \"Wooooooowwwww... WHAT THE FUCK! THIS IS WHAT",
      "musicBrainzId": "6e1d48f7-717c-416e-af35-5d2454a13af2",
      "smallImageUrl": "http://localhost:8989/play/art/0f8c3cbd6b0b22c3b5402141351ac812/album/21/thumb34.jpg",
      "mediumImageUrl": "http://localhost:8989/play/art/41b16680dc1b3aaf5dfba24ddb6a1712/album/21/thumb64.jpg",
      "largeImageUrl": "http://localhost:8989/play/art/e6fd8d4e0d35c4436e56991892bfb27b/album/21/thumb174.jpg"
    }
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "albumInfo": {
      "notes": "Download the full release here (creative commons). These cripsy beats are ripe with thumping funk and techno influences, sample wizardry and daring shuffles. Composed with the help of unique sound plugins which were especially programmed to measure Comfort Fit’s needs and wishes, we think the chances aren’t bad that you’ll fall for the unique sound signature, bounce and elegance of this unusual Hip Hop production. Ltj bukem / Good looking Rec., UK: \"Really love this music.\" Velanche / XLR8R, UK: \"Awesome job he's done... overall production is dope.\" Kwesi / BBE Music, UK: \"Wooooooowwwww... WHAT THE FUCK! THIS IS WHAT",
      "musicBrainzId": "6e1d48f7-717c-416e-af35-5d2454a13af2",
      "smallImageUrl": "http://localhost:8989/play/art/0f8c3cbd6b0b22c3b5402141351ac812/album/21/thumb34.jpg",
      "mediumImageUrl": "http://localhost:8989/play/art/41b16680dc1b3aaf5dfba24ddb6a1712/album/21/thumb64.jpg",
      "largeImageUrl": "http://localhost:8989/play/art/e6fd8d4e0d35c4436e56991892bfb27b/album/21/thumb174.jpg"
    }
  }
}
Field Type Req. OpenS. Details
albumInfo albumInfo Yes The album info

5.21 - getAlbumList

Returns a list of random, newest, highest rated etc. albums.

http://your-server/rest/getAlbumList Since 1.2.0

Returns a list of random, newest, highest rated etc. albums. Similar to the album lists on the home page of the Subsonic web interface.

Parameters

Parameter Req. OpenS. Default Comment
type Yes The list type. Must be one of the following: random, newest, highest, frequent, recent. Since 1.8.0 you can also use alphabeticalByName or alphabeticalByArtist to page through all albums alphabetically, and starred to retrieve starred albums. Since 1.10.1 you can use byYear and byGenre to list albums in a given year range or genre.
size No 10 The number of albums to return. Max 500.
offset No 0 The list offset. Useful if you for example want to page through the list of newest albums.
fromYear Yes (if type is byYear) The first year in the range. If fromYear > toYear a reverse chronological list is returned.
toYear Yes (if type is byYear) The last year in the range.
genre Yes (if type is byGenre) The name of the genre, e.g., “Rock”.
musicFolderId No (Since 1.11.0) Only return albums in the music folder with the given ID. See getMusicFolders.

Example

Result

A subsonic-response element with a nested albumList element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
    "albumList": {
      "album": [
        {
          "id": "200000021",
          "parent": "100000036",
          "album": "Forget and Remember",
          "title": "Forget and Remember",
          "name": "Forget and Remember",
          "isDir": true,
          "coverArt": "al-200000021",
          "songCount": 20,
          "created": "2021-07-22T02:09:31+00:00",
          "duration": 4248,
          "playCount": 0,
          "artistId": "100000036",
          "artist": "Comfort Fit",
          "year": 2005,
          "genre": "Hip-Hop"
        },
        {
          "id": "200000012",
          "parent": "100000019",
          "album": "Buried in Nausea",
          "title": "Buried in Nausea",
          "name": "Buried in Nausea",
          "isDir": true,
          "coverArt": "al-200000012",
          "songCount": 9,
          "created": "2021-02-24T01:44:21+00:00",
          "duration": 1879,
          "playCount": 0,
          "artistId": "100000019",
          "artist": "Various Artists",
          "year": 2012,
          "genre": "Punk"
        }
      ]
    }
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "albumList": {
      "album": [
        {
          "id": "200000021",
          "parent": "100000036",
          "album": "Forget and Remember",
          "title": "Forget and Remember",
          "name": "Forget and Remember",
          "isDir": true,
          "coverArt": "al-200000021",
          "created": "2021-07-22T02:09:31+00:00",
          "duration": 4248,
          "playCount": 0,
          "artistId": "100000036",
          "artist": "Comfort Fit",
          "year": 2005,
          "genre": "Hip-Hop"
        },
        {
          "id": "200000012",
          "parent": "100000019",
          "album": "Buried in Nausea",
          "title": "Buried in Nausea",
          "name": "Buried in Nausea",
          "isDir": true,
          "coverArt": "al-200000012",
          "created": "2021-02-24T01:44:21+00:00",
          "duration": 1879,
          "playCount": 0,
          "artistId": "100000019",
          "artist": "Various Artists",
          "year": 2012,
          "genre": "Punk"
        }
      ]
    }
  }
}
Field Type Req. OpenS. Details
albumList albumList Yes The album list

5.22 - getAlbumList2

Returns a list of random, newest, highest rated etc. albums.

http://your-server/rest/getAlbumList2 Since 1.8.0

Similar to getAlbumList, but organizes music according to ID3 tags.

Parameters

Parameter Req. OpenS. Default Comment
type Yes The list type. Must be one of the following: random, newest, highest, frequent, recent. Since 1.8.0 you can also use alphabeticalByName or alphabeticalByArtist to page through all albums alphabetically, and starred to retrieve starred albums. Since 1.10.1 you can use byYear and byGenre to list albums in a given year range or genre.
size No 10 The number of albums to return. Max 500.
offset No 0 The list offset. Useful if you for example want to page through the list of newest albums.
fromYear Yes (if type is byYear) The first year in the range. If fromYear > toYear a reverse chronological list is returned.
toYear Yes (if type is byYear) The last year in the range.
genre Yes (if type is byGenre) The name of the genre, e.g., “Rock”.
musicFolderId No (Since 1.11.0) Only return albums in the music folder with the given ID. See getMusicFolders.

Example

Result

A subsonic-response element with a nested albumList2 element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
    "albumList2": {
      "album": [
        {
          "id": "200000021",
          "album": "Forget and Remember",
          "title": "Forget and Remember",
          "name": "Forget and Remember",
          "coverArt": "al-200000021",
          "songCount": 20,
          "created": "2021-07-22T02:09:31+00:00",
          "duration": 4248,
          "playCount": 0,
          "artistId": "100000036",
          "artist": "Comfort Fit",
          "year": 2005,
          "genre": "Hip-Hop"
        },
        {
          "id": "200000012",
          "album": "Buried in Nausea",
          "title": "Buried in Nausea",
          "name": "Buried in Nausea",
          "coverArt": "al-200000012",
          "songCount": 9,
          "created": "2021-02-24T01:44:21+00:00",
          "duration": 1879,
          "playCount": 0,
          "artistId": "100000019",
          "artist": "Various Artists",
          "year": 2012,
          "genre": "Punk"
        }
      ]
    }
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "albumList2": {
      "album": [
        {
          "id": "200000021",
          "album": "Forget and Remember",
          "title": "Forget and Remember",
          "name": "Forget and Remember",
          "coverArt": "al-200000021",
          "songCount": 20,
          "created": "2021-07-22T02:09:31+00:00",
          "duration": 4248,
          "playCount": 0,
          "artistId": "100000036",
          "artist": "Comfort Fit",
          "year": 2005,
          "genre": "Hip-Hop"
        },
        {
          "id": "200000012",
          "album": "Buried in Nausea",
          "title": "Buried in Nausea",
          "name": "Buried in Nausea",
          "coverArt": "al-200000012",
          "songCount": 9,
          "created": "2021-02-24T01:44:21+00:00",
          "duration": 1879,
          "playCount": 0,
          "artistId": "100000019",
          "artist": "Various Artists",
          "year": 2012,
          "genre": "Punk"
        }
      ]
    }
  }
}
Field Type Req. OpenS. Details
albumList2 albumList2 Yes The album list

5.23 - getArtist

Returns details for an artist.

http://your-server/rest/getArtist Since 1.8.0

Returns details for an artist, including a list of albums. This method organizes music according to ID3 tags.

Parameters

Parameter Req. OpenS. Default Comment
id Yes The artist ID.

Example

Result

A subsonic-response element with a nested artist element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
    "artist": {
      "id": "100000002",
      "name": "Synthetic",
      "coverArt": "ar-100000002",
      "albumCount": 1,
      "starred": "2021-02-22T05:54:18Z",
      "album": [
        {
          "id": "200000002",
          "parent": "100000002",
          "album": "Colorsmoke EP",
          "title": "Colorsmoke EP",
          "name": "Colorsmoke EP",
          "isDir": true,
          "coverArt": "al-200000002",
          "songCount": 12,
          "created": "2021-02-23T04:24:48+00:00",
          "duration": 4568,
          "playCount": 1,
          "artistId": "100000002",
          "artist": "Synthetic",
          "year": 2007,
          "genre": "Electronic",
          "userRating": 5,
          "averageRating": 3,
          "starred": "2021-02-22T05:51:53Z"
        }
      ]
    }
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "artist": {
      "id": "100000002",
      "name": "Synthetic",
      "coverArt": "ar-100000002",
      "albumCount": 1,
      "starred": "2021-02-22T05:54:18Z",
      "album": [
        {
          "id": "200000002",
          "parent": "100000002",
          "album": "Colorsmoke EP",
          "title": "Colorsmoke EP",
          "name": "Colorsmoke EP",
          "isDir": true,
          "coverArt": "al-200000002",
          "songCount": 12,
          "created": "2021-02-23T04:24:48+00:00",
          "duration": 4568,
          "playCount": 1,
          "artistId": "100000002",
          "artist": "Synthetic",
          "year": 2007,
          "genre": "Electronic",
          "userRating": 5,
          "averageRating": 3,
          "starred": "2021-02-22T05:51:53Z"
        }
      ]
    }
  }
}
Field Type Req. OpenS. Details
artist artist Yes The artist

5.24 - getArtistInfo

Returns artist info.

http://your-server/rest/getArtistInfo Since 1.11.0

Returns artist info with biography, image URLs and similar artists, using data from last.fm.

Parameters

Parameter Req. OpenS. Default Comment
id Yes The artist, album or song ID.
count No 20 Max number of similar artists to return.
includeNotPresent No false Whether to return artists that are not present in the media library.

Example

Result

A subsonic-response element with a nested artistInfo element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
    "artistInfo": {
      "biography": {},
      "musicBrainzId": "1",
      "smallImageUrl": "http://localhost:8989/play/art/f20070e8e11611cc53542a38801d60fa/artist/2/thumb34.jpg",
      "mediumImageUrl": "http://localhost:8989/play/art/2b9b6c057cd4bf21089ce7572e7792b6/artist/2/thumb64.jpg",
      "largeImageUrl": "http://localhost:8989/play/art/e18287c23a75e263b64c31b3d64c1944/artist/2/thumb174.jpg"
    }
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "artistInfo": {
      "biography": {},
      "musicBrainzId": "1",
      "smallImageUrl": "http://localhost:8989/play/art/f20070e8e11611cc53542a38801d60fa/artist/2/thumb34.jpg",
      "mediumImageUrl": "http://localhost:8989/play/art/2b9b6c057cd4bf21089ce7572e7792b6/artist/2/thumb64.jpg",
      "largeImageUrl": "http://localhost:8989/play/art/e18287c23a75e263b64c31b3d64c1944/artist/2/thumb174.jpg"
    }
  }
}
Field Type Req. OpenS. Details
artistInfo artistInfo Yes The album info

5.25 - getArtistInfo2

Returns artist info.

http://your-server/rest/getArtistInfo2 Since 1.11.0

Similar to getArtistInfo, but organizes music according to ID3 tags.

Parameters

Parameter Req. OpenS. Default Comment
id Yes The artist, album or song ID.
count No 20 Max number of similar artists to return.
includeNotPresent No false Whether to return artists that are not present in the media library.

Example

Result

A subsonic-response element with a nested artistInfo2 element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
    "artistInfo2": {
      "biography": {},
      "musicBrainzId": "1",
      "smallImageUrl": "http://localhost:8989/play/art/f20070e8e11611cc53542a38801d60fa/artist/2/thumb34.jpg",
      "mediumImageUrl": "http://localhost:8989/play/art/2b9b6c057cd4bf21089ce7572e7792b6/artist/2/thumb64.jpg",
      "largeImageUrl": "http://localhost:8989/play/art/e18287c23a75e263b64c31b3d64c1944/artist/2/thumb174.jpg"
    }
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "artistInfo2": {
      "biography": {},
      "musicBrainzId": "1",
      "smallImageUrl": "http://localhost:8989/play/art/f20070e8e11611cc53542a38801d60fa/artist/2/thumb34.jpg",
      "mediumImageUrl": "http://localhost:8989/play/art/2b9b6c057cd4bf21089ce7572e7792b6/artist/2/thumb64.jpg",
      "largeImageUrl": "http://localhost:8989/play/art/e18287c23a75e263b64c31b3d64c1944/artist/2/thumb174.jpg"
    }
  }
}
Field Type Req. OpenS. Details
artistInfo2 artistInfo2 Yes The album info

5.26 - getArtists

Returns all artists.

http://your-server/rest/getArtists Since 1.8.0

Similar to getIndexes, but organizes music according to ID3 tags.

Parameters

Parameter Req. OpenS. Default Comment
musicFolderId No If specified, only return artists in the music folder with the given ID. See getMusicFolders.

Example

Result

A subsonic-response element with a nested artists element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true,
    "artists": {
      "ignoredArticles": "The An A Die Das Ein Eine Les Le La",
      "index": [
        {
          "name": "C",
          "artist": [
            {
              "id": "100000016",
              "name": "CARNÚN",
              "coverArt": "ar-100000016",
              "albumCount": 1
            },
            {
              "id": "100000027",
              "name": "Chi.Otic",
              "coverArt": "ar-100000027",
              "albumCount": 0
            }
          ]
        },
        {
          "name": "I",
          "artist": [
            {
              "id": "100000013",
              "name": "IOK-1",
              "coverArt": "ar-100000013",
              "albumCount": 1
            }
          ]
        }
      ]
    }
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "artists": {
      "ignoredArticles": "The An A Die Das Ein Eine Les Le La",
      "index": [
        {
          "name": "C",
          "artist": [
            {
              "id": "100000016",
              "name": "CARNÚN",
              "coverArt": "ar-100000016",
              "albumCount": 1
            },
            {
              "id": "100000027",
              "name": "Chi.Otic",
              "coverArt": "ar-100000027",
              "albumCount": 0
            }
          ]
        },
        {
          "name": "I",
          "artist": [
            {
              "id": "100000013",
              "name": "IOK-1",
              "coverArt": "ar-100000013",
              "albumCount": 1
            }
          ]
        }
      ]
    }
  }
}
Field Type Req. OpenS. Details
artists artists Yes The artist list

5.27 - getAvatar

Returns the avatar (personal image) for a user.

http://your-server/rest/getAvatar Since 1.8.0

Returns the avatar (personal image) for a user.

Parameters

Parameter Req. OpenS. Default Comment
username Yes The user in question..

Example

Result

Returns the avatar image in binary form on success, or an XML document on error (in which case the HTTP content type will start with “text/xml”).

5.28 - getBookmarks

Returns all bookmarks for this user.

http://your-server/rest/getBookmarks Since 1.9.0

Returns all bookmarks for this user. A bookmark is a position within a certain media file.

Parameters

Takes no extra parameters.

Example

Result

A subsonic-response element with a nested bookmarks element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
    "bookmarks": {
      "bookmark": [
        {
          "entry": {
            "id": "113bf5989ad15ce2cf1834ba9622983f",
            "parent": "b87a936c682c49d4494c7ccb08c22d23",
            "isDir": false,
            "title": "Stay Out Here",
            "album": "Shaking The Habitual",
            "artist": "The Knife",
            "track": 11,
            "year": 2013,
            "genre": "Electronic",
            "coverArt": "al-b87a936c682c49d4494c7ccb08c22d23_0",
            "size": 21096309,
            "contentType": "audio/mp4",
            "suffix": "m4a",
            "duration": 642,
            "bitRate": 257,
            "bitDepth": 16,
            "samplingRate": 44100,
            "channelCount": 2,
            "path": "The Knife/Shaking The Habitual/11 - Stay Out Here.m4a",
            "created": "2023-03-13T16:30:35Z",
            "albumId": "b87a936c682c49d4494c7ccb08c22d23",
            "artistId": "b29e9a9d780cb0e133f3add5662771b9",
            "type": "music",
            "isVideo": false,
            "bookmarkPosition": 129000
          },
          "position": 129000,
          "username": "demo",
          "comment": "",
          "created": "2023-03-13T16:30:35Z",
          "changed": "2023-03-13T16:30:35Z"
        },
        {
          "entry": {
            "id": "2b42782333450d02b177823e729664af",
            "parent": "dc8d8889a6fe08d8da7698c7ee1de61c",
            "isDir": false,
            "title": "Ill with the Skills",
            "album": "First Words",
            "artist": "The Polish Ambassador",
            "track": 17,
            "year": 2014,
            "coverArt": "mf-2b42782333450d02b177823e729664af_641edeb3",
            "size": 6219581,
            "contentType": "audio/mpeg",
            "suffix": "mp3",
            "duration": 255,
            "bitRate": 194,
            "bitDepth": 16,
            "samplingRate": 44100,
            "channelCount": 2,
            "path": "The Polish Ambassador/First Words/17 - Ill with the Skills.mp3",
            "playCount": 1,
            "played": "2023-03-15T15:23:37Z",
            "created": "2023-03-25T11:44:51Z",
            "albumId": "dc8d8889a6fe08d8da7698c7ee1de61c",
            "artistId": "64e1f796b283545d329cdf6a31a31dbe",
            "type": "music",
            "isVideo": false,
            "bookmarkPosition": 7000
          },
          "position": 7000,
          "username": "demo",
          "comment": "playSub bookmark",
          "created": "2023-03-25T11:44:51Z",
          "changed": "2023-03-25T11:44:51Z"
        }
      ]
    }
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "bookmarks": {
      "bookmark": [
        {
          "entry": {
            "id": "113bf5989ad15ce2cf1834ba9622983f",
            "parent": "b87a936c682c49d4494c7ccb08c22d23",
            "isDir": false,
            "title": "Stay Out Here",
            "album": "Shaking The Habitual",
            "artist": "The Knife",
            "track": 11,
            "year": 2013,
            "genre": "Electronic",
            "coverArt": "al-b87a936c682c49d4494c7ccb08c22d23_0",
            "size": 21096309,
            "contentType": "audio/mp4",
            "suffix": "m4a",
            "duration": 642,
            "bitRate": 257,
            "bitDepth": 16,
            "samplingRate": 44100,
            "channelCount": 2,
            "path": "The Knife/Shaking The Habitual/11 - Stay Out Here.m4a",
            "created": "2023-03-13T16:30:35Z",
            "albumId": "b87a936c682c49d4494c7ccb08c22d23",
            "artistId": "b29e9a9d780cb0e133f3add5662771b9",
            "type": "music",
            "isVideo": false,
            "bookmarkPosition": 129000
          },
          "position": 129000,
          "username": "demo",
          "comment": "",
          "created": "2023-03-13T16:30:35Z",
          "changed": "2023-03-13T16:30:35Z"
        },
        {
          "entry": {
            "id": "2b42782333450d02b177823e729664af",
            "parent": "dc8d8889a6fe08d8da7698c7ee1de61c",
            "isDir": false,
            "title": "Ill with the Skills",
            "album": "First Words",
            "artist": "The Polish Ambassador",
            "track": 17,
            "year": 2014,
            "coverArt": "mf-2b42782333450d02b177823e729664af_641edeb3",
            "size": 6219581,
            "contentType": "audio/mpeg",
            "suffix": "mp3",
            "duration": 255,
            "bitRate": 194,
            "bitDepth": 16,
            "samplingRate": 44100,
            "channelCount": 2,
            "path": "The Polish Ambassador/First Words/17 - Ill with the Skills.mp3",
            "playCount": 1,
            "played": "2023-03-15T15:23:37Z",
            "created": "2023-03-25T11:44:51Z",
            "albumId": "dc8d8889a6fe08d8da7698c7ee1de61c",
            "artistId": "64e1f796b283545d329cdf6a31a31dbe",
            "type": "music",
            "isVideo": false,
            "bookmarkPosition": 7000
          },
          "position": 7000,
          "username": "demo",
          "comment": "playSub bookmark",
          "created": "2023-03-25T11:44:51Z",
          "changed": "2023-03-25T11:44:51Z"
        }
      ]
    }
  }
}
Field Type Req. OpenS. Details
bookmarks bookmarks Yes The bookmarks

5.29 - getCaptions

Returns captions (subtitles) for a video.

http://your-server/rest/getCaptions Since 1.14.0

Returns captions (subtitles) for a video. Use getVideoInfo to get a list of available captions.

Parameters

Parameter Req. OpenS. Default Comment
id Yes The ID of the video.
format No Preferred captions format (“srt” or “vtt”).

Example

Result

Returns the raw video captions.

5.30 - getChatMessages

Returns the current visible (non-expired) chat messages.

http://your-server/rest/getChatMessages Since 1.2.0

Returns the current visible (non-expired) chat messages.

Parameters

Parameter Req. OpenS. Default Comment
since No Only return messages newer than this time (in millis since Jan 1 1970).

Example

Result

A subsonic-response element with a nested chatMessages element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
    "chatMessages": {
      "chatMessage": [
        {
          "username": "admin",
          "time": 1678935707000,
          "message": "Api Script Testing"
        },
        {
          "username": "user",
          "time": 1678935699000,
          "message": "Api Script Testing"
        }
      ]
    }
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "chatMessages": {
      "chatMessage": [
        {
          "username": "admin",
          "time": 1678935707000,
          "message": "Api Script Testing"
        },
        {
          "username": "user",
          "time": 1678935699000,
          "message": "Api Script Testing"
        }
      ]
    }
  }
}
Field Type Req. OpenS. Details
chatMessages chatMessages Yes The message list

5.31 - getCoverArt

Returns a cover art image.

http://your-server/rest/getCoverArt Since 1.0.0

Returns a cover art image.

Parameters

Parameter Req. OpenS. Default Comment
id Yes The coverArt ID. Returned by most entities likes Child or AlbumID3
size No If specified, scale image to this size.

Example

Result

Returns binary data on success, or an XML document on error (in which case the HTTP content type will start with “text/xml”).

5.32 - getGenres

Returns all genres.

http://your-server/rest/getGenres Since 1.9.0

Returns all genres.

Parameters

Takes no extra parameters.

Example

Result

A subsonic-response element with a nested genres element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
    "genres": {
      "genre": [
        {
          "songCount": 1,
          "albumCount": 1,
          "value": "Punk"
        },
        {
          "songCount": 4,
          "albumCount": 1,
          "value": "Dark Ambient"
        },
        {
          "songCount": 6,
          "albumCount": 1,
          "value": "Noise"
        },
        {
          "songCount": 11,
          "albumCount": 1,
          "value": "Electronica"
        },
        {
          "songCount": 11,
          "albumCount": 1,
          "value": "Dance"
        },
        {
          "songCount": 12,
          "albumCount": 1,
          "value": "Electronic"
        },
        {
          "songCount": 20,
          "albumCount": 1,
          "value": "Hip-Hop"
        }
      ]
    }
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "genres": {
      "genre": [
        {
          "songCount": 1,
          "albumCount": 1,
          "value": "Punk"
        },
        {
          "songCount": 4,
          "albumCount": 1,
          "value": "Dark Ambient"
        },
        {
          "songCount": 6,
          "albumCount": 1,
          "value": "Noise"
        },
        {
          "songCount": 11,
          "albumCount": 1,
          "value": "Electronica"
        },
        {
          "songCount": 11,
          "albumCount": 1,
          "value": "Dance"
        },
        {
          "songCount": 12,
          "albumCount": 1,
          "value": "Electronic"
        },
        {
          "songCount": 20,
          "albumCount": 1,
          "value": "Hip-Hop"
        }
      ]
    }
  }
}
Field Type Req. OpenS. Details
genres genres Yes The genre list

5.33 - getIndexes

Returns an indexed structure of all artists.

http://your-server/rest/getIndexes Since 1.0.0

Returns an indexed structure of all artists.

Parameters

Parameter Req. OpenS. Default Comment
musicFolderId No If specified, only return artists in the music folder with the given ID. See getMusicFolders.
ifModifiedSince No If specified, only return a result if the artist collection has changed since the given time (in milliseconds since 1 Jan 1970).

Example

Result

A subsonic-response element with a nested indexes element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true,
    "indexes": {
      "shortcut": [
        {
          "id": "11",
          "name": "Audio books"
        },
        {
          "id": "10",
          "name": "Podcasts"
        }
      ],
      "index": [
        {
          "artist": [
            {
              "id": "1",
              "name": "ABBA"
            },
            {
              "id": "2",
              "name": "Alanis Morisette"
            },
            {
              "id": "3",
              "name": "Alphaville",
              "starred": "2013-11-02T12:30:00"
            }
          ],
          "name": "A"
        },
        {
          "artist": {
            "name": "Bob Dylan",
            "id": "4"
          },
          "name": "B"
        }
      ],
      "child": [
        {
          "id": "111",
          "parent": "11",
          "title": "Dancing Queen",
          "isDir": "false",
          "album": "Arrival",
          "artist": "ABBA",
          "track": "7",
          "year": "1978",
          "genre": "Pop",
          "coverArt": "24",
          "size": "8421341",
          "contentType": "audio/mpeg",
          "suffix": "mp3",
          "duration": "146",
          "bitRate": "128",
          "path": "ABBA/Arrival/Dancing Queen.mp3"
        },
        {
          "id": "112",
          "parent": "11",
          "title": "Money, Money, Money",
          "isDir": "false",
          "album": "Arrival",
          "artist": "ABBA",
          "track": "7",
          "year": "1978",
          "genre": "Pop",
          "coverArt": "25",
          "size": "4910028",
          "contentType": "audio/flac",
          "suffix": "flac",
          "transcodedContentType": "audio/mpeg",
          "transcodedSuffix": "mp3",
          "duration": "208",
          "bitRate": "128",
          "path": "ABBA/Arrival/Money, Money, Money.mp3"
        }
      ],
      "lastModified": "237462836472342",
      "ignoredArticles": "The El La Los Las Le Les"
    }
  }
}
<subsonic-response status="ok" version="1.16.1" type="AwesomeServerName" serverVersion="0.1.3 (tag)" openSubsonic="true">
  <indexes lastModified="237462836472342" ignoredArticles="The El La Los Las Le Les">
    <shortcut id="11" name="Audio books"/>
    <shortcut id="10" name="Podcasts"/>
    <index name="A">
      <artist id="1" name="ABBA"/>
      <artist id="2" name="Alanis Morisette"/>
      <artist id="3" name="Alphaville" starred="2013-11-02T12:30:00"/>
    </index>
    <index name="B">
      <artist name="Bob Dylan" id="4"/>
    </index>
    <child id="111" parent="11" title="Dancing Queen" isDir="false" album="Arrival" artist="ABBA" track="7" year="1978" genre="Pop" coverArt="24" size="8421341" contentType="audio/mpeg" suffix="mp3" duration="146" bitRate="128" path="ABBA/Arrival/Dancing Queen.mp3"/>
    <child id="112" parent="11" title="Money, Money, Money" isDir="false" album="Arrival" artist="ABBA" track="7" year="1978" genre="Pop" coverArt="25" size="4910028" contentType="audio/flac" suffix="flac" transcodedContentType="audio/mpeg" transcodedSuffix="mp3" duration="208" bitRate="128" path="ABBA/Arrival/Money, Money, Money.mp3"/>
  </indexes>
</subsonic-response>
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "indexes": {
      "shortcut": [
        {
          "id": "11",
          "name": "Audio books"
        },
        {
          "id": "10",
          "name": "Podcasts"
        }
      ],
      "index": [
        {
          "artist": [
            {
              "id": "1",
              "name": "ABBA"
            },
            {
              "id": "2",
              "name": "Alanis Morisette"
            },
            {
              "id": "3",
              "name": "Alphaville",
              "starred": "2013-11-02T12:30:00"
            }
          ],
          "name": "A"
        },
        {
          "artist": {
            "name": "Bob Dylan",
            "id": "4"
          },
          "name": "B"
        }
      ],
      "child": [
        {
          "id": "111",
          "parent": "11",
          "title": "Dancing Queen",
          "isDir": "false",
          "album": "Arrival",
          "artist": "ABBA",
          "track": "7",
          "year": "1978",
          "genre": "Pop",
          "coverArt": "24",
          "size": "8421341",
          "contentType": "audio/mpeg",
          "suffix": "mp3",
          "duration": "146",
          "bitRate": "128",
          "path": "ABBA/Arrival/Dancing Queen.mp3"
        },
        {
          "id": "112",
          "parent": "11",
          "title": "Money, Money, Money",
          "isDir": "false",
          "album": "Arrival",
          "artist": "ABBA",
          "track": "7",
          "year": "1978",
          "genre": "Pop",
          "coverArt": "25",
          "size": "4910028",
          "contentType": "audio/flac",
          "suffix": "flac",
          "transcodedContentType": "audio/mpeg",
          "transcodedSuffix": "mp3",
          "duration": "208",
          "bitRate": "128",
          "path": "ABBA/Arrival/Money, Money, Money.mp3"
        }
      ],
      "lastModified": "237462836472342",
      "ignoredArticles": "The El La Los Las Le Les"
    }
  }
}
<subsonic-response status="ok" version="1.16.1" type="AwesomeServerName">
  <indexes lastModified="237462836472342" ignoredArticles="The El La Los Las Le Les">
    <shortcut id="11" name="Audio books"/>
    <shortcut id="10" name="Podcasts"/>
    <index name="A">
      <artist id="1" name="ABBA"/>
      <artist id="2" name="Alanis Morisette"/>
      <artist id="3" name="Alphaville" starred="2013-11-02T12:30:00"/>
    </index>
    <index name="B">
      <artist name="Bob Dylan" id="4"/>
    </index>
    <child id="111" parent="11" title="Dancing Queen" isDir="false" album="Arrival" artist="ABBA" track="7" year="1978" genre="Pop" coverArt="24" size="8421341" contentType="audio/mpeg" suffix="mp3" duration="146" bitRate="128" path="ABBA/Arrival/Dancing Queen.mp3"/>
    <child id="112" parent="11" title="Money, Money, Money" isDir="false" album="Arrival" artist="ABBA" track="7" year="1978" genre="Pop" coverArt="25" size="4910028" contentType="audio/flac" suffix="flac" transcodedContentType="audio/mpeg" transcodedSuffix="mp3" duration="208" bitRate="128" path="ABBA/Arrival/Money, Money, Money.mp3"/>
  </indexes>
</subsonic-response>
Field Type Req. OpenS. Details
indexes indexes Yes The indexed artist list

5.34 - getInternetRadioStations

Returns all internet radio stations.

http://your-server/rest/getInternetRadioStations Since 1.9.0

Returns all internet radio stations. Takes no extra parameters.

Parameters

Takes no extra parameters.

Example

Result

A subsonic-response element with a nested internetRadioStations element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
    "internetRadioStations": {
      "internetRadioStation": [
        {
          "id": "1",
          "name": "HBR1.com - Dream Factory",
          "streamUrl": "http://ubuntu.hbr1.com:19800/ambient.aac",
          "homepageUrl": "http://www.hbr1.com/"
        },
        {
          "id": "2",
          "name": "HBR1.com - I.D.M. Tranceponder",
          "streamUrl": "http://ubuntu.hbr1.com:19800/trance.ogg",
          "homepageUrl": "http://www.hbr1.com/"
        },
        {
          "id": "3",
          "name": "4ZZZ Community Radio",
          "streamUrl": "https://stream.4zzz.org.au:9200/4zzz",
          "homepageUrl": "https://4zzzfm.org.au"
        }
      ]
    }
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "internetRadioStations": {
      "internetRadioStation": [
        {
          "id": "1",
          "name": "HBR1.com - Dream Factory",
          "streamUrl": "http://ubuntu.hbr1.com:19800/ambient.aac",
          "homepageUrl": "http://www.hbr1.com/"
        },
        {
          "id": "2",
          "name": "HBR1.com - I.D.M. Tranceponder",
          "streamUrl": "http://ubuntu.hbr1.com:19800/trance.ogg",
          "homepageUrl": "http://www.hbr1.com/"
        },
        {
          "id": "3",
          "name": "4ZZZ Community Radio",
          "streamUrl": "https://stream.4zzz.org.au:9200/4zzz",
          "homepageUrl": "https://4zzzfm.org.au"
        }
      ]
    }
  }
}
Field Type Req. OpenS. Details
internetRadioStations internetRadioStations Yes The radio stations

5.35 - getLicense

Get details about the software license.

http://your-server/rest/getLicense Since 1.0.0

Get details about the software license.

Parameters

Takes no extra parameters.

Example

Result

A subsonic-response element with a nested license element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
    "license": {
      "valid": true,
      "email": "demo@demo.org",
      "licenseExpires": "2017-04-11T10:42:50.842Z",
      "trialExpires": "2017-04-11T10:42:50.842Z"
    }
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "license": {
      "valid": true,
      "email": "demo@demo.org",
      "licenseExpires": "2017-04-11T10:42:50.842Z",
      "trialExpires": "2017-04-11T10:42:50.842Z"
    }
  }
}
Field Type Req. OpenS. Details
license license Yes The status of the license

5.36 - getLyrics

Searches for and returns lyrics for a given song.

http://your-server/rest/getLyrics Since 1.2.0

Searches for and returns lyrics for a given song.

Parameters

Parameter Req. OpenS. Default Comment
artist No The artist name.
title No The song title.

Example

Result

A subsonic-response element with a nested lyrics element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
    "lyrics": {
      "artist": "Metallica",
      "title": "Blitzkrieg",
      "value": "Let us have peace, let us have life\n\nLet us escape the cruel night\n\nLet us have time, let the sun shine\n\nLet us beware the deadly sign\n\n\n\nThe day is coming\n\nArmageddon's near\n\nInferno's coming\n\nCan we survive the blitzkrieg?\n\nThe blitzkrieg\n\nThe blitzkrieg\n\n\n\nSave us from fate, save us from hate\n\nSave ourselves before it's too late\n\nCome to our need, hear our plea\n\nSave ourselves before the earth bleeds\n\n\n\nThe day is dawning\n\nThe time is near\n\nAliens calling\n\nCan we survive the blitzkrieg?"
    }
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "lyrics": {
      "artist": "Metallica",
      "title": "Blitzkrieg",
      "value": "Let us have peace, let us have life\n\nLet us escape the cruel night\n\nLet us have time, let the sun shine\n\nLet us beware the deadly sign\n\n\n\nThe day is coming\n\nArmageddon's near\n\nInferno's coming\n\nCan we survive the blitzkrieg?\n\nThe blitzkrieg\n\nThe blitzkrieg\n\n\n\nSave us from fate, save us from hate\n\nSave ourselves before it's too late\n\nCome to our need, hear our plea\n\nSave ourselves before the earth bleeds\n\n\n\nThe day is dawning\n\nThe time is near\n\nAliens calling\n\nCan we survive the blitzkrieg?"
    }
  }
}
Field Type Req. OpenS. Details
lyrics lyrics Yes The lyrics

5.37 - getLyricsBySongId

Add support for synchronized lyrics, multiple languages, and retrieval by song ID

OpenSubsonic version: 1

OpenSubsonic extension name songLyrics (As returned by getOpenSubsonicExtensions)

Retrieves all structured lyrics from the server for a given song. The lyrics can come from embedded tags (SYLT/USLT), LRC file/text file, or any other external source.

http://your-server/rest/getLyricsBySongId

Parameters

Parameter Req. OpenS. Default Comment
id Yes Yes The track ID.

Example

Result

A subsonic-response element with a nested lyricsList

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true,
    "lyricsList": {
      "structuredLyrics": [
        {
          "displayArtist": "Muse",
          "displayTitle": "Hysteria",
          "lang": "eng",
          "offset": -100,
          "synced": true,
          "line": [
            {
              "start": 0,
              "value": "It's bugging me"
            },
            {
              "start": 2000,
              "value": "Grating me"
            },
            {
              "start": 3001,
              "value": "And twisting me around..."
            }
          ]
        },
        {
          "displayArtist": "Muse",
          "displayTitle": "Hysteria",
          "lang": "und",
          "offset": 100,
          "synced": false,
          "line": [
            {
              "value": "It's bugging me"
            },
            {
              "value": "Grating me"
            },
            {
              "value": "And twisting me around..."
            }
          ]
        }
      ]
    }
  }
}
<subsonic-response status="ok" version="1.16.1" type="AwesomeServerName" serverVersion="0.1.3 (tag)" openSubsonic="true">
  <lyricsList>
    <structuredLyrics displayArtist="Muse" displayTitle="Hysteria" lang="en" offset="-100" synced="true">
      <line start="0">It's bugging me</line>
      <line start="2000">Grating me</line>
      <line start="3001">And twisting me around...</line>
    </structuredLyrics>
    <structuredLyrics displayArtist="Muse" displayTitle="Hysteria" lang="en" offset="100" synced="false">
      <line>It's bugging me</line>
      <line>Grating me</line>
      <line>And twisting me around...</line>
    </structuredLyrics>
  </lyricsList>
</subsonic-response>
Does not exist.
Field Type Req. OpenS. Details
lyricsList lyricsList Yes Yes List of structured lyrics

5.38 - getMusicDirectory

Returns a listing of all files in a music directory.

http://your-server/rest/getMusicDirectory Since 1.0.0

Returns a listing of all files in a music directory. Typically used to get list of albums for an artist, or list of songs for an album.

Parameters

Parameter Req. OpenS. Default Comment
id Yes A string which uniquely identifies the music folder. Obtained by calls to getIndexes or getMusicDirectory.

Example

Result

A subsonic-response element with a nested directory element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
    "directory": {
      "id": "1",
      "name": "music",
      "child": [
        {
          "id": "100000016",
          "parent": "1",
          "isDir": true,
          "title": "CARNÚN",
          "artist": "CARNÚN",
          "coverArt": "ar-100000016"
        },
        {
          "id": "100000027",
          "parent": "1",
          "isDir": true,
          "title": "Chi.Otic",
          "artist": "Chi.Otic",
          "coverArt": "ar-100000027"
        }
      ]
    }
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "directory": {
      "id": "1",
      "name": "music",
      "child": [
        {
          "id": "100000016",
          "parent": "1",
          "isDir": true,
          "title": "CARNÚN",
          "artist": "CARNÚN",
          "coverArt": "ar-100000016"
        },
        {
          "id": "100000027",
          "parent": "1",
          "isDir": true,
          "title": "Chi.Otic",
          "artist": "Chi.Otic",
          "coverArt": "ar-100000027"
        }
      ]
    }
  }
}
Field Type Req. OpenS. Details
directory directory Yes The directory content

5.39 - getMusicFolders

Returns all configured top-level music folders.

http://your-server/rest/getMusicFolders Since 1.0.0

Returns all configured top-level music folders. Takes no extra parameters.

Parameters

Takes no extra parameters.

Example

Result

A subsonic-response element with a nested musicFolders element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
    "musicFolders": {
      "musicFolder": [
        {
          "id": "1",
          "name": "music"
        },
        {
          "id": "4",
          "name": "upload"
        }
      ]
    }
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "musicFolders": {
      "musicFolder": [
        {
          "id": "1",
          "name": "music"
        },
        {
          "id": "4",
          "name": "upload"
        }
      ]
    }
  }
}
Field Type Req. OpenS. Details
musicFolders musicFolders Yes The directory content

5.40 - getNewestPodcasts

Returns the most recently published Podcast episodes.

http://your-server/rest/getNewestPodcasts Since 1.13.0

Returns the most recently published Podcast episodes.

Parameters

Parameter Req. OpenS. Default Comment
count No 20 The maximum number of episodes to return.

Example

Result

A subsonic-response element with a nested newestPodcasts element on success.

// TODO
// TODO
Field Type Req. OpenS. Details
newestPodcasts newestPodcasts Yes The podacsts

5.41 - getNowPlaying

Returns what is currently being played by all users.

http://your-server/rest/getNowPlaying Since 1.0.0

Returns what is currently being played by all users. Takes no extra parameters.

Parameters

Takes no extra parameters.

Example

Result

A subsonic-response element with a nested nowPlaying element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
    "nowPlaying": {
      "entry": [
        {
          "id": "300115266",
          "parent": "200147046",
          "title": "Take the Home",
          "isDir": false,
          "isVideo": false,
          "type": "music",
          "albumId": "200147046",
          "album": "How I Learned to Love Our Robot Overlords",
          "artistId": "100002619",
          "artist": "Raggedy Angry",
          "coverArt": "300115266",
          "duration": 227,
          "bitRate": 222,
          "bitDepth": 16,
          "samplingRate": 44100,
          "channelCount": 2,
          "userRating": 3,
          "track": 7,
          "year": 2010,
          "genre": "Industrial",
          "size": 6341039,
          "discNumber": 1,
          "suffix": "mp3",
          "contentType": "audio/mpeg",
          "path": "Raggedy Angry/(2010) How I Learned to Love Our Robot Overlords/1-07 - Take the Home.mp3",
          "username": "user",
          "minutesAgo": 0,
          "playerId": 0
        }
      ]
    }
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "nowPlaying": {
      "entry": [
        {
          "id": "300115266",
          "parent": "200147046",
          "title": "Take the Home",
          "isDir": false,
          "isVideo": false,
          "type": "music",
          "albumId": "200147046",
          "album": "How I Learned to Love Our Robot Overlords",
          "artistId": "100002619",
          "artist": "Raggedy Angry",
          "coverArt": "300115266",
          "duration": 227,
          "bitRate": 222,
          "bitDepth": 16,
          "samplingRate": 44100,
          "channelCount": 2,
          "userRating": 3,
          "track": 7,
          "year": 2010,
          "genre": "Industrial",
          "size": 6341039,
          "discNumber": 1,
          "suffix": "mp3",
          "contentType": "audio/mpeg",
          "path": "Raggedy Angry/(2010) How I Learned to Love Our Robot Overlords/1-07 - Take the Home.mp3",
          "username": "user",
          "minutesAgo": 0,
          "playerId": 0
        }
      ]
    }
  }
}
Field Type Req. OpenS. Details
nowPlaying nowPlaying Yes The now playing content

5.42 - getOpenSubsonicExtensions

List the OpenSubsonic extensions supported by this server.

http://your-server/rest/getOpenSubsonicExtensions OpenSubsonic version 1

List the OpenSubsonic extensions supported by this server.

Parameters

Takes no extra parameters.

Note: Unlike all other APIs getOpenSubsonicExtensions must be publicly accessible.

Example

Result

A subsonic-response element with a nested openSubsonicExtensions element on success.

{
    "subsonic-response": {
        "status": "ok",
        "version": "1.16.1",
        "type": "AwesomeServerName",
        "serverVersion": "0.1.3 (tag)",
        "openSubsonic": true,
        "openSubsonicExtensions": [
            {
                "name": "template",
                "versions": [
                    1,
                    2
                ]
            },
            {
                "name": "transcodeOffset",
                "versions": [
                    1
                ]
            }
        ]
    }
}
Does not exist.
Field Type Req. OpenS. Details
openSubsonicExtensions An array of openSubsonicExtension Yes The list of supported extensions

5.43 - getPlaylist

Returns a listing of files in a saved playlist.

http://your-server/rest/getPlaylist Since 1.0.0

Returns a listing of files in a saved playlist.

Parameters

Parameter Req. OpenS. Default Comment
id yes ID of the playlist to return, as obtained by getPlaylists.

Example

Result

A subsonic-response element with a nested playlist element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
    "playlist": {
      "id": "800000075",
      "name": "testcreate",
      "owner": "user",
      "public": true,
      "created": "2023-03-16T03:18:41+00:00",
      "changed": "2023-03-16T03:18:41+00:00",
      "songCount": 1,
      "duration": 304,
      "entry": [
        {
          "id": "300000060",
          "parent": "200000002",
          "title": "BrownSmoke",
          "isDir": false,
          "isVideo": false,
          "type": "music",
          "albumId": "200000002",
          "album": "Colorsmoke EP",
          "artistId": "100000002",
          "artist": "Synthetic",
          "coverArt": "300000060",
          "duration": 304,
          "bitRate": 20,
          "bitDepth": 16,
          "samplingRate": 44100,
          "channelCount": 2,
          "userRating": 5,
          "averageRating": 5,
          "track": 4,
          "year": 2007,
          "genre": "Electronic",
          "size": 792375,
          "discNumber": 1,
          "suffix": "wma",
          "contentType": "audio/x-ms-wma",
          "path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007/04-Synthetic_-_BrownSmokeYSBM20k22khS.wma"
        }
      ]
    }
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "playlist": {
      "id": "800000075",
      "name": "testcreate",
      "owner": "user",
      "public": true,
      "created": "2023-03-16T03:18:41+00:00",
      "changed": "2023-03-16T03:18:41+00:00",
      "songCount": 1,
      "duration": 304,
      "entry": [
        {
          "id": "300000060",
          "parent": "200000002",
          "title": "BrownSmoke",
          "isDir": false,
          "isVideo": false,
          "type": "music",
          "albumId": "200000002",
          "album": "Colorsmoke EP",
          "artistId": "100000002",
          "artist": "Synthetic",
          "coverArt": "300000060",
          "duration": 304,
          "bitRate": 20,
          "bitDepth": 16,
          "samplingRate": 44100,
          "channelCount": 2,
          "userRating": 5,
          "averageRating": 5,
          "track": 4,
          "year": 2007,
          "genre": "Electronic",
          "size": 792375,
          "discNumber": 1,
          "suffix": "wma",
          "contentType": "audio/x-ms-wma",
          "path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007/04-Synthetic_-_BrownSmokeYSBM20k22khS.wma"
        }
      ]
    }
  }
}
Field Type Req. OpenS. Details
playlist playlist Yes The created playlist

5.44 - getPlaylists

Returns all playlists a user is allowed to play.

http://your-server/rest/getPlaylists Since 1.0.0

Returns all playlists a user is allowed to play.

Parameters

Parameter Req. OpenS. Default Comment
username no (Since 1.8.0) If specified, return playlists for this user rather than for the authenticated user. The authenticated user must have admin role if this parameter is used.

Example

Result

A subsonic-response element with a nested playlists element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "playlists": {
      "playlist": [
        {
          "id": "800000003",
          "name": "random - admin - private (admin)",
          "owner": "admin",
          "public": false,
          "created": "2021-02-23T04:35:38+00:00",
          "changed": "2021-02-23T04:35:38+00:00",
          "songCount": 43,
          "duration": 17875
        },
        {
          "id": "800000002",
          "name": "random - admin - public (admin)",
          "owner": "admin",
          "public": true,
          "created": "2021-02-23T04:34:56+00:00",
          "changed": "2021-02-23T04:34:56+00:00",
          "songCount": 43,
          "duration": 17786
        }
      ]
    }
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "playlists": {
      "playlist": [
        {
          "id": "800000003",
          "name": "random - admin - private (admin)",
          "owner": "admin",
          "public": false,
          "created": "2021-02-23T04:35:38+00:00",
          "changed": "2021-02-23T04:35:38+00:00",
          "songCount": 43,
          "duration": 17875
        },
        {
          "id": "800000002",
          "name": "random - admin - public (admin)",
          "owner": "admin",
          "public": true,
          "created": "2021-02-23T04:34:56+00:00",
          "changed": "2021-02-23T04:34:56+00:00",
          "songCount": 43,
          "duration": 17786
        }
      ]
    }
  }
}
Field Type Req. OpenS. Details
playlists playlists Yes The playlists

5.45 - getPlayQueue

Returns the state of the play queue for this user.

http://your-server/rest/getPlayQueue Since 1.12.0

Returns the state of the play queue for this user (as set by savePlayQueue). This includes the tracks in the play queue, the currently playing track, and the position within this track. Typically used to allow a user to move between different clients/apps while retaining the same play queue (for instance when listening to an audio book).

Parameters

Takes no extra parameters.

Example

Result

A subsonic-response element with a nested playQueue element on success.

// TODO
// TODO
Field Type Req. OpenS. Details
playQueue playQueue Yes The play queue

5.46 - getPodcasts

Returns all Podcast channels the server subscribes to, and (optionally) their episodes.

http://your-server/rest/getPodcasts Since 1.6.0

Returns all Podcast channels the server subscribes to, and (optionally) their episodes. This method can also be used to return details for only one channel - refer to the id parameter. A typical use case for this method would be to first retrieve all channels without episodes, and then retrieve all episodes for the single channel the user selects.

Parameters

Parameter Req. OpenS. Default Comment
includeEpisodes No true (Since 1.9.0) Whether to include Podcast episodes in the returned result.
id No (Since 1.9.0) If specified, only return the Podcast channel with this ID.

Example

Result

A subsonic-response element with a nested podcasts element on success.

// TODO
// TODO
Field Type Req. OpenS. Details
podcasts podcasts Yes The podacsts

5.47 - getRandomSongs

Returns random songs matching the given criteria.

http://your-server/rest/getRandomSongs Since 1.2.0

Returns random songs matching the given criteria.

Parameters

Parameter Req. OpenS. Default Comment
size No 10 The maximum number of songs to return. Max 500.
genre No Only returns songs belonging to this genre.
fromYear No Only return songs published after or in this year.
toYear No Only return songs published before or in this year.
musicFolderId No Only return songs in the music folder with the given ID. See getMusicFolders.

Example

Result

A subsonic-response element with a nested randomSongs element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
    "randomSongs": {
      "song": [
        {
          "id": "300000060",
          "parent": "200000002",
          "title": "BrownSmoke",
          "isDir": false,
          "isVideo": false,
          "type": "music",
          "albumId": "200000002",
          "album": "Colorsmoke EP",
          "artistId": "100000002",
          "artist": "Synthetic",
          "coverArt": "300000060",
          "duration": 304,
          "bitRate": 20,
          "bitDepth": 16,
          "samplingRate": 44100,
          "channelCount": 2,
          "userRating": 5,
          "averageRating": 5,
          "track": 4,
          "year": 2007,
          "genre": "Electronic",
          "size": 792375,
          "discNumber": 1,
          "suffix": "wma",
          "contentType": "audio/x-ms-wma",
          "path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007/04-Synthetic_-_BrownSmokeYSBM20k22khS.wma"
        },
        {
          "id": "300000055",
          "parent": "200000002",
          "title": "Red&GreenSmoke",
          "isDir": false,
          "isVideo": false,
          "type": "music",
          "albumId": "200000002",
          "album": "Colorsmoke EP",
          "artistId": "100000002",
          "artist": "Synthetic",
          "coverArt": "300000055",
          "duration": 400,
          "bitRate": 64,
          "bitDepth": 16,
          "samplingRate": 44100,
          "channelCount": 2,
          "track": 5,
          "year": 2007,
          "genre": "Electronic",
          "size": 3209886,
          "discNumber": 1,
          "suffix": "mp3",
          "contentType": "audio/mpeg",
          "path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007(1)/05-Synthetic_-_RedGreenSmokePM20k22khS_64kb.mp3"
        }
      ]
    }
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "randomSongs": {
      "song": [
        {
          "id": "300000060",
          "parent": "200000002",
          "title": "BrownSmoke",
          "isDir": false,
          "isVideo": false,
          "type": "music",
          "albumId": "200000002",
          "album": "Colorsmoke EP",
          "artistId": "100000002",
          "artist": "Synthetic",
          "coverArt": "300000060",
          "duration": 304,
          "bitRate": 20,
          "bitDepth": 16,
          "samplingRate": 44100,
          "channelCount": 2,
          "userRating": 5,
          "averageRating": 5,
          "track": 4,
          "year": 2007,
          "genre": "Electronic",
          "size": 792375,
          "discNumber": 1,
          "suffix": "wma",
          "contentType": "audio/x-ms-wma",
          "path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007/04-Synthetic_-_BrownSmokeYSBM20k22khS.wma"
        },
        {
          "id": "300000055",
          "parent": "200000002",
          "title": "Red&GreenSmoke",
          "isDir": false,
          "isVideo": false,
          "type": "music",
          "albumId": "200000002",
          "album": "Colorsmoke EP",
          "artistId": "100000002",
          "artist": "Synthetic",
          "coverArt": "300000055",
          "duration": 400,
          "bitRate": 64,
          "bitDepth": 16,
          "samplingRate": 44100,
          "channelCount": 2,
          "track": 5,
          "year": 2007,
          "genre": "Electronic",
          "size": 3209886,
          "discNumber": 1,
          "suffix": "mp3",
          "contentType": "audio/mpeg",
          "path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007(1)/05-Synthetic_-_RedGreenSmokePM20k22khS_64kb.mp3"
        }
      ]
    }
  }
}
Field Type Req. OpenS. Details
randomSongs randomSongs Yes The random songs list

5.48 - getScanStatus

Returns the current status for media library scanning.

http://your-server/rest/getScanStatus Since 1.15.0

Returns the current status for media library scanning. Takes no extra parameters.

Parameters

Takes no extra parameters.

Example

Result

A subsonic-response element with a nested scanStatus element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
    "scanStatus": {
      "scanning": true,
      "count": 1
    }
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "scanStatus": {
      "scanning": true,
      "count": 0
    }
  }
}
Field Type Req. OpenS. Details
scanStatus scanStatus Yes The status of the scan

5.49 - getShares

Returns information about shared media this user is allowed to manage.

http://your-server/rest/getShares Since 1.6.0

Returns information about shared media this user is allowed to manage. Takes no extra parameters.

Parameters

Takes no extra parameters.

Example

Result

A subsonic-response element with a nested shares element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
    "shares": {
      "share": [
        {
          "id": "12",
          "url": "http://localhost:8989/share.php?id=12&secret=fXlKyEv3",
          "description": "Forget and Remember (Comfort Fit)",
          "username": "user",
          "created": "2023-03-16T04:13:09+00:00",
          "visitCount": 0,
          "entry": [
            {
              "id": "300000116",
              "parent": "200000021",
              "title": "Can I Help U?",
              "isDir": false,
              "isVideo": false,
              "type": "music",
              "albumId": "200000021",
              "album": "Forget and Remember",
              "artistId": "100000036",
              "artist": "Comfort Fit",
              "coverArt": "300000116",
              "duration": 103,
              "bitRate": 216,
              "bitDepth": 16,
              "samplingRate": 44100,
              "channelCount": 2,
              "track": 1,
              "year": 2005,
              "genre": "Hip-Hop",
              "size": 2811819,
              "discNumber": 1,
              "suffix": "mp3",
              "contentType": "audio/mpeg",
              "path": "user/Comfort Fit/Forget And Remember/1 - Can I Help U?.mp3"
            },
            {
              "id": "300000121",
              "parent": "200000021",
              "title": "Planetary Picknick",
              "isDir": false,
              "isVideo": false,
              "type": "music",
              "albumId": "200000021",
              "album": "Forget and Remember",
              "artistId": "100000036",
              "artist": "Comfort Fit",
              "coverArt": "300000121",
              "duration": 358,
              "bitRate": 238,
              "bitDepth": 16,
              "samplingRate": 44100,
              "channelCount": 2,
              "track": 2,
              "year": 2005,
              "genre": "Hip-Hop",
              "size": 10715592,
              "discNumber": 1,
              "suffix": "mp3",
              "contentType": "audio/mpeg",
              "path": "user/Comfort Fit/Forget And Remember/2 - Planetary Picknick.mp3"
            }
          ]
        }
      ]
    }
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "shares": {
      "share": [
        {
          "id": "12",
          "url": "http://localhost:8989/share.php?id=12&secret=fXlKyEv3",
          "description": "Forget and Remember (Comfort Fit)",
          "username": "user",
          "created": "2023-03-16T04:13:09+00:00",
          "visitCount": 0,
          "entry": [
            {
              "id": "300000116",
              "parent": "200000021",
              "title": "Can I Help U?",
              "isDir": false,
              "isVideo": false,
              "type": "music",
              "albumId": "200000021",
              "album": "Forget and Remember",
              "artistId": "100000036",
              "artist": "Comfort Fit",
              "coverArt": "300000116",
              "duration": 103,
              "bitRate": 216,
              "bitDepth": 16,
              "samplingRate": 44100,
              "channelCount": 2,
              "track": 1,
              "year": 2005,
              "genre": "Hip-Hop",
              "size": 2811819,
              "discNumber": 1,
              "suffix": "mp3",
              "contentType": "audio/mpeg",
              "path": "user/Comfort Fit/Forget And Remember/1 - Can I Help U?.mp3"
            },
            {
              "id": "300000121",
              "parent": "200000021",
              "title": "Planetary Picknick",
              "isDir": false,
              "isVideo": false,
              "type": "music",
              "albumId": "200000021",
              "album": "Forget and Remember",
              "artistId": "100000036",
              "artist": "Comfort Fit",
              "coverArt": "300000121",
              "duration": 358,
              "bitRate": 238,
              "bitDepth": 16,
              "samplingRate": 44100,
              "channelCount": 2,
              "track": 2,
              "year": 2005,
              "genre": "Hip-Hop",
              "size": 10715592,
              "discNumber": 1,
              "suffix": "mp3",
              "contentType": "audio/mpeg",
              "path": "user/Comfort Fit/Forget And Remember/2 - Planetary Picknick.mp3"
            }
          ]
        }
      ]
    }
  }
}
Field Type Req. OpenS. Details
shares shares Yes The shares

5.50 - getSimilarSongs

Returns a random collection of songs from the given artist and similar artists.

http://your-server/rest/getSimilarSongs Since 1.11.0

Returns a random collection of songs from the given artist and similar artists, using data from last.fm. Typically used for artist radio features.

Parameters

Parameter Req. OpenS. Default Comment
id Yes The artist, album or song ID.
count No 50 Max number of songs to return.

Example

Result

A subsonic-response element with a nested similarSongs element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
    "similarSongs": {
      "song": [
        {
          "id": "300000060",
          "parent": "200000002",
          "title": "BrownSmoke",
          "isDir": false,
          "isVideo": false,
          "type": "music",
          "albumId": "200000002",
          "album": "Colorsmoke EP",
          "artistId": "100000002",
          "artist": "Synthetic",
          "coverArt": "300000060",
          "duration": 304,
          "bitRate": 20,
          "bitDepth": 16,
          "samplingRate": 44100,
          "channelCount": 2,
          "userRating": 5,
          "averageRating": 5,
          "track": 4,
          "year": 2007,
          "genre": "Electronic",
          "size": 792375,
          "discNumber": 1,
          "suffix": "wma",
          "contentType": "audio/x-ms-wma",
          "path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007/04-Synthetic_-_BrownSmokeYSBM20k22khS.wma"
        },
        {
          "id": "300000055",
          "parent": "200000002",
          "title": "Red&GreenSmoke",
          "isDir": false,
          "isVideo": false,
          "type": "music",
          "albumId": "200000002",
          "album": "Colorsmoke EP",
          "artistId": "100000002",
          "artist": "Synthetic",
          "coverArt": "300000055",
          "duration": 400,
          "bitRate": 64,
          "bitDepth": 16,
          "samplingRate": 44100,
          "channelCount": 2,
          "track": 5,
          "year": 2007,
          "genre": "Electronic",
          "size": 3209886,
          "discNumber": 1,
          "suffix": "mp3",
          "contentType": "audio/mpeg",
          "path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007(1)/05-Synthetic_-_RedGreenSmokePM20k22khS_64kb.mp3"
        }
      ]
    }
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "similarSongs": {
      "song": [
        {
          "id": "300000060",
          "parent": "200000002",
          "title": "BrownSmoke",
          "isDir": false,
          "isVideo": false,
          "type": "music",
          "albumId": "200000002",
          "album": "Colorsmoke EP",
          "artistId": "100000002",
          "artist": "Synthetic",
          "coverArt": "300000060",
          "duration": 304,
          "bitRate": 20,
          "bitDepth": 16,
          "samplingRate": 44100,
          "channelCount": 2,
          "userRating": 5,
          "averageRating": 5,
          "track": 4,
          "year": 2007,
          "genre": "Electronic",
          "size": 792375,
          "discNumber": 1,
          "suffix": "wma",
          "contentType": "audio/x-ms-wma",
          "path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007/04-Synthetic_-_BrownSmokeYSBM20k22khS.wma"
        },
        {
          "id": "300000055",
          "parent": "200000002",
          "title": "Red&GreenSmoke",
          "isDir": false,
          "isVideo": false,
          "type": "music",
          "albumId": "200000002",
          "album": "Colorsmoke EP",
          "artistId": "100000002",
          "artist": "Synthetic",
          "coverArt": "300000055",
          "duration": 400,
          "bitRate": 64,
          "bitDepth": 16,
          "samplingRate": 44100,
          "channelCount": 2,
          "track": 5,
          "year": 2007,
          "genre": "Electronic",
          "size": 3209886,
          "discNumber": 1,
          "suffix": "mp3",
          "contentType": "audio/mpeg",
          "path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007(1)/05-Synthetic_-_RedGreenSmokePM20k22khS_64kb.mp3"
        }
      ]
    }
  }
}
Field Type Req. OpenS. Details
similarSongs similarSongs Yes The similar songs list

5.51 - getSimilarSongs2

Returns a random collection of songs from the given artist and similar artists.

http://your-server/rest/getSimilarSongs2 Since 1.11.0

Similar to getSimilarSongs, but organizes music according to ID3 tags.

Parameters

Parameter Req. OpenS. Default Comment
id Yes The artist ID.
count No 50 Max number of songs to return.

Example

Result

A subsonic-response element with a nested similarSongs2 element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
    "similarSongs2": {
      "song": [
        {
          "id": "300000060",
          "parent": "200000002",
          "title": "BrownSmoke",
          "isDir": false,
          "isVideo": false,
          "type": "music",
          "albumId": "200000002",
          "album": "Colorsmoke EP",
          "artistId": "100000002",
          "artist": "Synthetic",
          "coverArt": "300000060",
          "duration": 304,
          "bitRate": 20,
          "bitDepth": 16,
          "samplingRate": 44100,
          "channelCount": 2,
          "userRating": 5,
          "averageRating": 5,
          "track": 4,
          "year": 2007,
          "genre": "Electronic",
          "size": 792375,
          "discNumber": 1,
          "suffix": "wma",
          "contentType": "audio/x-ms-wma",
          "path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007/04-Synthetic_-_BrownSmokeYSBM20k22khS.wma"
        },
        {
          "id": "300000055",
          "parent": "200000002",
          "title": "Red&GreenSmoke",
          "isDir": false,
          "isVideo": false,
          "type": "music",
          "albumId": "200000002",
          "album": "Colorsmoke EP",
          "artistId": "100000002",
          "artist": "Synthetic",
          "coverArt": "300000055",
          "duration": 400,
          "bitRate": 64,
          "bitDepth": 16,
          "samplingRate": 44100,
          "channelCount": 2,
          "track": 5,
          "year": 2007,
          "genre": "Electronic",
          "size": 3209886,
          "discNumber": 1,
          "suffix": "mp3",
          "contentType": "audio/mpeg",
          "path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007(1)/05-Synthetic_-_RedGreenSmokePM20k22khS_64kb.mp3"
        }
      ]
    }
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "similarSongs2": {
      "song": [
        {
          "id": "300000060",
          "parent": "200000002",
          "title": "BrownSmoke",
          "isDir": false,
          "isVideo": false,
          "type": "music",
          "albumId": "200000002",
          "album": "Colorsmoke EP",
          "artistId": "100000002",
          "artist": "Synthetic",
          "coverArt": "300000060",
          "duration": 304,
          "bitRate": 20,
          "bitDepth": 16,
          "samplingRate": 44100,
          "channelCount": 2,
          "userRating": 5,
          "averageRating": 5,
          "track": 4,
          "year": 2007,
          "genre": "Electronic",
          "size": 792375,
          "discNumber": 1,
          "suffix": "wma",
          "contentType": "audio/x-ms-wma",
          "path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007/04-Synthetic_-_BrownSmokeYSBM20k22khS.wma"
        },
        {
          "id": "300000055",
          "parent": "200000002",
          "title": "Red&GreenSmoke",
          "isDir": false,
          "isVideo": false,
          "type": "music",
          "albumId": "200000002",
          "album": "Colorsmoke EP",
          "artistId": "100000002",
          "artist": "Synthetic",
          "coverArt": "300000055",
          "duration": 400,
          "bitRate": 64,
          "bitDepth": 16,
          "samplingRate": 44100,
          "channelCount": 2,
          "track": 5,
          "year": 2007,
          "genre": "Electronic",
          "size": 3209886,
          "discNumber": 1,
          "suffix": "mp3",
          "contentType": "audio/mpeg",
          "path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007(1)/05-Synthetic_-_RedGreenSmokePM20k22khS_64kb.mp3"
        }
      ]
    }
  }
}
Field Type Req. OpenS. Details
similarSongs2 similarSongs2 Yes The similar songs list

5.52 - getSong

Returns details for a song.

http://your-server/rest/getSong Since 1.8.0

Returns details for a song.

Parameters

Parameter Req. OpenS. Default Comment
id Yes The song ID.

Example

Result

A subsonic-response element with a nested song element on success.

// TODO
// TODO
Field Type Req. OpenS. Details
song song Yes The song

5.53 - getSongsByGenre

Returns songs in a given genre.

http://your-server/rest/getSongsByGenre Since 1.9.0

Returns songs in a given genre.

Parameters

Parameter Req. OpenS. Default Comment
genre Yes The genre, as returned by getGenres.
count No 10 The maximum number of songs to return. Max 500.
offset No 0 The offset. Useful if you want to page through the songs in a genre.
musicFolderId No (Since 1.12.0) Only return albums in the music folder with the given ID. See getMusicFolders.

Example

Result

A subsonic-response element with a nested songsByGenre element on success.

// TODO
// TODO
Field Type Req. OpenS. Details
songsByGenre songsByGenre Yes The song

5.54 - getStarred

Returns starred songs, albums and artists.

http://your-server/rest/getStarred Since 1.8.0

Returns starred songs, albums and artists.

Parameters

Parameter Req. OpenS. Default Comment
musicFolderId No (Since 1.12.0) Only return results from the music folder with the given ID. See getMusicFolders.

Example

Result

A subsonic-response element with a nested starred element on success.

// TODO
// TODO
Field Type Req. OpenS. Details
starred starred Yes The song

5.55 - getStarred2

Returns starred songs, albums and artists.

http://your-server/rest/getStarred2 Since 1.8.0

Similar to getStarred, but organizes music according to ID3 tags.

Parameters

Parameter Req. OpenS. Default Comment
musicFolderId No (Since 1.12.0) Only return results from the music folder with the given ID. See getMusicFolders.

Example

Result

A subsonic-response element with a nested starred2 element on success.

// TODO
// TODO
Field Type Req. OpenS. Details
starred2 starred2 Yes The song

5.56 - getTopSongs

Returns top songs for the given artist.

http://your-server/rest/getTopSongs Since 1.13.0

Returns top songs for the given artist, using data from last.fm.

Parameters

Parameter Req. OpenS. Default Comment
artist Yes The artist name.
count No 50 Max number of songs to return.

Example

Result

A subsonic-response element with a nested topSongs element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
    "topSongs": {
      "song": [
        {
          "id": "300000060",
          "parent": "200000002",
          "title": "BrownSmoke",
          "isDir": false,
          "isVideo": false,
          "type": "music",
          "albumId": "200000002",
          "album": "Colorsmoke EP",
          "artistId": "100000002",
          "artist": "Synthetic",
          "coverArt": "300000060",
          "duration": 304,
          "bitRate": 20,
          "bitDepth": 16,
          "samplingRate": 44100,
          "channelCount": 2,
          "userRating": 5,
          "averageRating": 5,
          "track": 4,
          "year": 2007,
          "genre": "Electronic",
          "size": 792375,
          "discNumber": 1,
          "suffix": "wma",
          "contentType": "audio/x-ms-wma",
          "path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007/04-Synthetic_-_BrownSmokeYSBM20k22khS.wma"
        },
        {
          "id": "300000055",
          "parent": "200000002",
          "title": "Red&GreenSmoke",
          "isDir": false,
          "isVideo": false,
          "type": "music",
          "albumId": "200000002",
          "album": "Colorsmoke EP",
          "artistId": "100000002",
          "artist": "Synthetic",
          "coverArt": "300000055",
          "duration": 400,
          "bitRate": 64,
          "bitDepth": 16,
          "samplingRate": 44100,
          "channelCount": 2,
          "track": 5,
          "year": 2007,
          "genre": "Electronic",
          "size": 3209886,
          "discNumber": 1,
          "suffix": "mp3",
          "contentType": "audio/mpeg",
          "path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007(1)/05-Synthetic_-_RedGreenSmokePM20k22khS_64kb.mp3"
        }
      ]
    }
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "topSongs": {
      "song": [
        {
          "id": "300000060",
          "parent": "200000002",
          "title": "BrownSmoke",
          "isDir": false,
          "isVideo": false,
          "type": "music",
          "albumId": "200000002",
          "album": "Colorsmoke EP",
          "artistId": "100000002",
          "artist": "Synthetic",
          "coverArt": "300000060",
          "duration": 304,
          "bitRate": 20,
          "bitDepth": 16,
          "samplingRate": 44100,
          "channelCount": 2,
          "userRating": 5,
          "averageRating": 5,
          "track": 4,
          "year": 2007,
          "genre": "Electronic",
          "size": 792375,
          "discNumber": 1,
          "suffix": "wma",
          "contentType": "audio/x-ms-wma",
          "path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007/04-Synthetic_-_BrownSmokeYSBM20k22khS.wma"
        },
        {
          "id": "300000055",
          "parent": "200000002",
          "title": "Red&GreenSmoke",
          "isDir": false,
          "isVideo": false,
          "type": "music",
          "albumId": "200000002",
          "album": "Colorsmoke EP",
          "artistId": "100000002",
          "artist": "Synthetic",
          "coverArt": "300000055",
          "duration": 400,
          "bitRate": 64,
          "bitDepth": 16,
          "samplingRate": 44100,
          "channelCount": 2,
          "track": 5,
          "year": 2007,
          "genre": "Electronic",
          "size": 3209886,
          "discNumber": 1,
          "suffix": "mp3",
          "contentType": "audio/mpeg",
          "path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007(1)/05-Synthetic_-_RedGreenSmokePM20k22khS_64kb.mp3"
        }
      ]
    }
  }
}
Field Type Req. OpenS. Details
topSongs topSongs Yes The top songs list

5.57 - getUser

Get details about a given user, including which authorization roles and folder access it has.

http://your-server/rest/getUser Since 1.3.0

Get details about a given user, including which authorization roles and folder access it has. Can be used to enable/disable certain features in the client, such as jukebox control.

Parameters

Parameter Req. OpenS. Default Comment
username Yes The name of the user to retrieve. You can only retrieve your own user unless you have admin privileges.

Example

Result

A subsonic-response element with a nested user element on success.

// TODO
// TODO
Field Type Req. OpenS. Details
user user Yes The user

5.58 - getUsers

Get details about all users, including which authorization roles and folder access they have

http://your-server/rest/getUsers Since 1.8.0

Get details about all users, including which authorization roles and folder access they have. Only users with admin privileges are allowed to call this method.

Parameters

Takes no extra parameters.

Example

Result

A subsonic-response element with a nested users element on success.

// TODO
// TODO
Field Type Req. OpenS. Details
users users Yes The users

5.59 - getVideoInfo

Returns details for a video.

http://your-server/rest/getVideoInfo Since 1.14.0

Returns details for a video, including information about available audio tracks, subtitles (captions) and conversions.

Parameters

Parameter Req. OpenS. Default Comment
id Yes The video ID.

Example

Result

A subsonic-response element with a nested videoInfo element on success.

// TODO
// TODO
Field Type Req. OpenS. Details
videoInfo videoInfo Yes The song

5.60 - getVideos

Returns all video files.

http://your-server/rest/getVideos Since 1.8.0

Returns all video files.

Parameters

Takes no extra parameters.

Example

Result

A subsonic-response element with a nested videos element on success.

// TODO
// TODO
Field Type Req. OpenS. Details
videos videos Yes The videos

5.61 - hls

Downloads a given media file.

http://your-server/rest/hls.m3u8 Since 1.8.0

Creates an HLS (HTTP Live Streaming) playlist used for streaming video or audio. HLS is a streaming protocol implemented by Apple and works by breaking the overall stream into a sequence of small HTTP-based file downloads. It’s supported by iOS and newer versions of Android. This method also supports adaptive bitrate streaming, see the bitRate parameter.

Parameters

Parameter Req. OpenS. Default Comment
id Yes A string which uniquely identifies the media file to stream.
bitRate No If specified, the server will attempt to limit the bitrate to this value, in kilobits per second. If this parameter is specified more than once, the server will create a variant playlist, suitable for adaptive bitrate streaming. The playlist will support streaming at all the specified bitrates. The server will automatically choose video dimensions that are suitable for the given bitrates. Since 1.9.0 you may explicitly request a certain width (480) and height (360) like so: bitRate=1000@480x360
audioTrack No The ID of the audio track to use. SeegetVideoInfo for how to get the list of available audio tracks for a video.

Example

Result

Returns an M3U8 playlist on success (content type “application/vnd.apple.mpegurl”), or an XML document on error (in which case the HTTP content type will start with “text/xml”).

5.62 - jukeboxControl

Controls the jukebox, i.e., playback directly on the server’s audio hardware.

http://your-server/rest/jukeboxControl Since 1.2.0

Controls the jukebox, i.e., playback directly on the server’s audio hardware. Note: The user must be authorized to control the jukebox (see Settings > Users > User is allowed to play files in jukebox mode).

Parameters

Parameter Req. OpenS. Default Comment
action Yes The operation to perform. Must be one of: get, status (since 1.7.0), set (since 1.7.0), start, stop, skip, add, clear, remove, shuffle, setGain
index No Used by skip and remove. Zero-based index of the song to skip to or remove.
offset No (Since 1.7.0) Used by skip. Start playing this many seconds into the track.
id No Used by add and set. ID of song to add to the jukebox playlist. Use multiple id parameters to add many songs in the same request. (set is similar to a clear followed by a add, but will not change the currently playing track.)
gain No Used by setGain to control the playback volume. A float value between 0.0 and 1.0.

Example

Result

A subsonic-response element with a nested :

// TODO
// TODO
Field Type Req. OpenS. Details
jukeboxStatus jukeboxstatus Yes The jukeboxstatus
jukeboxPlaylist jukeboxPlaylist Yes The jukeboxstatus

5.63 - ping

Used to test connectivity with the server.

http://your-server/rest/ping Since 1.0.0

Test connectivity with the server.

Parameters

Takes no extra parameters.

Example

Result

An empty subsonic-response element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1"
  }
}

5.64 - refreshPodcasts

Requests the server to check for new Podcast episodes.

http://your-server/rest/refreshPodcasts Since 1.9.0

Requests the server to check for new Podcast episodes. Note: The user must be authorized for Podcast administration (see Settings > Users > User is allowed to administrate Podcasts).

Parameters

Takes no extra parameters.

Example

Result

An empty subsonic-response element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1"
  }
}

5.65 - savePlayQueue

Saves the state of the play queue for this user.

http://your-server/rest/savePlayQueue Since 1.12.0

Saves the state of the play queue for this user. This includes the tracks in the play queue, the currently playing track, and the position within this track. Typically used to allow a user to move between different clients/apps while retaining the same play queue (for instance when listening to an audio book).

Parameters

Parameter Req. OpenS. Default Comment
id No ID of a song in the play queue. Use one id parameter for each song in the play queue.
current No The ID of the current playing song.
position No The position in milliseconds within the currently playing song.

Example

Result

An empty subsonic-response element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1"
  }
}

5.66 - scrobble

Registers the local playback of one or more media files.

http://your-server/rest/scrobble Since 1.5.0

Registers the local playback of one or more media files. Typically used when playing media that is cached on the client. This operation includes the following:

  • “Scrobbles” the media files on last.fm if the user has configured his/her last.fm credentials on the server.
  • Updates the play count and last played timestamp for the media files. (Since 1.11.0)
  • Makes the media files appear in the “Now playing” page in the web app, and appear in the list of songs returned by getNowPlaying (Since 1.11.0)

Since 1.8.0 you may specify multiple id (and optionally time) parameters to scrobble multiple files.

Parameters

Parameter Req. OpenS. Default Comment
id Yes A string which uniquely identifies the file to scrobble.
time No (Since 1.8.0) The time (in milliseconds since 1 Jan 1970) at which the song was listened to.
submission No True Whether this is a “submission” or a “now playing” notification.

Example

Result

An empty subsonic-response element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1"
  }
}

5.67 - search

Returns a listing of files matching the given search criteria. Supports paging through the result.

http://your-server/rest/search Since 1.0.0

Deprecated since 1.4.0, use search2 instead.

Returns a listing of files matching the given search criteria. Supports paging through the result.

Parameters

Parameter Req. OpenS. Default Comment
artist No Artist to search for.
album No Album to searh for.
title No Song title to search for.
any No Searches all fields.
count No 20 Maximum number of results to return.
offset No 0 Search result offset. Used for paging.
newerThan No Only return matches that are newer than this. Given as milliseconds since 1970.

Example

Result

A subsonic-response element with a nested searchResult element on success.

// TODO
// TODO
Field Type Req. OpenS. Details
searchResult searchResult Yes The result

5.68 - search2

Returns a listing of files matching the given search criteria. Supports paging through the result.

http://your-server/rest/search2 Since 1.4.0

Returns albums, artists and songs matching the given search criteria. Supports paging through the result.

Parameters

Parameter Req. OpenS. Default Comment
query Yes Search query.
artistCount No 20 Maximum number of artists to return.
artistOffset No 0 Search result offset for artists. Used for paging.
albumCount No 20 Maximum number of albums to return.
albumOffset No 0 Search result offset for albums. Used for paging.
songCount No 20 Maximum number of songs to return.
songOffset No 0 Search result offset for songs. Used for paging.
musicFolderId No (Since 1.12.0) Only return results from the music folder with the given ID. See getMusicFolders.

Example

Result

A subsonic-response element with a nested searchResult2 element on success.

// TODO
// TODO
Field Type Req. OpenS. Details
searchResult2 searchResult2 Yes The result

5.69 - search3

Returns albums, artists and songs matching the given search criteria. Supports paging through the result.

http://your-server/rest/search3 Since 1.8.0

Returns albums, artists and songs matching the given search criteria. Supports paging through the result.

Music is organized according to ID3 tags.

Parameters

Parameter Requ. OpenS. Default Comment
query Yes See below* Search query.
artistCount No 20 Maximum number of artists to return.
artistOffset No 0 Search result offset for artists. Used for paging.
albumCount No 20 Maximum number of albums to return.
albumOffset No 0 Search result offset for albums. Used for paging.
songCount No 20 Maximum number of songs to return.
songOffset No 0 Search result offset for songs. Used for paging.
musicFolderId No (Since 1.12.0) Only return results from music folder with the given ID. See getMusicFolders.

Example

Result

A subsonic-response with a nested searchResult3 element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
    "searchResult3": {
      "artist": [
        {
          "id": "37ec820ca7193e17040c98f7da7c4b51",
          "name": "2 Mello",
          "coverArt": "ar-37ec820ca7193e17040c98f7da7c4b51_0",
          "albumCount": 1,
          "userRating": 5,
          "artistImageUrl": "https://demo.org/image.jpg"
        }
      ],
      "album": [
        {
          "id": "ad0f112b6dcf83de5e9cae85d07f0d35",
          "name": "8-bit lagerfeuer",
          "artist": "pornophonique",
          "year": 2007,
          "coverArt": "al-ad0f112b6dcf83de5e9cae85d07f0d35_640a93a8",
          "starred": "2023-03-22T01:51:06Z",
          "duration": 1954,
          "playCount": 97,
          "played": "2023-03-28T00:45:13Z",
          "created": "2023-03-10T02:19:35.784818075Z",
          "artistId": "91c3901ac465b9efc439e4be4270c2b6",
          "userRating": 4,
          "songCount": 8
        }
      ],
      "song": [
        {
          "id": "082f435a363c32c57d5edb6a678a28d4",
          "parent": "e8a0685e3f3ec6f251649af2b58b8617",
          "isDir": false,
          "title": "\"polar expedition\"",
          "album": "Live at The Casbah - 2005-04-29",
          "artist": "The New Deal",
          "track": 4,
          "year": 2005,
          "coverArt": "mf-082f435a363c32c57d5edb6a678a28d4_6410b3ce",
          "size": 19866778,
          "contentType": "audio/flac",
          "suffix": "flac",
          "starred": "2023-03-27T09:45:27Z",
          "duration": 178,
          "bitRate": 880,
          "bitDepth": 16,
          "samplingRate": 44100,
          "channelCount": 2,
          "path": "The New Deal/Live at The Casbah - 2005-04-29/04 - \"polar expedition\".flac",
          "playCount": 8,
          "played": "2023-03-26T22:27:46Z",
          "discNumber": 1,
          "created": "2023-03-14T17:51:22.112827504Z",
          "albumId": "e8a0685e3f3ec6f251649af2b58b8617",
          "artistId": "97e0398acf63f9fb930d7d4ce209a52b",
          "type": "music",
          "isVideo": false
        }
      ]
    }
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "searchResult3": {
      "artist": [
        {
          "id": "37ec820ca7193e17040c98f7da7c4b51",
          "name": "2 Mello",
          "coverArt": "ar-37ec820ca7193e17040c98f7da7c4b51_0",
          "albumCount": 1,
          "userRating": 5,
          "artistImageUrl": "https://demo.org/image.jpg"
        }
      ],
      "album": [
        {
          "id": "ad0f112b6dcf83de5e9cae85d07f0d35",
          "name": "8-bit lagerfeuer",
          "artist": "pornophonique",
          "year": 2007,
          "coverArt": "al-ad0f112b6dcf83de5e9cae85d07f0d35_640a93a8",
          "starred": "2023-03-22T01:51:06Z",
          "duration": 1954,
          "playCount": 97,
          "played": "2023-03-28T00:45:13Z",
          "created": "2023-03-10T02:19:35.784818075Z",
          "artistId": "91c3901ac465b9efc439e4be4270c2b6",
          "userRating": 4,
          "songCount": 8
        }
      ],
      "song": [
        {
          "id": "082f435a363c32c57d5edb6a678a28d4",
          "parent": "e8a0685e3f3ec6f251649af2b58b8617",
          "isDir": false,
          "title": "\"polar expedition\"",
          "album": "Live at The Casbah - 2005-04-29",
          "artist": "The New Deal",
          "track": 4,
          "year": 2005,
          "coverArt": "mf-082f435a363c32c57d5edb6a678a28d4_6410b3ce",
          "size": 19866778,
          "contentType": "audio/flac",
          "suffix": "flac",
          "starred": "2023-03-27T09:45:27Z",
          "duration": 178,
          "bitRate": 880,
          "bitDepth": 16,
          "samplingRate": 44100,
          "channelCount": 2,
          "path": "The New Deal/Live at The Casbah - 2005-04-29/04 - \"polar expedition\".flac",
          "playCount": 8,
          "played": "2023-03-26T22:27:46Z",
          "discNumber": 1,
          "created": "2023-03-14T17:51:22.112827504Z",
          "albumId": "e8a0685e3f3ec6f251649af2b58b8617",
          "artistId": "97e0398acf63f9fb930d7d4ce209a52b",
          "type": "music",
          "isVideo": false
        }
      ]
    }
  }
}
Field Type Req. OpenS. Details
searchResult3 searchResult3 Yes The result of the search

5.70 - setRating

Sets the rating for a music file.

http://your-server/rest/setRating Since 1.6.0

Sets the rating for a music file.

Parameters

Parameter Req. OpenS. Default Comment
id Yes A string which uniquely identifies the file (song) or folder (album/artist) to rate.
rating Yes The rating between 1 and 5 (inclusive), or 0 to remove the rating.

Example

Result

An empty subsonic-response element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1"
  }
}

5.71 - star

Attaches a star to a song, album or artist.

http://your-server/rest/star Since 1.8.0

Attaches a star to a song, album or artist.

Parameters

Parameter Req. OpenS. Default Comment
id No The ID of the file (song) or folder (album/artist) to star. Multiple parameters allowed.
albumId No The ID of an album to star. Use this rather than id if the client accesses the media collection according to ID3 tags rather than file structure. Multiple parameters allowed.
artistId No The ID of an artist to star. Use this rather than id if the client accesses the media collection according to ID3 tags rather than file structure. Multiple parameters allowed.

Example

Result

An empty subsonic-response element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1"
  }
}

5.72 - startScan

Initiates a rescan of the media libraries.

http://your-server/rest/startScan Since 1.15.0

Initiates a rescan of the media libraries. Takes no extra parameters.

Parameters

Takes no extra parameters.

Example

Result

A subsonic-response element with a nested scanStatus element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
    "scanStatus": {
      "scanning": true,
      "count": 1
    }
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "scanStatus": {
      "scanning": true,
      "count": 0
    }
  }
}
Field Type Req. OpenS. Details
scanStatus scanStatus Yes The status of the scan

5.73 - stream

Streams a given media file.

http://your-server/rest/stream Since 1.0.0

Streams a given media file.

Parameters

Parameter Req. OpenS. Default Comment
id Yes A string which uniquely identifies the file to stream. Obtained by calls to getMusicDirectory.
maxBitRate No (Since 1.2.0) If specified, the server will attempt to limit the bitrate to this value, in kilobits per second. If set to zero, no limit is imposed.
format No (Since 1.6.0) Specifies the preferred target format (e.g., “mp3” or “flv”) in case there are multiple applicable transcodings. Starting with 1.9.0 you can use the special value “raw” to disable transcoding.
timeOffset No No / Yes By default only applicable to video streaming. If specified, start streaming at the given offset (in seconds) into the media. The Transcode Offet extension enables the parameter to music too.
size No (Since 1.6.0) Only applicable to video streaming. Requested video size specified as WxH, for instance “640x480”.
estimateContentLength No false (Since 1.8.0). If set to “true”, the Content-Length HTTP header will be set to an estimated value for transcoded or downsampled media.
converted No false (Since 1.14.0) Only applicable to video streaming. Servers can optimize videos for streaming by converting them to MP4. If a conversion exists for the video in question, then setting this parameter to “true” will cause the converted video to be returned instead of the original.

Example

Result

Returns binary data on success, or an XML document on error (in which case the HTTP content type will start with “text/xml”).

5.74 - tokenInfo

Returns information about an API key

OpenSubsonic version: 1

OpenSubsonic extension name apiKeyAuthentication (As returned by getOpenSubsonicExtensions)

Returns data about an API key.

http://your-server/rest/tokenInfo

Parameters

None

Example

Result

A subsonic-response element with a nested tokenInfo on success, or error 44 on invalid token.

{
"subsonic-response": {
  "status": "ok",
  "version": "1.16.1",
  "type": "AwesomeServerName",
  "serverVersion": "0.1.3 (tag)",
  "openSubsonic": true,
    "tokenInfo": {
      "username": "token username"
    }
  }
}
<subsonic-response status="ok" version="1.16.1" type="AwesomeServerName" serverVersion="0.1.3 (tag)" openSubsonic="true">
  <tokenInfo username="token username"></tokenInfo>
</subsonic-response>
Does not exist.
Field Type Req. OpenS. Details
tokenInfo tokenInfo Yes Yes Information about the token

5.75 - unstar

Attaches a star to a song, album or artist.

http://your-server/rest/unstar Since 1.8.0

Removes a star to a song, album or artist.

Parameters

Parameter Req. OpenS. Default Comment
id No The ID of the file (song) or folder (album/artist) to unstar. Multiple parameters allowed.
albumId No The ID of an album to unstar. Use this rather than id if the client accesses the media collection according to ID3 tags rather than file structure. Multiple parameters allowed.
artistId No The ID of an artist to unstar. Use this rather than id if the client accesses the media collection according to ID3 tags rather than file structure. Multiple parameters allowed.

Example

Result

An empty subsonic-response element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1"
  }
}

5.76 - updateInternetRadioStation

Updates an existing internet radio station.

http://your-server/rest/updateInternetRadioStation Since 1.16.0

Updates an existing internet radio station. Only users with admin privileges are allowed to call this method.

Parameters

Parameter Req. OpenS. Default Comment
id Yes The ID of the station.
streamUrl Yes The stream URL for the station.
name Yes The user-defined name for the station.
homepageUrl No The home page URL for the station.

Example

Result

An empty subsonic-response element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1"
  }
}

5.77 - updatePlaylist

Updates a playlist. Only the owner of a playlist is allowed to update it.

http://your-server/rest/updatePlaylist Since 1.8.0

Updates a playlist. Only the owner of a playlist is allowed to update it.

Parameters

Parameter Req. OpenS. Default Comment
playlistId Yes The playlist ID.
name No The human-readable name of the playlist.
comment No The playlist comment.
public No true if the playlist should be visible to all users, false otherwise.
songIdToAdd No Add this song with this ID to the playlist. Multiple parameters allowed.
songIndexToRemove No Remove the song at this position in the playlist. Multiple parameters allowed.

Example

Result

An empty subsonic-response element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1"
  }
}

5.78 - updateShare

Updates the description and/or expiration date for an existing share.

http://your-server/rest/updateShare Since 1.6.0

Updates the description and/or expiration date for an existing share.

Parameters

Parameter Req. OpenS. Default Comment
id Yes ID of the share to update.
description No A user-defined description that will be displayed to people visiting the shared media.
expires No The time at which the share expires. Given as milliseconds since 1970, or zero to remove the expiration.

Example

Result

An empty subsonic-response element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1"
  }
}

5.79 - updateUser

Modifies an existing user on the server.

http://your-server/rest/updateUser Since 1.10.1

Modifies an existing user on the server.

Parameters

Parameter Req. OpenS. Default Comment
username Yes The name of the user.
password No The password of the user, either in clear text of hex-encoded (see above).
email No The email address of the user.
ldapAuthenticated No Whether the user is authenicated in LDAP.
adminRole No Whether the user is administrator.
settingsRole No Whether the user is allowed to change personal settings and password.
streamRole No Whether the user is allowed to play files.
jukeboxRole No Whether the user is allowed to play files in jukebox mode.
downloadRole No Whether the user is allowed to download files.
uploadRole No Whether the user is allowed to upload files.
coverArtRole No Whether the user is allowed to change cover art and tags.
commentRole No Whether the user is allowed to create and edit comments and ratings.
podcastRole No Whether the user is allowed to administrate Podcasts.
shareRole No Whether the user is allowed to share files with anyone.
videoConversionRole No false (Since 1.15.0) Whether the user is allowed to start video conversions.
musicFolderId No (Since 1.12.0) IDs of the music folders the user is allowed access to. Include the parameter once for each folder.
maxBitRate No (Since 1.13.0) The maximum bit rate (in Kbps) for the user. Audio streams of higher bit rates are automatically downsampled to this bit rate. Legal values: 0 (no limit), 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320.

Example

Result

An empty subsonic-response element on success.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1"
  }
}

6 - Responses

Endpoints responses documentation.

6.1 - AlbumID3

An album from ID3 tags.
{
    "id": "ad0f112b6dcf83de5e9cae85d07f0d35",
    "name": "8-bit lagerfeuer",
    "artist": "pornophonique",
    "year": 2007,
    "coverArt": "al-ad0f112b6dcf83de5e9cae85d07f0d35_640a93a8",
    "starred": "2023-03-22T01:51:06Z",
    "duration": 1954,
    "playCount": 97,
    "genre": "Hip-Hop",
    "created": "2023-03-10T02:19:35.784818075Z",
    "artistId": "91c3901ac465b9efc439e4be4270c2b6",
    "songCount": 8,
    "played": "2023-03-28T00:45:13Z",
    "userRating": 4,
    "recordLabels": [
        {
            "name": "Sony"
        }
    ],
    "musicBrainzId": "189002e7-3285-4e2e-92a3-7f6c30d407a2",
    "genres": [
        {
            "name": "Hip-Hop"
        },
        {
            "name": "East coast"
        }
    ],
    "artists": [
        {
            "id": "ar-1",
            "name": "Artist 1"
        },
        {
            "id": "ar-2",
            "name": "Artist 2"
        }
    ],
    "displayArtist": "Artist 1 feat. Artist 2",
    "releaseTypes": [
        "Album",
        "Remixes"
    ],
    "moods": [
        "slow",
        "cool"
    ],
    "sortName": "lagerfeuer (8-bit)",
    "originalReleaseDate": {
        "year": 2001,
        "month": 3,
        "day": 10
    },
    "releaseDate": {
        "year": 2001,
        "month": 3,
        "day": 10
    },
    "isCompilation": false,
    "discTitles": [
        {
            "disc": 0,
            "title": "Disc 0 title"
        },
        {
            "disc": 2,
            "title": "Disc 1 title"
        }
    ]
}
{
  "id": "ad0f112b6dcf83de5e9cae85d07f0d35",
  "name": "8-bit lagerfeuer",
  "artist": "pornophonique",
  "year": 2007,
  "coverArt": "al-ad0f112b6dcf83de5e9cae85d07f0d35_640a93a8",
  "starred": "2023-03-22T01:51:06Z",
  "duration": 1954,
  "playCount": 97,
  "genre": "Hip-Hop",
  "created": "2023-03-10T02:19:35.784818075Z",
  "artistId": "91c3901ac465b9efc439e4be4270c2b6",
  "songCount": 8
}
Field Type Req. OpenS. Details
id string Yes The id of the album
name string Yes The album name.
artist string No Artist name.
artistId string No The id of the artist
coverArt string No A covertArt id.
songCount int Yes Number of songs
duration int Yes Total duration of the album in seconds
playCount long No Number of play of the album
created string Yes Date the album was added. [ISO 8601]
starred string No Date the album was starred. [ISO 8601]
year int No The album year
genre string No The album genre
played string No Yes Date the album was last played. [ISO 8601]
userRating int No Yes The user rating of the album. [1-5]
recordLabels Array of RecordLabel No Yes The labels producing the album.
musicBrainzId string No Yes The album MusicBrainzID.
genres Array of ItemGenre No Yes The list of all genres of the album.
artists Array of ArtistID3 No Yes The list of all album artists of the album. (Note: Only the required ArtistID3 fields should be returned by default)
displayArtist string No Yes The single value display artist.
releaseTypes Array of string No Yes The types of this album release. (Album, Compilation, EP, Remix, …).
moods Array of string No Yes The list of all moods of the album.
sortName string No Yes The album sort name.
originalReleaseDate ItemDate No Yes Date the album was originally released.
releaseDate ItemDate No Yes Date the specific edition of the album was released. Note: for files using ID3 tags, releaseDate should generally be read from the TDRL tag. Servers that use a different source for this field should document the behavior.
isCompilation boolean No Yes True if the album is a compilation.
discTitles Array of DiscTitle No Yes The list of all disc titles of the album.

6.2 - AlbumID3WithSongs

Album with songs.
{
    "id": "ad0f112b6dcf83de5e9cae85d07f0d35",
    "name": "8-bit lagerfeuer",
    "artist": "pornophonique",
    "year": 2007,
    "coverArt": "al-ad0f112b6dcf83de5e9cae85d07f0d35_640a93a8",
    "starred": "2023-03-22T01:51:06Z",
    "duration": 1954,
    "playCount": 97,
    "genre": "Hip-Hop",
    "created": "2023-03-10T02:19:35.784818075Z",
    "artistId": "91c3901ac465b9efc439e4be4270c2b6",
    "songCount": 8,
    "played": "2023-03-28T00:45:13Z",
    "userRating": 4,
    "recordLabels": [
        {
            "name": "Sony"
        }
    ],
    "musicBrainzId": "189002e7-3285-4e2e-92a3-7f6c30d407a2",
    "genres": [
        {
            "name": "Hip-Hop"
        },
        {
            "name": "East coast"
        }
    ],
    "artists": [
        {
            "id": "ar-1",
            "name": "Artist 1"
        },
        {
            "id": "ar-2",
            "name": "Artist 2"
        }
    ],
    "displayArtist": "Artist 1 feat. Artist 2",
    "releaseTypes": [
        "Album",
        "Remixes"
    ],
    "moods": [
        "slow",
        "cool"
    ],
    "sortName": "lagerfeuer (8-bit)",
    "originalReleaseDate": {
        "year": 2001,
        "month": 3,
        "day": 10
    },
    "releaseDate": {
        "year": 2001,
        "month": 3,
        "day": 10
    },
    "isCompilation": false,
    "discTitles": [
        {
            "disc": 0,
            "title": "Disc 0 title"
        },
        {
            "disc": 2,
            "title": "Disc 1 title"
        }
    ],
    "song": [
        {
            "id": "300000116",
            "parent": "200000021",
            "title": "Can I Help U?",
            "isDir": false,
            "isVideo": false,
            "type": "music",
            "albumId": "200000021",
            "album": "Forget and Remember",
            "artistId": "100000036",
            "artist": "Comfort Fit",
            "coverArt": "300000116",
            "duration": 103,
            "bitRate": 216,
            "bitDepth": 16,
            "samplingRate": 44100,
            "channelCount": 2,
            "track": 1,
            "year": 2005,
            "genre": "Hip-Hop",
            "size": 2811819,
            "discNumber": 1,
            "suffix": "mp3",
            "contentType": "audio/mpeg",
            "path": "user/Comfort Fit/Forget And Remember/1 - Can I Help U?.mp3"
        },
        {
            "id": "300000121",
            "parent": "200000021",
            "title": "Planetary Picknick",
            "isDir": false,
            "isVideo": false,
            "type": "music",
            "albumId": "200000021",
            "album": "Forget and Remember",
            "artistId": "100000036",
            "artist": "Comfort Fit",
            "coverArt": "300000121",
            "duration": 358,
            "bitRate": 238,
            "bitDepth": 16,
            "samplingRate": 44100,
            "channelCount": 2,
            "track": 2,
            "year": 2005,
            "genre": "Hip-Hop",
            "size": 10715592,
            "discNumber": 1,
            "suffix": "mp3",
            "contentType": "audio/mpeg",
            "path": "user/Comfort Fit/Forget And Remember/2 - Planetary Picknick.mp3"
        }
    ]
}
{
  "id": "200000021",
  "parent": "100000036",
  "album": "Forget and Remember",
  "title": "Forget and Remember",
  "name": "Forget and Remember",
  "isDir": true,
  "coverArt": "al-200000021",
  "songCount": 20,
  "created": "2021-07-22T02:09:31+00:00",
  "duration": 4248,
  "playCount": 0,
  "artistId": "100000036",
  "artist": "Comfort Fit",
  "year": 2005,
  "genre": "Hip-Hop",
  "song": [
    {
      "id": "300000116",
      "parent": "200000021",
      "title": "Can I Help U?",
      "isDir": false,
      "isVideo": false,
      "type": "music",
      "albumId": "200000021",
      "album": "Forget and Remember",
      "artistId": "100000036",
      "artist": "Comfort Fit",
      "coverArt": "300000116",
      "duration": 103,
      "bitRate": 216,
      "bitDepth": 16,
      "samplingRate": 44100,
      "channelCount": 2,
      "track": 1,
      "year": 2005,
      "genre": "Hip-Hop",
      "size": 2811819,
      "discNumber": 1,
      "suffix": "mp3",
      "contentType": "audio/mpeg",
      "path": "user/Comfort Fit/Forget And Remember/1 - Can I Help U?.mp3"
    },
    {
      "id": "300000121",
      "parent": "200000021",
      "title": "Planetary Picknick",
      "isDir": false,
      "isVideo": false,
      "type": "music",
      "albumId": "200000021",
      "album": "Forget and Remember",
      "artistId": "100000036",
      "artist": "Comfort Fit",
      "coverArt": "300000121",
      "duration": 358,
      "bitRate": 238,
      "bitDepth": 16,
      "samplingRate": 44100,
      "channelCount": 2,
      "track": 2,
      "year": 2005,
      "genre": "Hip-Hop",
      "size": 10715592,
      "discNumber": 1,
      "suffix": "mp3",
      "contentType": "audio/mpeg",
      "path": "user/Comfort Fit/Forget And Remember/2 - Planetary Picknick.mp3"
    }
  ]
}
Field Type Req. OpenS. Details
id string Yes The id of the album
name string Yes The album name.
artist string No Artist name.
artistId string No The id of the artist
coverArt string No A covertArt id.
songCount int Yes Number of songs
duration int Yes Total duration of the album in seconds
playCount long No Number of play of the album
created string Yes Date the album was added. [ISO 8601]
starred string No Date the album was starred. [ISO 8601]
year int No The album year
genre string No The album genre
played string No Yes Date the album was last played. [ISO 8601]
userRating int No Yes The user rating of the album. [1-5]
recordLabels Array of RecordLabel No Yes The labels producing the album.
musicBrainzId string No Yes The album MusicBrainzID.
genres Array of ItemGenre No Yes The list of all genres of the album.
artists Array of ArtistID3 No Yes The list of all album artists of the album.
displayArtist string No Yes The single value display artist.
releaseTypes Array of string No Yes The types of this album release. (Album, Compilation, EP, Remix, …).
moods Array of string No Yes The list of all moods of the album.
sortName string No Yes The album sort name.
originalReleaseDate ItemDate No Yes Date the album was originally released.
releaseDate ItemDate No Yes Date the specific edition of the album was released. Note: for files using ID3 tags, releaseDate should generally be read from the TDRL tag. Servers that use a different source for this field should document the behavior.
isCompilation boolean No Yes True if the album is a compilation.
discTitles Array of DiscTitle No Yes The list of all disc titles of the album.
song Array of Child No The list of songs

6.3 - albumInfo

Album info.
{
  "notes": "Download the full release here (creative commons). These cripsy beats are ripe with thumping funk and techno influences, sample wizardry and daring shuffles. Composed with the help of unique sound plugins which were especially programmed to measure Comfort Fit’s needs and wishes, we think the chances aren’t bad that you’ll fall for the unique sound signature, bounce and elegance of this unusual Hip Hop production. Ltj bukem / Good looking Rec., UK: \"Really love this music.\" Velanche / XLR8R, UK: \"Awesome job he's done... overall production is dope.\" Kwesi / BBE Music, UK: \"Wooooooowwwww... WHAT THE FUCK! THIS IS WHAT",
  "musicBrainzId": "6e1d48f7-717c-416e-af35-5d2454a13af2",
  "smallImageUrl": "http://localhost:8989/play/art/0f8c3cbd6b0b22c3b5402141351ac812/album/21/thumb34.jpg",
  "mediumImageUrl": "http://localhost:8989/play/art/41b16680dc1b3aaf5dfba24ddb6a1712/album/21/thumb64.jpg",
  "largeImageUrl": "http://localhost:8989/play/art/e6fd8d4e0d35c4436e56991892bfb27b/album/21/thumb174.jpg"
}
{
  "notes": "Download the full release here (creative commons). These cripsy beats are ripe with thumping funk and techno influences, sample wizardry and daring shuffles. Composed with the help of unique sound plugins which were especially programmed to measure Comfort Fit’s needs and wishes, we think the chances aren’t bad that you’ll fall for the unique sound signature, bounce and elegance of this unusual Hip Hop production. Ltj bukem / Good looking Rec., UK: \"Really love this music.\" Velanche / XLR8R, UK: \"Awesome job he's done... overall production is dope.\" Kwesi / BBE Music, UK: \"Wooooooowwwww... WHAT THE FUCK! THIS IS WHAT",
  "musicBrainzId": "6e1d48f7-717c-416e-af35-5d2454a13af2",
  "smallImageUrl": "http://localhost:8989/play/art/0f8c3cbd6b0b22c3b5402141351ac812/album/21/thumb34.jpg",
  "mediumImageUrl": "http://localhost:8989/play/art/41b16680dc1b3aaf5dfba24ddb6a1712/album/21/thumb64.jpg",
  "largeImageUrl": "http://localhost:8989/play/art/e6fd8d4e0d35c4436e56991892bfb27b/album/21/thumb174.jpg"
}
Field Type Req. OpenS. Details
notes string No Album notes
musicBrainzId string No Album musicBrainzId
lastFmUrl string No Album lastFmUrl
smallImageUrl string No Album smallImageUrl
mediumImageUrl string No Album mediumImageUrl
largeImageUrl string No Album largeImageUrl

6.4 - albumList

Album list.
{
  "album": [
    {
      "id": "200000021",
      "parent": "100000036",
      "album": "Forget and Remember",
      "title": "Forget and Remember",
      "name": "Forget and Remember",
      "isDir": true,
      "coverArt": "al-200000021",
      "created": "2021-07-22T02:09:31+00:00",
      "duration": 4248,
      "playCount": 0,
      "artistId": "100000036",
      "artist": "Comfort Fit",
      "year": 2005,
      "genre": "Hip-Hop"
    },
    {
      "id": "200000012",
      "parent": "100000019",
      "album": "Buried in Nausea",
      "title": "Buried in Nausea",
      "name": "Buried in Nausea",
      "isDir": true,
      "coverArt": "al-200000012",
      "created": "2021-02-24T01:44:21+00:00",
      "duration": 1879,
      "playCount": 0,
      "artistId": "100000019",
      "artist": "Various Artists",
      "year": 2012,
      "genre": "Punk"
    }
  ]
}
{
  "album": [
    {
      "id": "200000021",
      "parent": "100000036",
      "album": "Forget and Remember",
      "title": "Forget and Remember",
      "name": "Forget and Remember",
      "isDir": true,
      "coverArt": "al-200000021",
      "created": "2021-07-22T02:09:31+00:00",
      "duration": 4248,
      "playCount": 0,
      "artistId": "100000036",
      "artist": "Comfort Fit",
      "year": 2005,
      "genre": "Hip-Hop"
    },
    {
      "id": "200000012",
      "parent": "100000019",
      "album": "Buried in Nausea",
      "title": "Buried in Nausea",
      "name": "Buried in Nausea",
      "isDir": true,
      "coverArt": "al-200000012",
      "created": "2021-02-24T01:44:21+00:00",
      "duration": 1879,
      "playCount": 0,
      "artistId": "100000019",
      "artist": "Various Artists",
      "year": 2012,
      "genre": "Punk"
    }
  ]
}
Field Type Req. OpenS. Details
album Array of Child No Artist albums

6.5 - albumList2

Album list.
{
  "album": [
    {
      "id": "200000021",
      "album": "Forget and Remember",
      "title": "Forget and Remember",
      "name": "Forget and Remember",
      "coverArt": "al-200000021",
      "songCount": 20,
      "created": "2021-07-22T02:09:31+00:00",
      "duration": 4248,
      "playCount": 0,
      "artistId": "100000036",
      "artist": "Comfort Fit",
      "year": 2005,
      "genre": "Hip-Hop"
    },
    {
      "id": "200000012",
      "album": "Buried in Nausea",
      "title": "Buried in Nausea",
      "name": "Buried in Nausea",
      "coverArt": "al-200000012",
      "songCount": 9,
      "created": "2021-02-24T01:44:21+00:00",
      "duration": 1879,
      "playCount": 0,
      "artistId": "100000019",
      "artist": "Various Artists",
      "year": 2012,
      "genre": "Punk"
    }
  ]
}
{
  "album": [
    {
      "id": "200000021",
      "album": "Forget and Remember",
      "title": "Forget and Remember",
      "name": "Forget and Remember",
      "coverArt": "al-200000021",
      "songCount": 20,
      "created": "2021-07-22T02:09:31+00:00",
      "duration": 4248,
      "playCount": 0,
      "artistId": "100000036",
      "artist": "Comfort Fit",
      "year": 2005,
      "genre": "Hip-Hop"
    },
    {
      "id": "200000012",
      "album": "Buried in Nausea",
      "title": "Buried in Nausea",
      "name": "Buried in Nausea",
      "coverArt": "al-200000012",
      "songCount": 9,
      "created": "2021-02-24T01:44:21+00:00",
      "duration": 1879,
      "playCount": 0,
      "artistId": "100000019",
      "artist": "Various Artists",
      "year": 2012,
      "genre": "Punk"
    }
  ]
}
Field Type Req. OpenS. Details
album Array of AlbumID3 No Artist albums

6.6 - artist

Artist details.
{
  "id": "100000002",
  "name": "Synthetic",
  "coverArt": "ar-100000002",
  "albumCount": 1,
  "starred": "2021-02-22T05:54:18Z"
}
{
  "id": "100000002",
  "name": "Synthetic",
  "coverArt": "ar-100000002",
  "albumCount": 1,
  "starred": "2021-02-22T05:54:18Z"
}
Field Type Req. OpenS. Details
id string Yes Artist id
name string Yes Artist name
artistImageUrl string No Artist image url
starred string No Artist starred date [ISO 8601]
userRating int No Artist rating [1-5]
averageRating number No Artist average rating [1.0-5.0]
album Array of AlbumID3 No Artist albums

6.7 - ArtistID3

An artist from ID3 tags.
{
    "id": "37ec820ca7193e17040c98f7da7c4b51",
    "name": "2 Mello",
    "coverArt": "ar-37ec820ca7193e17040c98f7da7c4b51_0",
    "albumCount": 1,
    "userRating": 5,
    "artistImageUrl": "https://demo.org/image.jpg",
    "starred": "2017-04-11T10:42:50.842Z",
    "musicBrainzId": "189002e7-3285-4e2e-92a3-7f6c30d407a2",
    "sortName": "Mello (2)",
    "roles": [
        "artist",
        "albumartist",
        "composer"
    ]
}
{
  "id": "37ec820ca7193e17040c98f7da7c4b51",
  "name": "2 Mello",
  "coverArt": "ar-37ec820ca7193e17040c98f7da7c4b51_0",
  "albumCount": 1,
  "userRating": 5,
  "artistImageUrl": "https://demo.org/image.jpg",
  "starred": "2017-04-11T10:42:50.842Z"
}
Field Type Req. OpenS. Details
id string Yes The id of the arist
name string Yes The artist name.
coverArt string No A covertArt id.
artistImageUrl string No An url to an external image source.
albumCount int No Artist album count.
starred string No Date the artist was starred. [ISO 8601]
musicBrainzId string No Yes The artist MusicBrainzID.
sortName string No Yes The artist sort name.
roles Array of string No Yes The list of all roles this artist have in the library.

6.8 - artistInfo

Artist info.
{
  "biography": {},
  "musicBrainzId": "1",
  "smallImageUrl": "http://localhost:8989/play/art/f20070e8e11611cc53542a38801d60fa/artist/2/thumb34.jpg",
  "mediumImageUrl": "http://localhost:8989/play/art/2b9b6c057cd4bf21089ce7572e7792b6/artist/2/thumb64.jpg",
  "largeImageUrl": "http://localhost:8989/play/art/e18287c23a75e263b64c31b3d64c1944/artist/2/thumb174.jpg"
}
{
  "biography": {},
  "musicBrainzId": "1",
  "smallImageUrl": "http://localhost:8989/play/art/f20070e8e11611cc53542a38801d60fa/artist/2/thumb34.jpg",
  "mediumImageUrl": "http://localhost:8989/play/art/2b9b6c057cd4bf21089ce7572e7792b6/artist/2/thumb64.jpg",
  "largeImageUrl": "http://localhost:8989/play/art/e18287c23a75e263b64c31b3d64c1944/artist/2/thumb174.jpg"
}
Field Type Req. OpenS. Details
biography string No Artist biography
musicBrainzId string No Artist musicBrainzId
lastFmUrl string No Artist lastFmUrl
smallImageUrl string No Artist smallImageUrl
mediumImageUrl string No Artist mediumImageUrl
largeImageUrl string No Artist largeImageUrl
similarArtist Array of artist No Similar Artists

6.9 - artistInfo2

Artist info.
{
  "biography": {},
  "musicBrainzId": "1",
  "smallImageUrl": "http://localhost:8989/play/art/f20070e8e11611cc53542a38801d60fa/artist/2/thumb34.jpg",
  "mediumImageUrl": "http://localhost:8989/play/art/2b9b6c057cd4bf21089ce7572e7792b6/artist/2/thumb64.jpg",
  "largeImageUrl": "http://localhost:8989/play/art/e18287c23a75e263b64c31b3d64c1944/artist/2/thumb174.jpg"
}
{
  "biography": {},
  "musicBrainzId": "1",
  "smallImageUrl": "http://localhost:8989/play/art/f20070e8e11611cc53542a38801d60fa/artist/2/thumb34.jpg",
  "mediumImageUrl": "http://localhost:8989/play/art/2b9b6c057cd4bf21089ce7572e7792b6/artist/2/thumb64.jpg",
  "largeImageUrl": "http://localhost:8989/play/art/e18287c23a75e263b64c31b3d64c1944/artist/2/thumb174.jpg"
}
Field Type Req. OpenS. Details
biography string No Artist biography
musicBrainzId string No Artist musicBrainzId
lastFmUrl string No Artist lastFmUrl
smallImageUrl string No Artist smallImageUrl
mediumImageUrl string No Artist mediumImageUrl
largeImageUrl string No Artist largeImageUrl
similarArtist Array of ArtistID3 No Similar Artists

6.10 - ArtistsID3

A list of indexed Artists.
{
  "ignoredArticles": "The An A Die Das Ein Eine Les Le La",
  "index": [
    {
      "name": "C",
      "artist": [
        {
          "id": "100000016",
          "name": "CARNÚN",
          "coverArt": "ar-100000016",
          "albumCount": 1
        },
        {
          "id": "100000027",
          "name": "Chi.Otic",
          "coverArt": "ar-100000027",
          "albumCount": 0
        }
      ]
    },
    {
      "name": "I",
      "artist": [
        {
          "id": "100000013",
          "name": "IOK-1",
          "coverArt": "ar-100000013",
          "albumCount": 1
        }
      ]
    }
  ]
}
{
  "ignoredArticles": "The An A Die Das Ein Eine Les Le La",
  "index": [
    {
      "name": "C",
      "artist": [
        {
          "id": "100000016",
          "name": "CARNÚN",
          "coverArt": "ar-100000016",
          "albumCount": 1
        },
        {
          "id": "100000027",
          "name": "Chi.Otic",
          "coverArt": "ar-100000027",
          "albumCount": 0
        }
      ]
    },
    {
      "name": "I",
      "artist": [
        {
          "id": "100000013",
          "name": "IOK-1",
          "coverArt": "ar-100000013",
          "albumCount": 1
        }
      ]
    }
  ]
}
Field Type Req. OpenS. Details
ignoredArticles string Yes List of ignored articles space separated
index Array of IndexID3 Yes Index list

6.11 - bookmark

A bookmark.
{
  "entry": {
    "id": "113bf5989ad15ce2cf1834ba9622983f",
    "parent": "b87a936c682c49d4494c7ccb08c22d23",
    "isDir": false,
    "title": "Stay Out Here",
    "album": "Shaking The Habitual",
    "artist": "The Knife",
    "track": 11,
    "year": 2013,
    "genre": "Electronic",
    "coverArt": "al-b87a936c682c49d4494c7ccb08c22d23_0",
    "size": 21096309,
    "contentType": "audio/mp4",
    "suffix": "m4a",
    "duration": 642,
    "bitRate": 257,
    "bitDepth": 16,
    "samplingRate": 44100,
    "channelCount": 2,
    "path": "The Knife/Shaking The Habitual/11 - Stay Out Here.m4a",
    "created": "2023-03-13T16:30:35Z",
    "albumId": "b87a936c682c49d4494c7ccb08c22d23",
    "artistId": "b29e9a9d780cb0e133f3add5662771b9",
    "type": "music",
    "isVideo": false,
    "bookmarkPosition": 129000
  },
  "position": 129000,
  "username": "demo",
  "comment": "",
  "created": "2023-03-13T16:30:35Z",
  "changed": "2023-03-13T16:30:35Z"
}
{
  "entry": {
    "id": "113bf5989ad15ce2cf1834ba9622983f",
    "parent": "b87a936c682c49d4494c7ccb08c22d23",
    "isDir": false,
    "title": "Stay Out Here",
    "album": "Shaking The Habitual",
    "artist": "The Knife",
    "track": 11,
    "year": 2013,
    "genre": "Electronic",
    "coverArt": "al-b87a936c682c49d4494c7ccb08c22d23_0",
    "size": 21096309,
    "contentType": "audio/mp4",
    "suffix": "m4a",
    "duration": 642,
    "bitRate": 257,
    "bitDepth": 16,
    "samplingRate": 44100,
    "channelCount": 2,
    "path": "The Knife/Shaking The Habitual/11 - Stay Out Here.m4a",
    "created": "2023-03-13T16:30:35Z",
    "albumId": "b87a936c682c49d4494c7ccb08c22d23",
    "artistId": "b29e9a9d780cb0e133f3add5662771b9",
    "type": "music",
    "isVideo": false,
    "bookmarkPosition": 129000
  },
  "position": 129000,
  "username": "demo",
  "comment": "",
  "created": "2023-03-13T16:30:35Z",
  "changed": "2023-03-13T16:30:35Z"
}
Field Type Req. OpenS. Details
position long Yes Bookmark position in seconds
username string Yes Username
comment string No Bookmark comment
created string Yes Bookmark creation date [ISO 8601]
changed string Yes Bookmark last updated date [ISO 8601]
entry Child Yes The bookmark file

6.12 - bookmarks

Bookmarks list.
{
  "bookmark": [
    {
      "entry": {
        "id": "113bf5989ad15ce2cf1834ba9622983f",
        "parent": "b87a936c682c49d4494c7ccb08c22d23",
        "isDir": false,
        "title": "Stay Out Here",
        "album": "Shaking The Habitual",
        "artist": "The Knife",
        "track": 11,
        "year": 2013,
        "genre": "Electronic",
        "coverArt": "al-b87a936c682c49d4494c7ccb08c22d23_0",
        "size": 21096309,
        "contentType": "audio/mp4",
        "suffix": "m4a",
        "duration": 642,
        "bitRate": 257,
        "bitDepth": 16,
        "samplingRate": 44100,
        "channelCount": 2,
        "path": "The Knife/Shaking The Habitual/11 - Stay Out Here.m4a",
        "created": "2023-03-13T16:30:35Z",
        "albumId": "b87a936c682c49d4494c7ccb08c22d23",
        "artistId": "b29e9a9d780cb0e133f3add5662771b9",
        "type": "music",
        "isVideo": false,
        "bookmarkPosition": 129000
      },
      "position": 129000,
      "username": "demo",
      "comment": "",
      "created": "2023-03-13T16:30:35Z",
      "changed": "2023-03-13T16:30:35Z"
    },
    {
      "entry": {
        "id": "2b42782333450d02b177823e729664af",
        "parent": "dc8d8889a6fe08d8da7698c7ee1de61c",
        "isDir": false,
        "title": "Ill with the Skills",
        "album": "First Words",
        "artist": "The Polish Ambassador",
        "track": 17,
        "year": 2014,
        "coverArt": "mf-2b42782333450d02b177823e729664af_641edeb3",
        "size": 6219581,
        "contentType": "audio/mpeg",
        "suffix": "mp3",
        "duration": 255,
        "bitRate": 194,
        "bitDepth": 16,
        "samplingRate": 44100,
        "channelCount": 2,
        "path": "The Polish Ambassador/First Words/17 - Ill with the Skills.mp3",
        "playCount": 1,
        "played": "2023-03-15T15:23:37Z",
        "created": "2023-03-25T11:44:51Z",
        "albumId": "dc8d8889a6fe08d8da7698c7ee1de61c",
        "artistId": "64e1f796b283545d329cdf6a31a31dbe",
        "type": "music",
        "isVideo": false,
        "bookmarkPosition": 7000
      },
      "position": 7000,
      "username": "demo",
      "comment": "playSub bookmark",
      "created": "2023-03-25T11:44:51Z",
      "changed": "2023-03-25T11:44:51Z"
    }
  ]
}
{
  "bookmark": [
    {
      "entry": {
        "id": "113bf5989ad15ce2cf1834ba9622983f",
        "parent": "b87a936c682c49d4494c7ccb08c22d23",
        "isDir": false,
        "title": "Stay Out Here",
        "album": "Shaking The Habitual",
        "artist": "The Knife",
        "track": 11,
        "year": 2013,
        "genre": "Electronic",
        "coverArt": "al-b87a936c682c49d4494c7ccb08c22d23_0",
        "size": 21096309,
        "contentType": "audio/mp4",
        "suffix": "m4a",
        "duration": 642,
        "bitRate": 257,
        "bitDepth": 16,
        "samplingRate": 44100,
        "channelCount": 2,
        "path": "The Knife/Shaking The Habitual/11 - Stay Out Here.m4a",
        "created": "2023-03-13T16:30:35Z",
        "albumId": "b87a936c682c49d4494c7ccb08c22d23",
        "artistId": "b29e9a9d780cb0e133f3add5662771b9",
        "type": "music",
        "isVideo": false,
        "bookmarkPosition": 129000
      },
      "position": 129000,
      "username": "demo",
      "comment": "",
      "created": "2023-03-13T16:30:35Z",
      "changed": "2023-03-13T16:30:35Z"
    },
    {
      "entry": {
        "id": "2b42782333450d02b177823e729664af",
        "parent": "dc8d8889a6fe08d8da7698c7ee1de61c",
        "isDir": false,
        "title": "Ill with the Skills",
        "album": "First Words",
        "artist": "The Polish Ambassador",
        "track": 17,
        "year": 2014,
        "coverArt": "mf-2b42782333450d02b177823e729664af_641edeb3",
        "size": 6219581,
        "contentType": "audio/mpeg",
        "suffix": "mp3",
        "duration": 255,
        "bitRate": 194,
        "bitDepth": 16,
        "samplingRate": 44100,
        "channelCount": 2,
        "path": "The Polish Ambassador/First Words/17 - Ill with the Skills.mp3",
        "playCount": 1,
        "played": "2023-03-15T15:23:37Z",
        "created": "2023-03-25T11:44:51Z",
        "albumId": "dc8d8889a6fe08d8da7698c7ee1de61c",
        "artistId": "64e1f796b283545d329cdf6a31a31dbe",
        "type": "music",
        "isVideo": false,
        "bookmarkPosition": 7000
      },
      "position": 7000,
      "username": "demo",
      "comment": "playSub bookmark",
      "created": "2023-03-25T11:44:51Z",
      "changed": "2023-03-25T11:44:51Z"
    }
  ]
}
Field Type Req. OpenS. Details
bookmark Array of bookmark No List of bookmark

6.13 - chatMessage

A chatMessage.
{
  "username": "user",
  "time": 1678935699000,
  "message": "Api Script Testing"
}
{
  "username": "user",
  "time": 1678935699000,
  "message": "Api Script Testing"
}
Field Type Req. OpenS. Details
username string Yes Username
time long Yes Time in millis since Jan 1 1970
message string Yes The message

6.14 - chatMessages

Chat messages list.
{
  "chatMessage": [
    {
      "username": "admin",
      "time": 1678935707000,
      "message": "Api Script Testing"
    },
    {
      "username": "user",
      "time": 1678935699000,
      "message": "Api Script Testing"
    }
  ]
}
{
  "chatMessage": [
    {
      "username": "admin",
      "time": 1678935707000,
      "message": "Api Script Testing"
    },
    {
      "username": "user",
      "time": 1678935699000,
      "message": "Api Script Testing"
    }
  ]
}
Field Type Req. OpenS. Details
chatMessage Array of chatMessage No List of chatMessage

6.15 - Child

A media.
{
    "id": "082f435a363c32c57d5edb6a678a28d4",
    "parent": "e8a0685e3f3ec6f251649af2b58b8617",
    "isDir": false,
    "title": "\"polar expedition\"",
    "album": "Live at The Casbah - 2005-04-29",
    "artist": "The New Deal",
    "track": 4,
    "year": 2005,
    "coverArt": "mf-082f435a363c32c57d5edb6a678a28d4_6410b3ce",
    "size": 19866778,
    "contentType": "audio/flac",
    "suffix": "flac",
    "starred": "2023-03-27T09:45:27Z",
    "duration": 178,
    "bitRate": 880,
    "bitDepth": 16,
    "samplingRate": 44100,
    "channelCount": 2,
    "path": "The New Deal/Live at The Casbah - 2005-04-29/04 - \"polar expedition\".flac",
    "playCount": 8,
    "played": "2023-03-26T22:27:46Z",
    "discNumber": 1,
    "created": "2023-03-14T17:51:22.112827504Z",
    "albumId": "e8a0685e3f3ec6f251649af2b58b8617",
    "artistId": "97e0398acf63f9fb930d7d4ce209a52b",
    "type": "music",
    "mediaType": "song",
    "isVideo": false,
    "bpm": 134,
    "comment": "This is a song comment",
    "sortName": "Polar expedition",
    "musicBrainzId": "189002e7-3285-4e2e-92a3-7f6c30d407a2",
    "genres": [
        {
            "name": "Hip-Hop"
        },
        {
            "name": "East coast"
        }
    ],
    "artists": [
        {
            "id": "ar-1",
            "name": "Artist 1"
        },
        {
            "id": "ar-2",
            "name": "Artist 2"
        }
    ],
    "displayArtist": "Artist 1 feat. Artist 2",
    "albumArtists": [
        {
            "id": "ar-6",
            "name": "Artist 6"
        },
        {
            "id": "ar-7",
            "name": "Artist 7"
        }
    ],
    "displayAlbumArtist": "Artist 6 & Artist 7",
    "contributors": [
        {
            "role": "composer",
            "artist": {
                "id": "ar-3",
                "name": "Artist 3"
            }
        },
        {
            "role": "composer",
            "artist": {
                "id": "ar-4",
                "name": "Artist 4"
            }
        },
        {
            "role": "lyricist",
            "artist": {
                "id": "ar-5",
                "name": "Artist 5"
            }
        },
        {
            "role": "performer",
            "subRole": "Bass",
            "artist": {
                "id": "ar-5",
                "name": "Artist 5"
            }
        }
    ],
    "displayComposer": "Artist 3, Artist 4",
    "moods": [
        "slow",
        "cool"
    ],
    "replayGain": {
        "trackGain": 0.1,
        "albumGain": 1.1,
        "trackPeak": 9.2,
        "albumPeak": 9,
        "baseGain": 0
    }
}
{
  "id": "082f435a363c32c57d5edb6a678a28d4",
  "parent": "e8a0685e3f3ec6f251649af2b58b8617",
  "isDir": false,
  "title": "\"polar expedition\"",
  "album": "Live at The Casbah - 2005-04-29",
  "artist": "The New Deal",
  "track": 4,
  "year": 2005,
  "coverArt": "mf-082f435a363c32c57d5edb6a678a28d4_6410b3ce",
  "size": 19866778,
  "contentType": "audio/flac",
  "suffix": "flac",
  "starred": "2023-03-27T09:45:27Z",
  "duration": 178,
  "bitRate": 880,
  "bitDepth": 16,
  "samplingRate": 44100,
  "channelCount": 2,
  "path": "The New Deal/Live at The Casbah - 2005-04-29/04 - \"polar expedition\".flac",
  "playCount": 8,
  "discNumber": 1,
  "created": "2023-03-14T17:51:22.112827504Z",
  "albumId": "e8a0685e3f3ec6f251649af2b58b8617",
  "artistId": "97e0398acf63f9fb930d7d4ce209a52b",
  "type": "music",
  "isVideo": false
}
Field Type Req. OpenS. Details
id string Yes The id of the media
parent string No The id of the parent (folder/album)
isDir boolean Yes The media is a directory
title string Yes The media name.
album string No The album name.
artist string No The artist name.
track int No The track number.
year int No The media year.
genre string No The media genre
coverArt string No A covertArt id.
size long No A file size of the media.
contentType string No The mimeType of the media.
suffix string No The file suffix of the media.
transcodedContentType string No The transcoded mediaType if transcoding should happen.
transcodedSuffix string No The file suffix of the transcoded media.
duration int No The duration of the media in seconds.
bitRate int No The bitrate of the media.
bitDepth int No Yes The bit depth of the media.
samplingRate int No Yes The sampling rate of the media.
channelCount int No Yes The number of channels of the media.
path string No The full path of the media.
isVideo boolean No Media is a video
userRating int No The user rating of the media [1-5]
averageRating number No The average rating of the media [1.0-5.0]
playCount long No The play count.
discNumber int No The disc number.
created string No Date the media was created. [ISO 8601]
starred string No Date the media was starred. [ISO 8601]
albumId string No The corresponding album id
artistId string No The corresponding artist id
type string No The generic type of media [music/podcast/audiobook/video]
mediaType string No Yes The actual media type [song/album/artist] Note: If you support musicBrainzId you must support this field to ensure clients knows what the ID refers to.
bookmarkPosition long No The bookmark position in seconds
originalWidth int No The video original Width
originalHeight int No The video original Height
played string No Yes Date the album was last played. [ISO 8601]
bpm int No Yes The BPM of the song.
comment string No Yes The comment tag of the song.
sortName string No Yes The song sort name.
musicBrainzId string No Yes The track MusicBrainzID.
genres Array of ItemGenre No Yes The list of all genres of the song.
artists Array of ArtistID3 No Yes The list of all song artists of the song. (Note: Only the required ArtistID3 fields should be returned by default)
displayArtist string No Yes The single value display artist.
albumArtists Array of ArtistID3 No Yes The list of all album artists of the song. (Note: Only the required ArtistID3 fields should be returned by default)
displayAlbumArtist string No Yes The single value display album artist.
contributors Array of Contributor No Yes The list of all contributor artists of the song.
displayComposer string No Yes The single value display composer.
moods Array of string No Yes The list of all moods of the song.
replayGain ReplayGain No Yes The replaygain data of the song.

6.16 - Contributor

A contributor artist for a song or an album
{
    "role": "performer",
    "subRole": "Bass",
    "artist": {
        "id": "ar-1",
        "name": "Artist 1"
    }
}
Does not exist.
Field Type Req. OpenS. Details
role string Yes Yes The contributor role.
subRole string No Yes The subRole for roles that may require it. Ex: The instrument for the performer role (TMCL/performer tags). Note: For consistency between different tag formats, the TIPL sub roles should be directly exposed in the role field.
artist ArtistID3 Yes Yes The artist taking on the role. (Note: Only the required ArtistID3 fields should be returned by default)

6.17 - directory

Directory.
{
    "id": "1",
    "name": "music",
    "child": [
        {
            "id": "100000016",
            "parent": "1",
            "isDir": true,
            "title": "CARNÚN",
            "artist": "CARNÚN",
            "coverArt": "ar-100000016"
        },
        {
            "id": "100000027",
            "parent": "1",
            "isDir": true,
            "title": "Chi.Otic",
            "artist": "Chi.Otic",
            "coverArt": "ar-100000027"
        }
    ]
}
{
    "id": "1",
    "name": "music",
    "child": [
        {
            "id": "100000016",
            "parent": "1",
            "isDir": true,
            "title": "CARNÚN",
            "artist": "CARNÚN",
            "coverArt": "ar-100000016"
        },
        {
            "id": "100000027",
            "parent": "1",
            "isDir": true,
            "title": "Chi.Otic",
            "artist": "Chi.Otic",
            "coverArt": "ar-100000027"
        }
    ]
}
Field Type Req. OpenS. Details
id string Yes The id
parent string No Parent item
name string Yes The directory name
starred string No Starred date [ISO 8601]
userRating int No The user rating [1-5]
averageRating number No The average rating [1.0-5.0]
playCount long No The play count
child Array of Child No The directory content

6.18 - DiscTitle

A disc title for an album
{
  "disc": 0,
  "title": "The disc title"
}
Does not exist.
Field Type Req. OpenS. Details
disc int Yes Yes The disc numer.
title string Yes Yes The name of the disc.

6.19 - error

Error.
{
  "code": 42,
  "message": "Authentication mechanism not supported. Use API keys",
  "helpUrl": "https://example.org/users/apiKey"
}
{
  "code": 40,
  "message": "Wrong username or password"
}
Field Type Req. OpenS. Details
code int Yes The error code
message string No The optional error message
helpUrl string No Yes A URL (documentation, configuration, etc) which may provide additional context for the error)

The following error codes are defined:

Code Description
0 A generic error.
10 Required parameter is missing.
20 Incompatible Subsonic REST protocol version. Client must upgrade.
30 Incompatible Subsonic REST protocol version. Server must upgrade.
40 Wrong username or password.
41 Token authentication not supported for LDAP users.
42 Provided authentication mechanism not supported.
43 Multiple conflicting authentication mechanisms provided.
44 Invalid API key.
50 User is not authorized for the given operation.
60 The trial period for the Subsonic server is over. Please upgrade to Subsonic Premium. Visit subsonic.org for details.
70 The requested data was not found.

6.20 - genre

A genre.
{
  "songCount": 6,
  "albumCount": 1,
  "value": "Noise"
}
{
  "songCount": 6,
  "albumCount": 1,
  "value": "Noise"
}
Field Type Req. OpenS. Details
value string Yes Genre name
songCount int Yes Genre song count
albumCount int Yes Genre album count

6.21 - genres

Genres list.
{
  "genre": [
    {
      "songCount": 1,
      "albumCount": 1,
      "value": "Punk"
    },
    {
      "songCount": 4,
      "albumCount": 1,
      "value": "Dark Ambient"
    },
    {
      "songCount": 6,
      "albumCount": 1,
      "value": "Noise"
    },
    {
      "songCount": 11,
      "albumCount": 1,
      "value": "Electronica"
    },
    {
      "songCount": 11,
      "albumCount": 1,
      "value": "Dance"
    },
    {
      "songCount": 12,
      "albumCount": 1,
      "value": "Electronic"
    },
    {
      "songCount": 20,
      "albumCount": 1,
      "value": "Hip-Hop"
    }
  ]
}
{
  "genre": [
    {
      "songCount": 1,
      "albumCount": 1,
      "value": "Punk"
    },
    {
      "songCount": 4,
      "albumCount": 1,
      "value": "Dark Ambient"
    },
    {
      "songCount": 6,
      "albumCount": 1,
      "value": "Noise"
    },
    {
      "songCount": 11,
      "albumCount": 1,
      "value": "Electronica"
    },
    {
      "songCount": 11,
      "albumCount": 1,
      "value": "Dance"
    },
    {
      "songCount": 12,
      "albumCount": 1,
      "value": "Electronic"
    },
    {
      "songCount": 20,
      "albumCount": 1,
      "value": "Hip-Hop"
    }
  ]
}
Field Type Req. OpenS. Details
genre Array of genre No List of genre

6.22 - Index

An indexed artist list.
{
  "name": "C",
  "artist": [
    {
      "id": "100000016",
      "name": "CARNÚN",
      "coverArt": "ar-100000016",
      "albumCount": 1
    },
    {
      "id": "100000027",
      "name": "Chi.Otic",
      "coverArt": "ar-100000027",
      "albumCount": 0
    }
  ]
}
{
  "name": "C",
  "artist": [
    {
      "id": "100000016",
      "name": "CARNÚN",
      "coverArt": "ar-100000016",
      "albumCount": 1
    },
    {
      "id": "100000027",
      "name": "Chi.Otic",
      "coverArt": "ar-100000027",
      "albumCount": 0
    }
  ]
}
Field Type Req. OpenS. Details
name string Yes Index name
artist Array of Artist Yes Artist list

6.23 - indexes

Artist list.
{
  "shortcut": [
    {
      "id": "11",
      "name": "Audio books"
    },
    {
      "id": "10",
      "name": "Podcasts"
    }
  ],
  "index": [
    {
      "artist": [
        {
          "id": "1",
          "name": "ABBA"
        },
        {
          "id": "2",
          "name": "Alanis Morisette"
        },
        {
          "id": "3",
          "name": "Alphaville",
          "starred": "2013-11-02T12:30:00"
        }
      ],
      "name": "A"
    },
    {
      "artist": {
        "name": "Bob Dylan",
        "id": "4"
      },
      "name": "B"
    }
  ],
  "child": [
    {
      "id": "111",
      "parent": "11",
      "title": "Dancing Queen",
      "isDir": "false",
      "album": "Arrival",
      "artist": "ABBA",
      "track": "7",
      "year": "1978",
      "genre": "Pop",
      "coverArt": "24",
      "size": "8421341",
      "contentType": "audio/mpeg",
      "suffix": "mp3",
      "duration": "146",
      "bitRate": "128",
      "path": "ABBA/Arrival/Dancing Queen.mp3"
    },
    {
      "id": "112",
      "parent": "11",
      "title": "Money, Money, Money",
      "isDir": "false",
      "album": "Arrival",
      "artist": "ABBA",
      "track": "7",
      "year": "1978",
      "genre": "Pop",
      "coverArt": "25",
      "size": "4910028",
      "contentType": "audio/flac",
      "suffix": "flac",
      "transcodedContentType": "audio/mpeg",
      "transcodedSuffix": "mp3",
      "duration": "208",
      "bitRate": "128",
      "path": "ABBA/Arrival/Money, Money, Money.mp3"
    }
  ],
  "lastModified": "237462836472342",
  "ignoredArticles": "The El La Los Las Le Les"
}
<indexes lastModified="237462836472342" ignoredArticles="The El La Los Las Le Les">
  <shortcut id="11" name="Audio books"/>
  <shortcut id="10" name="Podcasts"/>
  <index name="A">
    <artist id="1" name="ABBA"/>
    <artist id="2" name="Alanis Morisette"/>
    <artist id="3" name="Alphaville" starred="2013-11-02T12:30:00"/>
  </index>
  <index name="B">
    <artist name="Bob Dylan" id="4"/>
  </index>
  <child id="111" parent="11" title="Dancing Queen" isDir="false" album="Arrival" artist="ABBA" track="7" year="1978" genre="Pop" coverArt="24" size="8421341" contentType="audio/mpeg" suffix="mp3" duration="146" bitRate="128" path="ABBA/Arrival/Dancing Queen.mp3"/>
  <child id="112" parent="11" title="Money, Money, Money" isDir="false" album="Arrival" artist="ABBA" track="7" year="1978" genre="Pop" coverArt="25" size="4910028" contentType="audio/flac" suffix="flac" transcodedContentType="audio/mpeg" transcodedSuffix="mp3" duration="208" bitRate="128" path="ABBA/Arrival/Money, Money, Money.mp3"/>
</indexes>
{
  "shortcut": [
    {
      "id": "11",
      "name": "Audio books"
    },
    {
      "id": "10",
      "name": "Podcasts"
    }
  ],
  "index": [
    {
      "artist": [
        {
          "id": "1",
          "name": "ABBA"
        },
        {
          "id": "2",
          "name": "Alanis Morisette"
        },
        {
          "id": "3",
          "name": "Alphaville",
          "starred": "2013-11-02T12:30:00"
        }
      ],
      "name": "A"
    },
    {
      "artist": {
        "name": "Bob Dylan",
        "id": "4"
      },
      "name": "B"
    }
  ],
  "child": [
    {
      "id": "111",
      "parent": "11",
      "title": "Dancing Queen",
      "isDir": "false",
      "album": "Arrival",
      "artist": "ABBA",
      "track": "7",
      "year": "1978",
      "genre": "Pop",
      "coverArt": "24",
      "size": "8421341",
      "contentType": "audio/mpeg",
      "suffix": "mp3",
      "duration": "146",
      "bitRate": "128",
      "path": "ABBA/Arrival/Dancing Queen.mp3"
    },
    {
      "id": "112",
      "parent": "11",
      "title": "Money, Money, Money",
      "isDir": "false",
      "album": "Arrival",
      "artist": "ABBA",
      "track": "7",
      "year": "1978",
      "genre": "Pop",
      "coverArt": "25",
      "size": "4910028",
      "contentType": "audio/flac",
      "suffix": "flac",
      "transcodedContentType": "audio/mpeg",
      "transcodedSuffix": "mp3",
      "duration": "208",
      "bitRate": "128",
      "path": "ABBA/Arrival/Money, Money, Money.mp3"
    }
  ],
  "lastModified": "237462836472342",
  "ignoredArticles": "The El La Los Las Le Les"
}
<indexes lastModified="237462836472342" ignoredArticles="The El La Los Las Le Les">
  <shortcut id="11" name="Audio books"/>
  <shortcut id="10" name="Podcasts"/>
  <index name="A">
    <artist id="1" name="ABBA"/>
    <artist id="2" name="Alanis Morisette"/>
    <artist id="3" name="Alphaville" starred="2013-11-02T12:30:00"/>
  </index>
  <index name="B">
    <artist name="Bob Dylan" id="4"/>
  </index>
  <child id="111" parent="11" title="Dancing Queen" isDir="false" album="Arrival" artist="ABBA" track="7" year="1978" genre="Pop" coverArt="24" size="8421341" contentType="audio/mpeg" suffix="mp3" duration="146" bitRate="128" path="ABBA/Arrival/Dancing Queen.mp3"/>
  <child id="112" parent="11" title="Money, Money, Money" isDir="false" album="Arrival" artist="ABBA" track="7" year="1978" genre="Pop" coverArt="25" size="4910028" contentType="audio/flac" suffix="flac" transcodedContentType="audio/mpeg" transcodedSuffix="mp3" duration="208" bitRate="128" path="ABBA/Arrival/Money, Money, Money.mp3"/>
</indexes>
Field Type Req. OpenS. Details
ignoredArticles string Yes The ignored articles
lastModified long Yes Last time the index was modified in milliseconds after January 1, 1970 UTC
shortcut Array of Artist No Shortcut
child Array of Child No Array of children
index Array of Index No Indexed artists

6.24 - IndexID3

An indexed artist list by ID3 tags.
{
  "name": "C",
  "artist": [
    {
      "id": "100000016",
      "name": "CARNÚN",
      "coverArt": "ar-100000016",
      "albumCount": 1
    },
    {
      "id": "100000027",
      "name": "Chi.Otic",
      "coverArt": "ar-100000027",
      "albumCount": 0
    }
  ]
}
{
  "name": "C",
  "artist": [
    {
      "id": "100000016",
      "name": "CARNÚN",
      "coverArt": "ar-100000016",
      "albumCount": 1
    },
    {
      "id": "100000027",
      "name": "Chi.Otic",
      "coverArt": "ar-100000027",
      "albumCount": 0
    }
  ]
}
Field Type Req. OpenS. Details
name string Yes Index name
artist Array of Artist Yes Artist list

6.25 - internetRadioStation

An internetRadioStation.
{
  "id": "2",
  "name": "HBR1.com - I.D.M. Tranceponder",
  "streamUrl": "http://ubuntu.hbr1.com:19800/trance.ogg",
  "homepageUrl": "http://www.hbr1.com/"
}
{
  "id": "2",
  "name": "HBR1.com - I.D.M. Tranceponder",
  "streamUrl": "http://ubuntu.hbr1.com:19800/trance.ogg",
  "homepageUrl": "http://www.hbr1.com/"
}
Field Type Req. OpenS. Details
id string Yes The Id
name string Yes The name
streamUrl string Yes The radio url
homePageUrl string No Genre name

6.26 - internetRadioStations

internetRadioStations.
{
  "internetRadioStation": [
    {
      "id": "1",
      "name": "HBR1.com - Dream Factory",
      "streamUrl": "http://ubuntu.hbr1.com:19800/ambient.aac",
      "homepageUrl": "http://www.hbr1.com/"
    },
    {
      "id": "2",
      "name": "HBR1.com - I.D.M. Tranceponder",
      "streamUrl": "http://ubuntu.hbr1.com:19800/trance.ogg",
      "homepageUrl": "http://www.hbr1.com/"
    },
    {
      "id": "3",
      "name": "4ZZZ Community Radio",
      "streamUrl": "https://stream.4zzz.org.au:9200/4zzz",
      "homepageUrl": "https://4zzzfm.org.au"
    }
  ]
}
{
  "internetRadioStation": [
    {
      "id": "1",
      "name": "HBR1.com - Dream Factory",
      "streamUrl": "http://ubuntu.hbr1.com:19800/ambient.aac",
      "homepageUrl": "http://www.hbr1.com/"
    },
    {
      "id": "2",
      "name": "HBR1.com - I.D.M. Tranceponder",
      "streamUrl": "http://ubuntu.hbr1.com:19800/trance.ogg",
      "homepageUrl": "http://www.hbr1.com/"
    },
    {
      "id": "3",
      "name": "4ZZZ Community Radio",
      "streamUrl": "https://stream.4zzz.org.au:9200/4zzz",
      "homepageUrl": "https://4zzzfm.org.au"
    }
  ]
}
Field Type Req. OpenS. Details
internetRadioStation Array of internetRadioStation Yes A list of internetRadioStation

6.27 - ItemDate

A date for a media item that may be just a year, or year-month, or full date.
{
  "year": 2020,
  "month": 1,
  "day": 1
}
  <!-- XML name is the name of the property on the parent object-->
  <originalReleaseDate year="2020" month="1" day="1"/>
Does not exist.
Field Type Req. OpenS. Details
year integer No Yes The year
month integer No Yes The month (1-12)
day integer No Yes The day (1-31)

6.28 - ItemGenre

A genre returned in list of genres for an item.
{
  "name": "Noise"
}
Does not exist.
Field Type Req. OpenS. Details
name string Yes Yes Genre name

6.29 - jukeboxPlaylist

jukeboxPlaylist.
// TODO
// TODO
Field Type Req. OpenS. Details

6.30 - jukeboxStatus

jukeboxStatus.
// TODO
// TODO
Field Type Req. OpenS. Details

6.31 - license

getLicense result.
{
  "valid": true,
  "email": "demo@demo.org",
  "licenseExpires": "2017-04-11T10:42:50.842Z",
  "trialExpires": "2017-04-11T10:42:50.842Z"
}
{
  "valid": true,
  "email": "demo@demo.org",
  "licenseExpires": "2017-04-11T10:42:50.842Z",
  "trialExpires": "2017-04-11T10:42:50.842Z"
}
Field Type Req. OpenS. Details
valid boolean Yes The status of the license
email string No User email
licenseExpires string No End of license date. [ISO 8601]
trialExpires string No End of trial date. [ISO 8601]

6.32 - line

One line of a song lyric
{
  "start": 0,
  "value": "It's bugging me"
}
<line start="0">It's bugging me</line>
Does not exist.
Field Type Req. OpenS. Details
value string Yes Yes The actual text of this line
start number No Yes The start time of the lyrics, relative to the start time of the track, in milliseconds. If this is not part of synced lyrics, start must be omitted

6.33 - lyrics

Lyrics.
{
  "artist": "Metallica",
  "title": "Blitzkrieg",
  "value": "Let us have peace, let us have life\n\nLet us escape the cruel night\n\nLet us have time, let the sun shine\n\nLet us beware the deadly sign\n\n\n\nThe day is coming\n\nArmageddon's near\n\nInferno's coming\n\nCan we survive the blitzkrieg?\n\nThe blitzkrieg\n\nThe blitzkrieg\n\n\n\nSave us from fate, save us from hate\n\nSave ourselves before it's too late\n\nCome to our need, hear our plea\n\nSave ourselves before the earth bleeds\n\n\n\nThe day is dawning\n\nThe time is near\n\nAliens calling\n\nCan we survive the blitzkrieg?"
}
{
  "artist": "Metallica",
  "title": "Blitzkrieg",
  "value": "Let us have peace, let us have life\n\nLet us escape the cruel night\n\nLet us have time, let the sun shine\n\nLet us beware the deadly sign\n\n\n\nThe day is coming\n\nArmageddon's near\n\nInferno's coming\n\nCan we survive the blitzkrieg?\n\nThe blitzkrieg\n\nThe blitzkrieg\n\n\n\nSave us from fate, save us from hate\n\nSave ourselves before it's too late\n\nCome to our need, hear our plea\n\nSave ourselves before the earth bleeds\n\n\n\nThe day is dawning\n\nThe time is near\n\nAliens calling\n\nCan we survive the blitzkrieg?"
}
Field Type Req. OpenS. Details
value string Yes The lyrics
artist string No The artist name
title string No The song title

6.34 - lyricsList

List of structured lyrics
{
  "structuredLyrics": [
    {
      "displayArtist": "Muse",
      "displayTitle": "Hysteria",
      "lang": "eng",
      "offset": -100,
      "synced": true,
      "line": [
        {
          "start": 0,
          "value": "It's bugging me"
        },
        {
          "start": 2000,
          "value": "Grating me"
        },
        {
          "start": 3001,
          "value": "And twisting me around..."
        }
      ]
    },
    {
      "displayArtist": "Muse",
      "displayTitle": "Hysteria",
      "lang": "xxx",
      "offset": 100,
      "synced": false,
      "line": [
        {
          "value": "It's bugging me"
        },
        {
          "value": "Grating me"
        },
        {
          "value": "And twisting me around..."
        }
      ]
    }
  ]
}
<lyricsList>
  <structuredLyrics displayArtist="Muse" displayTitle="Hysteria" lang="eng" offset="-100" synced="true">
    <line start="0">It's bugging me</line>
    <line start="2000">Grating me</line>
    <line start="3001">And twisting me around...</line>
  </structuredLyrics>
  <structuredLyrics displayArtist="Muse" displayTitle="Hysteria" lang="xxx" offset="100" synced="false">
    <line>It's bugging me</line>
    <line>Grating me</line>
    <line>And twisting me around...</line>
  </structuredLyrics>
</lyricsList>
Does not exist.
Field Type Req. OpenS. Details
structuredLyrics Array of structuredLyrics No Yes Structured lyrics. There can be multiple lyrics of the same type with the same language

6.35 - musicFolder

MusicFolder.
{
  "id": "4",
  "name": "upload"
}
{
  "id": "4",
  "name": "upload"
}
Field Type Req. OpenS. Details
id string Yes The id
name string No The folder name

6.36 - musicFolders

MusicFolders.
{
  "musicFolder": [
    {
      "id": "1",
      "name": "music"
    },
    {
      "id": "4",
      "name": "upload"
    }
  ]
}
{
  "musicFolder": [
    {
      "id": "1",
      "name": "music"
    },
    {
      "id": "4",
      "name": "upload"
    }
  ]
}
Field Type Req. OpenS. Details
musicFolder Array of musicFolder Yes The folders

6.37 - newestPodcasts

NewestPodcasts.
// TODO
// TODO
Field Type Req. OpenS. Details

6.38 - nowPlaying

nowPlaying.
{
  "entry": [
    {
      "id": "300115266",
      "parent": "200147046",
      "title": "Take the Home",
      "isDir": false,
      "isVideo": false,
      "type": "music",
      "albumId": "200147046",
      "album": "How I Learned to Love Our Robot Overlords",
      "artistId": "100002619",
      "artist": "Raggedy Angry",
      "coverArt": "300115266",
      "duration": 227,
      "bitRate": 222,
      "bitDepth": 16,
      "samplingRate": 44100,
      "channelCount": 2,
      "userRating": 3,
      "track": 7,
      "year": 2010,
      "genre": "Industrial",
      "size": 6341039,
      "discNumber": 1,
      "suffix": "mp3",
      "contentType": "audio/mpeg",
      "path": "Raggedy Angry/(2010) How I Learned to Love Our Robot Overlords/1-07 - Take the Home.mp3",
      "username": "user",
      "minutesAgo": 0,
      "playerId": 0
    }
  ]
}
{
  "entry": [
    {
      "id": "300115266",
      "parent": "200147046",
      "title": "Take the Home",
      "isDir": false,
      "isVideo": false,
      "type": "music",
      "albumId": "200147046",
      "album": "How I Learned to Love Our Robot Overlords",
      "artistId": "100002619",
      "artist": "Raggedy Angry",
      "coverArt": "300115266",
      "duration": 227,
      "bitRate": 222,
      "bitDepth": 16,
      "samplingRate": 44100,
      "channelCount": 2,
      "userRating": 3,
      "track": 7,
      "year": 2010,
      "genre": "Industrial",
      "size": 6341039,
      "discNumber": 1,
      "suffix": "mp3",
      "contentType": "audio/mpeg",
      "path": "Raggedy Angry/(2010) How I Learned to Love Our Robot Overlords/1-07 - Take the Home.mp3",
      "username": "user",
      "minutesAgo": 0,
      "playerId": 0
    }
  ]
}
Field Type Req. OpenS. Details
entry Array of NowPlayingEntry Yes A list of NowPlayingEntry

6.39 - NowPlayingEntry

NowPlayingEntry.
{
  "id": "300115266",
  "parent": "200147046",
  "title": "Take the Home",
  "isDir": false,
  "isVideo": false,
  "type": "music",
  "albumId": "200147046",
  "album": "How I Learned to Love Our Robot Overlords",
  "artistId": "100002619",
  "artist": "Raggedy Angry",
  "coverArt": "300115266",
  "duration": 227,
  "bitRate": 222,
  "bitDepth": 16,
  "samplingRate": 44100,
  "channelCount": 2,
  "userRating": 3,
  "track": 7,
  "year": 2010,
  "genre": "Industrial",
  "size": 6341039,
  "discNumber": 1,
  "suffix": "mp3",
  "contentType": "audio/mpeg",
  "path": "Raggedy Angry/(2010) How I Learned to Love Our Robot Overlords/1-07 - Take the Home.mp3",
  "username": "user",
  "minutesAgo": 0,
  "playerId": 0
}
{
  "id": "300115266",
  "parent": "200147046",
  "title": "Take the Home",
  "isDir": false,
  "isVideo": false,
  "type": "music",
  "albumId": "200147046",
  "album": "How I Learned to Love Our Robot Overlords",
  "artistId": "100002619",
  "artist": "Raggedy Angry",
  "coverArt": "300115266",
  "duration": 227,
  "bitRate": 222,
  "bitDepth": 16,
  "samplingRate": 44100,
  "channelCount": 2,
  "userRating": 3,
  "track": 7,
  "year": 2010,
  "genre": "Industrial",
  "size": 6341039,
  "discNumber": 1,
  "suffix": "mp3",
  "contentType": "audio/mpeg",
  "path": "Raggedy Angry/(2010) How I Learned to Love Our Robot Overlords/1-07 - Take the Home.mp3",
  "username": "user",
  "minutesAgo": 0,
  "playerId": 0
}
Field Type Req. OpenS. Details
username string Yes The username
minutesAgo string Int Last update
playerId boolean Int Player Id
playerName string No Player name

6.40 - OpenSubsonicExtension

A supported OpenSubsonic API extension.
{
    "name": "template",
    "versions": [
        1,
        2
    ]
}
Does not exist.
Field Type Req. OpenS. Details
name String Yes Yes The name of the extension.
versions Array of int Yes Yes The list of supported versions of the this extension.

6.41 - playlist

Playlist.
{
  "id": "800000075",
  "name": "testcreate",
  "owner": "user",
  "public": true,
  "created": "2023-03-16T03:18:41+00:00",
  "changed": "2023-03-16T03:18:41+00:00",
  "songCount": 1,
  "duration": 304
}
{
  "id": "800000075",
  "name": "testcreate",
  "owner": "user",
  "public": true,
  "created": "2023-03-16T03:18:41+00:00",
  "changed": "2023-03-16T03:18:41+00:00",
  "songCount": 1,
  "duration": 304
}
Field Type Req. OpenS. Details
id string Yes Id of the playlist
name string Yes Name of the playlist
comment string No A commnet
owner string No Owner of the playlist
public boolean No Is the playlist public
songCount int Yes number of songs
duration int Yes Playlist duration in seconds
created string Yes Creation date [ISO 8601]
changed string Yes Last changed date [ISO 8601]
coverArt string No A cover Art Id
allowedUser Array of string No A list of allowed usernames

6.42 - playlists

Playlists.
{
  "playlist": [
    {
      "id": "800000003",
      "name": "random - admin - private (admin)",
      "owner": "admin",
      "public": false,
      "created": "2021-02-23T04:35:38+00:00",
      "changed": "2021-02-23T04:35:38+00:00",
      "songCount": 43,
      "duration": 17875
    },
    {
      "id": "800000002",
      "name": "random - admin - public (admin)",
      "owner": "admin",
      "public": true,
      "created": "2021-02-23T04:34:56+00:00",
      "changed": "2021-02-23T04:34:56+00:00",
      "songCount": 43,
      "duration": 17786
    }
  ]
}
{
  "playlist": [
    {
      "id": "800000003",
      "name": "random - admin - private (admin)",
      "owner": "admin",
      "public": false,
      "created": "2021-02-23T04:35:38+00:00",
      "changed": "2021-02-23T04:35:38+00:00",
      "songCount": 43,
      "duration": 17875
    },
    {
      "id": "800000002",
      "name": "random - admin - public (admin)",
      "owner": "admin",
      "public": true,
      "created": "2021-02-23T04:34:56+00:00",
      "changed": "2021-02-23T04:34:56+00:00",
      "songCount": 43,
      "duration": 17786
    }
  ]
}
Field Type Req. OpenS. Details
playlist Array of playlist Yes A list of playlist

6.43 - playlistWithSongs

Playlist with songs.
{
  "id": "800000075",
  "name": "testcreate",
  "owner": "user",
  "public": true,
  "created": "2023-03-16T03:18:41+00:00",
  "changed": "2023-03-16T03:18:41+00:00",
  "songCount": 1,
  "duration": 304,
  "entry": [
    {
      "id": "300000060",
      "parent": "200000002",
      "title": "BrownSmoke",
      "isDir": false,
      "isVideo": false,
      "type": "music",
      "albumId": "200000002",
      "album": "Colorsmoke EP",
      "artistId": "100000002",
      "artist": "Synthetic",
      "coverArt": "300000060",
      "duration": 304,
      "bitRate": 20,
      "bitDepth": 16,
      "samplingRate": 44100,
      "channelCount": 2,
      "userRating": 5,
      "averageRating": 5,
      "track": 4,
      "year": 2007,
      "genre": "Electronic",
      "size": 792375,
      "discNumber": 1,
      "suffix": "wma",
      "contentType": "audio/x-ms-wma",
      "path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007/04-Synthetic_-_BrownSmokeYSBM20k22khS.wma"
    }
  ]
}
{
  "id": "800000075",
  "name": "testcreate",
  "owner": "user",
  "public": true,
  "created": "2023-03-16T03:18:41+00:00",
  "changed": "2023-03-16T03:18:41+00:00",
  "songCount": 1,
  "duration": 304,
  "entry": [
    {
      "id": "300000060",
      "parent": "200000002",
      "title": "BrownSmoke",
      "isDir": false,
      "isVideo": false,
      "type": "music",
      "albumId": "200000002",
      "album": "Colorsmoke EP",
      "artistId": "100000002",
      "artist": "Synthetic",
      "coverArt": "300000060",
      "duration": 304,
      "bitRate": 20,
      "bitDepth": 16,
      "samplingRate": 44100,
      "channelCount": 2,
      "userRating": 5,
      "averageRating": 5,
      "track": 4,
      "year": 2007,
      "genre": "Electronic",
      "size": 792375,
      "discNumber": 1,
      "suffix": "wma",
      "contentType": "audio/x-ms-wma",
      "path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007/04-Synthetic_-_BrownSmokeYSBM20k22khS.wma"
    }
  ]
}
Field Type Req. OpenS. Details
id string Yes Id of the playlist
name string Yes Name of the playlist
comment string No A commnet
owner string No Owner of the playlist
public boolean No Is the playlist public
songCount int Yes number of songs
duration int Yes Playlist duration in seconds
created string Yes Creation date [ISO 8601]
changed string Yes Last changed date [ISO 8601]
coverArt string No A cover Art Id
allowedUser Array of string No A list of allowed usernames
entry Array of Child No The list of songs

6.44 - PlayQueue

NowPlayingEntry.
// TODO
// TODO
Field Type Req. OpenS. Details

6.45 - podcasts

Podcasts.
// TODO
// TODO
Field Type Req. OpenS. Details

6.46 - randomSongs

RandomSongs list.
{
  "song": [
    {
      "id": "300000060",
      "parent": "200000002",
      "title": "BrownSmoke",
      "isDir": false,
      "isVideo": false,
      "type": "music",
      "albumId": "200000002",
      "album": "Colorsmoke EP",
      "artistId": "100000002",
      "artist": "Synthetic",
      "coverArt": "300000060",
      "duration": 304,
      "bitRate": 20,
      "bitDepth": 16,
      "samplingRate": 44100,
      "channelCount": 2,
      "userRating": 5,
      "averageRating": 5,
      "track": 4,
      "year": 2007,
      "genre": "Electronic",
      "size": 792375,
      "discNumber": 1,
      "suffix": "wma",
      "contentType": "audio/x-ms-wma",
      "path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007/04-Synthetic_-_BrownSmokeYSBM20k22khS.wma"
    },
    {
      "id": "300000055",
      "parent": "200000002",
      "title": "Red&GreenSmoke",
      "isDir": false,
      "isVideo": false,
      "type": "music",
      "albumId": "200000002",
      "album": "Colorsmoke EP",
      "artistId": "100000002",
      "artist": "Synthetic",
      "coverArt": "300000055",
      "duration": 400,
      "bitRate": 64,
      "bitDepth": 16,
      "samplingRate": 44100,
      "channelCount": 2,
      "track": 5,
      "year": 2007,
      "genre": "Electronic",
      "size": 3209886,
      "discNumber": 1,
      "suffix": "mp3",
      "contentType": "audio/mpeg",
      "path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007(1)/05-Synthetic_-_RedGreenSmokePM20k22khS_64kb.mp3"
    }
  ]
}
{
  "song": [
    {
      "id": "300000060",
      "parent": "200000002",
      "title": "BrownSmoke",
      "isDir": false,
      "isVideo": false,
      "type": "music",
      "albumId": "200000002",
      "album": "Colorsmoke EP",
      "artistId": "100000002",
      "artist": "Synthetic",
      "coverArt": "300000060",
      "duration": 304,
      "bitRate": 20,
      "bitDepth": 16,
      "samplingRate": 44100,
      "channelCount": 2,
      "userRating": 5,
      "averageRating": 5,
      "track": 4,
      "year": 2007,
      "genre": "Electronic",
      "size": 792375,
      "discNumber": 1,
      "suffix": "wma",
      "contentType": "audio/x-ms-wma",
      "path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007/04-Synthetic_-_BrownSmokeYSBM20k22khS.wma"
    },
    {
      "id": "300000055",
      "parent": "200000002",
      "title": "Red&GreenSmoke",
      "isDir": false,
      "isVideo": false,
      "type": "music",
      "albumId": "200000002",
      "album": "Colorsmoke EP",
      "artistId": "100000002",
      "artist": "Synthetic",
      "coverArt": "300000055",
      "duration": 400,
      "bitRate": 64,
      "bitDepth": 16,
      "samplingRate": 44100,
      "channelCount": 2,
      "track": 5,
      "year": 2007,
      "genre": "Electronic",
      "size": 3209886,
      "discNumber": 1,
      "suffix": "mp3",
      "contentType": "audio/mpeg",
      "path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007(1)/05-Synthetic_-_RedGreenSmokePM20k22khS_64kb.mp3"
    }
  ]
}
Field Type Req. OpenS. Details
song Array of Child No List of songs

6.47 - RecordLabel

A record label for an album.
{
  "name": "Sony"
}
Does not exist.
Field Type Req. OpenS. Details
name string Yes Yes The record label name.

6.48 - ReplayGain

The replay gain data of a song.
{
    "trackGain": 0.1,
    "albumGain": 1.1,
    "trackPeak": 9.2,
    "albumPeak": 0,
    "baseGain": 0,
    "fallbackGain": -8.1
}
Does not exist.
Field Type Req. OpenS. Details
trackGain number No Yes The track replay gain value. (In Db)
albumGain number No Yes The album replay gain value. (In Db)
trackPeak number No Yes The track peak value. (Must be positive)
albumPeak number No Yes The album peak value. (Must be positive)
baseGain number No Yes The base gain value. (In Db) (Ogg Opus Output Gain for example)
fallbackGain number No Yes An optional fallback gain that clients should apply when the corresponding gain value is missing. (Can be computed from the tracks or exposed as an user setting.)

Note: If the data is not present the field must be ommited in the answer. (But the replayGain field on Child must always be present)

6.49 - scanStatus

Scan status information.
{
  "scanning": false,
  "count": 0
}
{
  "scanning": false,
  "count": 0
}
Field Type Req. OpenS. Details
scanning boolean Yes The status of the scan
count int No Scanned item count

6.50 - searchResult

searchResult.
// TODO
// TODO
Field Type Req. OpenS. Details

6.51 - searchResult2

searchResult2.
// TODO
// TODO
Field Type Req. OpenS. Details

6.52 - searchResult3

search3 result.
{
  "artist": [
    {
      "id": "37ec820ca7193e17040c98f7da7c4b51",
      "name": "2 Mello",
      "coverArt": "ar-37ec820ca7193e17040c98f7da7c4b51_0",
      "albumCount": 1,
      "userRating": 5,
      "artistImageUrl": "https://demo.org/image.jpg"
    }
  ],
  "album": [
    {
      "id": "ad0f112b6dcf83de5e9cae85d07f0d35",
      "name": "8-bit lagerfeuer",
      "artist": "pornophonique",
      "year": 2007,
      "coverArt": "al-ad0f112b6dcf83de5e9cae85d07f0d35_640a93a8",
      "starred": "2023-03-22T01:51:06Z",
      "duration": 1954,
      "playCount": 97,
      "played": "2023-03-28T00:45:13Z",
      "created": "2023-03-10T02:19:35.784818075Z",
      "artistId": "91c3901ac465b9efc439e4be4270c2b6",
      "userRating": 4,
      "songCount": 8,
    }
  ],
  "song": [
    {
      "id": "082f435a363c32c57d5edb6a678a28d4",
      "parent": "e8a0685e3f3ec6f251649af2b58b8617",
      "isDir": false,
      "title": "\"polar expedition\"",
      "album": "Live at The Casbah - 2005-04-29",
      "artist": "The New Deal",
      "track": 4,
      "year": 2005,
      "coverArt": "mf-082f435a363c32c57d5edb6a678a28d4_6410b3ce",
      "size": 19866778,
      "contentType": "audio/flac",
      "suffix": "flac",
      "starred": "2023-03-27T09:45:27Z",
      "duration": 178,
      "bitRate": 880,
      "bitDepth": 16,
      "samplingRate": 44100,
      "channelCount": 2,
      "path": "The New Deal/Live at The Casbah - 2005-04-29/04 - \"polar expedition\".flac",
      "playCount": 8,
      "played": "2023-03-26T22:27:46Z",
      "discNumber": 1,
      "created": "2023-03-14T17:51:22.112827504Z",
      "albumId": "e8a0685e3f3ec6f251649af2b58b8617",
      "artistId": "97e0398acf63f9fb930d7d4ce209a52b",
      "type": "music",
      "isVideo": false
    }
  ]
}
{
  "artist": [
    {
      "id": "37ec820ca7193e17040c98f7da7c4b51",
      "name": "2 Mello",
      "coverArt": "ar-37ec820ca7193e17040c98f7da7c4b51_0",
      "albumCount": 1,
      "userRating": 5,
      "artistImageUrl": "https://demo.org/image.jpg"
    }
  ],
  "album": [
    {
      "id": "ad0f112b6dcf83de5e9cae85d07f0d35",
      "name": "8-bit lagerfeuer",
      "artist": "pornophonique",
      "year": 2007,
      "coverArt": "al-ad0f112b6dcf83de5e9cae85d07f0d35_640a93a8",
      "starred": "2023-03-22T01:51:06Z",
      "duration": 1954,
      "playCount": 97,
      "created": "2023-03-10T02:19:35.784818075Z",
      "artistId": "91c3901ac465b9efc439e4be4270c2b6",
      "songCount": 8,
    }
  ],
  "song": [
    {
      "id": "082f435a363c32c57d5edb6a678a28d4",
      "parent": "e8a0685e3f3ec6f251649af2b58b8617",
      "isDir": false,
      "title": "\"polar expedition\"",
      "album": "Live at The Casbah - 2005-04-29",
      "artist": "The New Deal",
      "track": 4,
      "year": 2005,
      "coverArt": "mf-082f435a363c32c57d5edb6a678a28d4_6410b3ce",
      "size": 19866778,
      "contentType": "audio/flac",
      "suffix": "flac",
      "starred": "2023-03-27T09:45:27Z",
      "duration": 178,
      "bitRate": 880,
      "bitDepth": 16,
      "samplingRate": 44100,
      "channelCount": 2,
      "path": "The New Deal/Live at The Casbah - 2005-04-29/04 - \"polar expedition\".flac",
      "playCount": 8,
      "played": "2023-03-26T22:27:46Z",
      "discNumber": 1,
      "created": "2023-03-14T17:51:22.112827504Z",
      "albumId": "e8a0685e3f3ec6f251649af2b58b8617",
      "artistId": "97e0398acf63f9fb930d7d4ce209a52b",
      "type": "music",
      "isVideo": false
    }
  ]
}
Field Type Req. OpenS. Details
artist Array of ArtistID3 No Matching artists
album Array of AlbumID3 No Matching albums
song Array of Child No Matching songs

6.53 - share

Share.
{
  "id": "12",
  "url": "http://localhost:8989/share.php?id=12&secret=fXlKyEv3",
  "description": "Forget and Remember (Comfort Fit)",
  "username": "user",
  "created": "2023-03-16T04:13:09+00:00",
  "visitCount": 0,
  "entry": [
    {
      "id": "300000116",
      "parent": "200000021",
      "title": "Can I Help U?",
      "isDir": false,
      "isVideo": false,
      "type": "music",
      "albumId": "200000021",
      "album": "Forget and Remember",
      "artistId": "100000036",
      "artist": "Comfort Fit",
      "coverArt": "300000116",
      "duration": 103,
      "bitRate": 216,
      "bitDepth": 16,
      "samplingRate": 44100,
      "channelCount": 2,
      "track": 1,
      "year": 2005,
      "genre": "Hip-Hop",
      "size": 2811819,
      "discNumber": 1,
      "suffix": "mp3",
      "contentType": "audio/mpeg",
      "path": "user/Comfort Fit/Forget And Remember/1 - Can I Help U?.mp3"
    },
    {
      "id": "300000121",
      "parent": "200000021",
      "title": "Planetary Picknick",
      "isDir": false,
      "isVideo": false,
      "type": "music",
      "albumId": "200000021",
      "album": "Forget and Remember",
      "artistId": "100000036",
      "artist": "Comfort Fit",
      "coverArt": "300000121",
      "duration": 358,
      "bitRate": 238,
      "bitDepth": 16,
      "samplingRate": 44100,
      "channelCount": 2,
      "track": 2,
      "year": 2005,
      "genre": "Hip-Hop",
      "size": 10715592,
      "discNumber": 1,
      "suffix": "mp3",
      "contentType": "audio/mpeg",
      "path": "user/Comfort Fit/Forget And Remember/2 - Planetary Picknick.mp3"
    }
  ]
}
{
  "id": "12",
  "url": "http://localhost:8989/share.php?id=12&secret=fXlKyEv3",
  "description": "Forget and Remember (Comfort Fit)",
  "username": "user",
  "created": "2023-03-16T04:13:09+00:00",
  "visitCount": 0,
  "entry": [
    {
      "id": "300000116",
      "parent": "200000021",
      "title": "Can I Help U?",
      "isDir": false,
      "isVideo": false,
      "type": "music",
      "albumId": "200000021",
      "album": "Forget and Remember",
      "artistId": "100000036",
      "artist": "Comfort Fit",
      "coverArt": "300000116",
      "duration": 103,
      "bitRate": 216,
      "bitDepth": 16,
      "samplingRate": 44100,
      "channelCount": 2,
      "track": 1,
      "year": 2005,
      "genre": "Hip-Hop",
      "size": 2811819,
      "discNumber": 1,
      "suffix": "mp3",
      "contentType": "audio/mpeg",
      "path": "user/Comfort Fit/Forget And Remember/1 - Can I Help U?.mp3"
    },
    {
      "id": "300000121",
      "parent": "200000021",
      "title": "Planetary Picknick",
      "isDir": false,
      "isVideo": false,
      "type": "music",
      "albumId": "200000021",
      "album": "Forget and Remember",
      "artistId": "100000036",
      "artist": "Comfort Fit",
      "coverArt": "300000121",
      "duration": 358,
      "bitRate": 238,
      "bitDepth": 16,
      "samplingRate": 44100,
      "channelCount": 2,
      "track": 2,
      "year": 2005,
      "genre": "Hip-Hop",
      "size": 10715592,
      "discNumber": 1,
      "suffix": "mp3",
      "contentType": "audio/mpeg",
      "path": "user/Comfort Fit/Forget And Remember/2 - Planetary Picknick.mp3"
    }
  ]
}
Field Type Req. OpenS. Details
id string Yes The share Id
url string Yes The share url
description string No A description
username string Yes The username
created string Yes Creation date [ISO 8601]
expires string No Share expiration [ISO 8601]
lastVisited string No Last visit [ISO 8601]
visitCount int Yes Visit count
entry Array of Child Yes A list of share

6.54 - shares

Shares.
{
  "share": [
    {
      "id": "12",
      "url": "http://localhost:8989/share.php?id=12&secret=fXlKyEv3",
      "description": "Forget and Remember (Comfort Fit)",
      "username": "user",
      "created": "2023-03-16T04:13:09+00:00",
      "visitCount": 0,
      "entry": [
        {
          "id": "300000116",
          "parent": "200000021",
          "title": "Can I Help U?",
          "isDir": false,
          "isVideo": false,
          "type": "music",
          "albumId": "200000021",
          "album": "Forget and Remember",
          "artistId": "100000036",
          "artist": "Comfort Fit",
          "coverArt": "300000116",
          "duration": 103,
          "bitRate": 216,
          "bitDepth": 16,
          "samplingRate": 44100,
          "channelCount": 2,
          "track": 1,
          "year": 2005,
          "genre": "Hip-Hop",
          "size": 2811819,
          "discNumber": 1,
          "suffix": "mp3",
          "contentType": "audio/mpeg",
          "path": "user/Comfort Fit/Forget And Remember/1 - Can I Help U?.mp3"
        },
        {
          "id": "300000121",
          "parent": "200000021",
          "title": "Planetary Picknick",
          "isDir": false,
          "isVideo": false,
          "type": "music",
          "albumId": "200000021",
          "album": "Forget and Remember",
          "artistId": "100000036",
          "artist": "Comfort Fit",
          "coverArt": "300000121",
          "duration": 358,
          "bitRate": 238,
          "bitDepth": 16,
          "samplingRate": 44100,
          "channelCount": 2,
          "track": 2,
          "year": 2005,
          "genre": "Hip-Hop",
          "size": 10715592,
          "discNumber": 1,
          "suffix": "mp3",
          "contentType": "audio/mpeg",
          "path": "user/Comfort Fit/Forget And Remember/2 - Planetary Picknick.mp3"
        }
      ]
    }
  ]
}
{
  "share": [
    {
      "id": "12",
      "url": "http://localhost:8989/share.php?id=12&secret=fXlKyEv3",
      "description": "Forget and Remember (Comfort Fit)",
      "username": "user",
      "created": "2023-03-16T04:13:09+00:00",
      "visitCount": 0,
      "entry": [
        {
          "id": "300000116",
          "parent": "200000021",
          "title": "Can I Help U?",
          "isDir": false,
          "isVideo": false,
          "type": "music",
          "albumId": "200000021",
          "album": "Forget and Remember",
          "artistId": "100000036",
          "artist": "Comfort Fit",
          "coverArt": "300000116",
          "duration": 103,
          "bitRate": 216,
          "bitDepth": 16,
          "samplingRate": 44100,
          "channelCount": 2,
          "track": 1,
          "year": 2005,
          "genre": "Hip-Hop",
          "size": 2811819,
          "discNumber": 1,
          "suffix": "mp3",
          "contentType": "audio/mpeg",
          "path": "user/Comfort Fit/Forget And Remember/1 - Can I Help U?.mp3"
        },
        {
          "id": "300000121",
          "parent": "200000021",
          "title": "Planetary Picknick",
          "isDir": false,
          "isVideo": false,
          "type": "music",
          "albumId": "200000021",
          "album": "Forget and Remember",
          "artistId": "100000036",
          "artist": "Comfort Fit",
          "coverArt": "300000121",
          "duration": 358,
          "bitRate": 238,
          "bitDepth": 16,
          "samplingRate": 44100,
          "channelCount": 2,
          "track": 2,
          "year": 2005,
          "genre": "Hip-Hop",
          "size": 10715592,
          "discNumber": 1,
          "suffix": "mp3",
          "contentType": "audio/mpeg",
          "path": "user/Comfort Fit/Forget And Remember/2 - Planetary Picknick.mp3"
        }
      ]
    }
  ]
}
Field Type Req. OpenS. Details
share Array of share Yes A list of share

6.55 - similarSongs

SimilarSongs list.
{
  "song": [
    {
      "id": "300000060",
      "parent": "200000002",
      "title": "BrownSmoke",
      "isDir": false,
      "isVideo": false,
      "type": "music",
      "albumId": "200000002",
      "album": "Colorsmoke EP",
      "artistId": "100000002",
      "artist": "Synthetic",
      "coverArt": "300000060",
      "duration": 304,
      "bitRate": 20,
      "bitDepth": 16,
      "samplingRate": 44100,
      "channelCount": 2,
      "userRating": 5,
      "averageRating": 5,
      "track": 4,
      "year": 2007,
      "genre": "Electronic",
      "size": 792375,
      "discNumber": 1,
      "suffix": "wma",
      "contentType": "audio/x-ms-wma",
      "path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007/04-Synthetic_-_BrownSmokeYSBM20k22khS.wma"
    },
    {
      "id": "300000055",
      "parent": "200000002",
      "title": "Red&GreenSmoke",
      "isDir": false,
      "isVideo": false,
      "type": "music",
      "albumId": "200000002",
      "album": "Colorsmoke EP",
      "artistId": "100000002",
      "artist": "Synthetic",
      "coverArt": "300000055",
      "duration": 400,
      "bitRate": 64,
      "bitDepth": 16,
      "samplingRate": 44100,
      "channelCount": 2,
      "track": 5,
      "year": 2007,
      "genre": "Electronic",
      "size": 3209886,
      "discNumber": 1,
      "suffix": "mp3",
      "contentType": "audio/mpeg",
      "path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007(1)/05-Synthetic_-_RedGreenSmokePM20k22khS_64kb.mp3"
    }
  ]
}
{
  "song": [
    {
      "id": "300000060",
      "parent": "200000002",
      "title": "BrownSmoke",
      "isDir": false,
      "isVideo": false,
      "type": "music",
      "albumId": "200000002",
      "album": "Colorsmoke EP",
      "artistId": "100000002",
      "artist": "Synthetic",
      "coverArt": "300000060",
      "duration": 304,
      "bitRate": 20,
      "bitDepth": 16,
      "samplingRate": 44100,
      "channelCount": 2,
      "userRating": 5,
      "averageRating": 5,
      "track": 4,
      "year": 2007,
      "genre": "Electronic",
      "size": 792375,
      "discNumber": 1,
      "suffix": "wma",
      "contentType": "audio/x-ms-wma",
      "path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007/04-Synthetic_-_BrownSmokeYSBM20k22khS.wma"
    },
    {
      "id": "300000055",
      "parent": "200000002",
      "title": "Red&GreenSmoke",
      "isDir": false,
      "isVideo": false,
      "type": "music",
      "albumId": "200000002",
      "album": "Colorsmoke EP",
      "artistId": "100000002",
      "artist": "Synthetic",
      "coverArt": "300000055",
      "duration": 400,
      "bitRate": 64,
      "bitDepth": 16,
      "samplingRate": 44100,
      "channelCount": 2,
      "track": 5,
      "year": 2007,
      "genre": "Electronic",
      "size": 3209886,
      "discNumber": 1,
      "suffix": "mp3",
      "contentType": "audio/mpeg",
      "path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007(1)/05-Synthetic_-_RedGreenSmokePM20k22khS_64kb.mp3"
    }
  ]
}
Field Type Req. OpenS. Details
song Array of Child No List of songs

6.56 - similarSongs2

SimilarSongs2 list.
{
  "song": [
    {
      "id": "300000060",
      "parent": "200000002",
      "title": "BrownSmoke",
      "isDir": false,
      "isVideo": false,
      "type": "music",
      "albumId": "200000002",
      "album": "Colorsmoke EP",
      "artistId": "100000002",
      "artist": "Synthetic",
      "coverArt": "300000060",
      "duration": 304,
      "bitRate": 20,
      "bitDepth": 16,
      "samplingRate": 44100,
      "channelCount": 2,
      "userRating": 5,
      "averageRating": 5,
      "track": 4,
      "year": 2007,
      "genre": "Electronic",
      "size": 792375,
      "discNumber": 1,
      "suffix": "wma",
      "contentType": "audio/x-ms-wma",
      "path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007/04-Synthetic_-_BrownSmokeYSBM20k22khS.wma"
    },
    {
      "id": "300000055",
      "parent": "200000002",
      "title": "Red&GreenSmoke",
      "isDir": false,
      "isVideo": false,
      "type": "music",
      "albumId": "200000002",
      "album": "Colorsmoke EP",
      "artistId": "100000002",
      "artist": "Synthetic",
      "coverArt": "300000055",
      "duration": 400,
      "bitRate": 64,
      "bitDepth": 16,
      "samplingRate": 44100,
      "channelCount": 2,
      "track": 5,
      "year": 2007,
      "genre": "Electronic",
      "size": 3209886,
      "discNumber": 1,
      "suffix": "mp3",
      "contentType": "audio/mpeg",
      "path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007(1)/05-Synthetic_-_RedGreenSmokePM20k22khS_64kb.mp3"
    }
  ]
}
{
  "song": [
    {
      "id": "300000060",
      "parent": "200000002",
      "title": "BrownSmoke",
      "isDir": false,
      "isVideo": false,
      "type": "music",
      "albumId": "200000002",
      "album": "Colorsmoke EP",
      "artistId": "100000002",
      "artist": "Synthetic",
      "coverArt": "300000060",
      "duration": 304,
      "bitRate": 20,
      "bitDepth": 16,
      "samplingRate": 44100,
      "channelCount": 2,
      "userRating": 5,
      "averageRating": 5,
      "track": 4,
      "year": 2007,
      "genre": "Electronic",
      "size": 792375,
      "discNumber": 1,
      "suffix": "wma",
      "contentType": "audio/x-ms-wma",
      "path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007/04-Synthetic_-_BrownSmokeYSBM20k22khS.wma"
    },
    {
      "id": "300000055",
      "parent": "200000002",
      "title": "Red&GreenSmoke",
      "isDir": false,
      "isVideo": false,
      "type": "music",
      "albumId": "200000002",
      "album": "Colorsmoke EP",
      "artistId": "100000002",
      "artist": "Synthetic",
      "coverArt": "300000055",
      "duration": 400,
      "bitRate": 64,
      "bitDepth": 16,
      "samplingRate": 44100,
      "channelCount": 2,
      "track": 5,
      "year": 2007,
      "genre": "Electronic",
      "size": 3209886,
      "discNumber": 1,
      "suffix": "mp3",
      "contentType": "audio/mpeg",
      "path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007(1)/05-Synthetic_-_RedGreenSmokePM20k22khS_64kb.mp3"
    }
  ]
}
Field Type Req. OpenS. Details
song Array of Child No List of songs

6.57 - song

song.
// TODO
// TODO
Field Type Req. OpenS. Details

6.58 - songsByGenre

songsByGenre.
// TODO
// TODO
Field Type Req. OpenS. Details

6.59 - starred

starred.
// TODO
// TODO
Field Type Req. OpenS. Details

6.60 - starred2

starred2.
// TODO
// TODO
Field Type Req. OpenS. Details

6.61 - structuredLyrics

Structured lyrics
{
  "displayArtist": "Muse",
  "displayTitle": "Hysteria",
  "lang": "xxx",
  "offset": -100,
  "synced": true,
  "line": [
    {
      "start": 0,
      "value": "It's bugging me"
    },
    {
      "start": 2000,
      "value": "Grating me"
    },
    {
      "start": 3001,
      "value": "And twisting me around..."
    }
  ]
}
<structuredLyrics displayArtist="Muse" displayTitle="Hysteria" lang="xxx" offset="-100" synced="true">
  <line start="0">It's bugging me</line>
  <line start="2000">Grating me</line>
  <line start="3001">And twisting me around...</line>
</structuredLyrics>
Does not exist.
Field Type Req. OpenS. Details
lang string Yes Yes The lyrics language (ideally ISO 639). If the language is unknown (e.g. lrc file), the server must return und (ISO standard) or xxx (common value for taggers)
synced boolean Yes Yes True if the lyrics are synced, false otherwise
line Array of line Yes Yes The actual lyrics. Ordered by start time (synced) or appearance order (unsynced)
displayArtist string No Yes The artist name to display. This could be the localized name, or any other value
displayTitle string No Yes The title to display. This could be the song title (localized), or any other value
offset number No Yes The offset to apply to all lyrics, in milliseconds. Positive means lyrics appear sooner, negative means later. If not included, the offset must be assumed to be 0

6.62 - subsonic-response

Common answer wrapper.
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1"
  }
}
Field Type Req. OpenS. Details
status string Yes The command result. ok or failed
version string Yes The server supported Subsonic API version.
type string Yes Yes The server actual name. [Ex: Navidrome or gonic]
serverVersion string Yes Yes The server actual version. [Ex: 1.2.3 (beta)]
openSubsonic boolean Yes Yes Must return true if the server support OpenSubsonic API v1
error error No The error details when status is failed

6.63 - tokenInfo

Information about an API key
{
  "tokenInfo": {
    "username": "token username"
  }
}
<tokenInfo username="token username"></tokenInfo>
Does not exist.
Field Type Req. OpenS. Details
username string Yes Yes Username associated with token

6.64 - topSongs

TopSongs list.
{
  "song": [
    {
      "id": "300000060",
      "parent": "200000002",
      "title": "BrownSmoke",
      "isDir": false,
      "isVideo": false,
      "type": "music",
      "albumId": "200000002",
      "album": "Colorsmoke EP",
      "artistId": "100000002",
      "artist": "Synthetic",
      "coverArt": "300000060",
      "duration": 304,
      "bitRate": 20,
      "bitDepth": 16,
      "samplingRate": 44100,
      "channelCount": 2,
      "userRating": 5,
      "averageRating": 5,
      "track": 4,
      "year": 2007,
      "genre": "Electronic",
      "size": 792375,
      "discNumber": 1,
      "suffix": "wma",
      "contentType": "audio/x-ms-wma",
      "path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007/04-Synthetic_-_BrownSmokeYSBM20k22khS.wma"
    },
    {
      "id": "300000055",
      "parent": "200000002",
      "title": "Red&GreenSmoke",
      "isDir": false,
      "isVideo": false,
      "type": "music",
      "albumId": "200000002",
      "album": "Colorsmoke EP",
      "artistId": "100000002",
      "artist": "Synthetic",
      "coverArt": "300000055",
      "duration": 400,
      "bitRate": 64,
      "bitDepth": 16,
      "samplingRate": 44100,
      "channelCount": 2,
      "track": 5,
      "year": 2007,
      "genre": "Electronic",
      "size": 3209886,
      "discNumber": 1,
      "suffix": "mp3",
      "contentType": "audio/mpeg",
      "path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007(1)/05-Synthetic_-_RedGreenSmokePM20k22khS_64kb.mp3"
    }
  ]
}
{
  "song": [
    {
      "id": "300000060",
      "parent": "200000002",
      "title": "BrownSmoke",
      "isDir": false,
      "isVideo": false,
      "type": "music",
      "albumId": "200000002",
      "album": "Colorsmoke EP",
      "artistId": "100000002",
      "artist": "Synthetic",
      "coverArt": "300000060",
      "duration": 304,
      "bitRate": 20,
      "bitDepth": 16,
      "samplingRate": 44100,
      "channelCount": 2,
      "userRating": 5,
      "averageRating": 5,
      "track": 4,
      "year": 2007,
      "genre": "Electronic",
      "size": 792375,
      "discNumber": 1,
      "suffix": "wma",
      "contentType": "audio/x-ms-wma",
      "path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007/04-Synthetic_-_BrownSmokeYSBM20k22khS.wma"
    },
    {
      "id": "300000055",
      "parent": "200000002",
      "title": "Red&GreenSmoke",
      "isDir": false,
      "isVideo": false,
      "type": "music",
      "albumId": "200000002",
      "album": "Colorsmoke EP",
      "artistId": "100000002",
      "artist": "Synthetic",
      "coverArt": "300000055",
      "duration": 400,
      "bitRate": 64,
      "bitDepth": 16,
      "samplingRate": 44100,
      "channelCount": 2,
      "track": 5,
      "year": 2007,
      "genre": "Electronic",
      "size": 3209886,
      "discNumber": 1,
      "suffix": "mp3",
      "contentType": "audio/mpeg",
      "path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007(1)/05-Synthetic_-_RedGreenSmokePM20k22khS_64kb.mp3"
    }
  ]
}
Field Type Req. OpenS. Details
song Array of Child No List of songs

6.65 - user

user.
// TODO
// TODO
Field Type Req. OpenS. Details

6.66 - users

users.
// TODO
// TODO
Field Type Req. OpenS. Details

6.67 - videoInfo

videoInfo.
// TODO
// TODO
Field Type Req. OpenS. Details

6.68 - videos

videos.
// TODO
// TODO
Field Type Req. OpenS. Details

7 - OpenSubsonic API versions

OpenSubsonic API versions.

Versions

This table shows the supported extensions by OpenSubsonic versions:

OpenSubsonic version Supported extension
1 Template extension

Note: Since extensions are optional, more extensions can be added over time to the same OpenSubsonic API version.

See: OpenSubsonic changes for the global list of OpenSubsonic changes.

8 - Subsonic API versions

Subsonic API versions.

Versions

This table shows the REST API version implemented in different Subsonic versions:

Subsonic version REST API version
6.1.4 1.16.1
6.1.2 1.16.0
6.1 1.15.0
6.0 1.14.0
5.3 1.13.0
5.2 1.12.0
5.1 1.11.0
4.9 1.10.2
4.8 1.9.0
4.7 1.8.0
4.6 1.7.0
4.5 1.6.0
4.4 1.5.0
4.2 1.4.0
4.1 1.3.0
4.0 1.2.0
3.9 1.1.1
3.8 1.1.0

Note that a Subsonic-compatible server is backward compatible with a REST client if and only if the major version is the same, and the minor version of the client is less than or equal to the server’s. For example, if the server has REST API version 2.2, it supports client versions 2.0, 2.1 and 2.2, but not versions 1.x, 2.3+ or 3.x. The third part of the version number is not used to determine compatibility.