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

NameOpenSubsonic documentation
AmpacheDocumentation
Astiga-
gonic-
LMS - Lightweight Music ServerDocumentation
NavidromeDocumentation
Nextcloud Music / ownCloud MusicDocumentation
Supysonic-

Clients

NameOpenSubsonic documentation
Airsonic RefixDocumentation
Amperfy
Feishin (ex Sonixd)
Supersonic
SymfoniumDocumentation

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

Systemping getLicense getOpenSubsonicExtensions tokenInfo
BrowsinggetMusicFolders getIndexes getMusicDirectory getGenres getArtists getArtist getAlbum getSong getVideos getVideoInfo getArtistInfo getArtistInfo2 getAlbumInfo getAlbumInfo2 getSimilarSongs getSimilarSongs2 getTopSongs
Album/song listsgetAlbumList getAlbumList2 getRandomSongs getSongsByGenre getNowPlaying getStarred getStarred2
Searchingsearch search2 search3
PlaylistsgetPlaylists getPlaylist createPlaylist updatePlaylist deletePlaylist
Media retrievalstream download hls getCaptions getCoverArt getLyrics getAvatar getLyricsBySongId
Media annotationstar unstar setRating scrobble
SharinggetShares createShare updateShare deleteShare
PodcastgetPodcasts getNewestPodcasts refreshPodcasts createPodcastChannel deletePodcastChannel deletePodcastEpisode downloadPodcastEpisode
JukeboxjukeboxControl
Internet radiogetInternetRadioStations createInternetRadioStation updateInternetRadioStation deleteInternetRadioStation
ChatgetChatMessages addChatMessage
User managementgetUser getUsers createUser updateUser deleteUser changePassword
BookmarksgetBookmarks createBookmark deleteBookmark getPlayQueue savePlayQueue
Media library scanninggetScanStatus startScan

2 - API Reference

Common API documentation.

Parameters

Please note that all methods take the following parameters:

ParameterReq.OpenS.DefaultComment
uYes**The username.
pYes*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.
tYes*(Since 1.13.0) The authentication token computed as md5(password + salt). See below for details.
sYes*(Since 1.13.0) A random string (“salt”) used as input for computing the password hash. See below for details.
apiKeyYes**Yes[OS] An API key used for authentication
vYesThe protocol version implemented by the client, i.e., the version of the subsonic-rest-api.xsd schema used (see below).
cYesA unique string identifying the client application.
fNoxmlRequest 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"
    }
  }
}
FieldTypeReq.OpenS.Details
errorerrorYesThe error details.
codeintYesThe error code.
messagestringNoA human readable error message.

The following error codes are defined:

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

Add support for retrieving individual podcast episode metadata.

OpenSubsonic version: 1

OpenSubsonic extension name: getPodcastEpisode (As returned by getOpenSubsonicExtensions)

When a server support this extension this means that it support the getPodcastEpisode endpoint getPodCastEpisode

Version 1

You can now retrieve the metadata for an individual podcast episode without having to pull an entire channel and searching the list of episodes.

4.3 - 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.4 - Index based Queue

Add’s support for specifying and querying the play queue with index.

OpenSubsonic version: 1

OpenSubsonic extension name indexBasedQueue (As returned by getOpenSubsonicExtensions)

When a server supports this extension, it provides two new endpoints: savePlayQueueByIndex and getPlayQueueByIndex.

Version 1

You can now save a play queue using an index instead of the current song ID, allowing for duplicate items in the queue. Similarly, the queue can be retrieved with the current song index.

4.5 - 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.6 - 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.7 - 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

ParameterReq.OpenS.DefaultComment
messageYesThe 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

ParameterReq.OpenS.DefaultComment
usernameYesThe name of the user which should change its password.
passwordYesThe 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

ParameterReq.OpenS.DefaultComment
idYesID of the media file to bookmark. If a bookmark already exists for this file it will be overwritten.
positionYesThe position (in milliseconds) within the media file.
commentNoA 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

ParameterReq.OpenS.DefaultComment
streamUrlYesThe stream URL for the station.
nameYesThe user-defined name for the station.
homepageUrlNoThe 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

ParameterReq.OpenS.DefaultComment
playlistIdYes (if updating)The playlist ID.
nameYes (if creating)The human-readable name of the playlist.
songIdNoID 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"
        }
      ]
    }
  }
}
FieldTypeReq.OpenS.Details
playlistplaylistYesThe 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

ParameterReq.OpenS.DefaultComment
urlYesThe 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

ParameterReq.OpenS.DefaultComment
idYesID of a song, album or video to share. Use one id parameter for each entry to share.
descriptionNoA user-defined description that will be displayed to people visiting the shared media.
expiresNoThe 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"
            }
          ]
        }
      ]
    }
  }
}
FieldTypeReq.OpenS.Details
sharessharesYesThe 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

ParameterReq.OpenS.DefaultComment
usernameYesThe name of the new user.
passwordYesThe password of the new user, either in clear text of hex-encoded (see above).
emailYesThe email address of the new user.
ldapAuthenticatedNofalseWhether the user is authenicated in LDAP.
adminRoleNofalseWhether the user is administrator.
settingsRoleNotrueWhether the user is allowed to change personal settings and password.
streamRoleNotrueWhether the user is allowed to play files.
jukeboxRoleNofalseWhether the user is allowed to play files in jukebox mode.
downloadRoleNofalseWhether the user is allowed to download files.
uploadRoleNofalseWhether the user is allowed to upload files.
playlistRoleNofalseWhether the user is allowed to create and delete playlists. Since 1.8.0, changing this role has no effect.
coverArtRoleNofalseWhether the user is allowed to change cover art and tags.
commentRoleNofalseWhether the user is allowed to create and edit comments and ratings.
podcastRoleNofalseWhether the user is allowed to administrate Podcasts.
shareRoleNofalse(Since 1.8.0) Whether the user is allowed to share files with anyone.
videoConversionRoleNofalse(Since 1.15.0) Whether the user is allowed to start video conversions.
musicFolderIdNoAll 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

ParameterReq.OpenS.DefaultComment
idYesID 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

ParameterReq.OpenS.DefaultComment
idYesThe 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

ParameterReq.OpenS.DefaultComment
idYesID 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

ParameterReq.OpenS.DefaultComment
idYesThe 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

ParameterReq.OpenS.DefaultComment
idYesThe 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

ParameterReq.OpenS.DefaultComment
idYesID 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

ParameterReq.OpenS.DefaultComment
usernameYesThe 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

ParameterReq.OpenS.DefaultComment
idYesA 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

ParameterReq.OpenS.DefaultComment
idYesThe 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

ParameterReq.OpenS.DefaultComment
idYesThe album ID.

Example

Result

A subsonic-response element with a nested AlbumID3WithSongs 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"
        }
      ]
    }
  }
}
FieldTypeReq.OpenS.Details
albumAlbumID3WithSongsYesThe 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

ParameterReq.OpenS.DefaultComment
idYesThe 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"
    }
  }
}
FieldTypeReq.OpenS.Details
albumInfoalbumInfoYesThe 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

ParameterReq.OpenS.DefaultComment
idYesThe 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"
    }
  }
}
FieldTypeReq.OpenS.Details
albumInfoalbumInfoYesThe 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

ParameterReq.OpenS.DefaultComment
typeYesThe 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.
sizeNo10The number of albums to return. Max 500.
offsetNo0The list offset. Useful if you for example want to page through the list of newest albums.
fromYearYes (if type is byYear)The first year in the range. If fromYear > toYear a reverse chronological list is returned.
toYearYes (if type is byYear)The last year in the range.
genreYes (if type is byGenre)The name of the genre, e.g., “Rock”.
musicFolderIdNo(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"
        }
      ]
    }
  }
}
FieldTypeReq.OpenS.Details
albumListalbumListYesThe 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

ParameterReq.OpenS.DefaultComment
typeYesThe 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.
sizeNo10The number of albums to return. Max 500.
offsetNo0The list offset. Useful if you for example want to page through the list of newest albums.
fromYearYes (if type is byYear)The first year in the range. If fromYear > toYear a reverse chronological list is returned.
toYearYes (if type is byYear)The last year in the range.
genreYes (if type is byGenre)The name of the genre, e.g., “Rock”.
musicFolderIdNo(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"
        }
      ]
    }
  }
}
FieldTypeReq.OpenS.Details
albumList2albumList2YesThe 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

ParameterReq.OpenS.DefaultComment
idYesThe 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": "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"
      ],
      "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": "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",
      "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"
        }
      ]
    }
  }
}
FieldTypeReq.OpenS.Details
artistartistYesThe 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

ParameterReq.OpenS.DefaultComment
idYesThe artist, album or song ID.
countNo20Max number of similar artists to return.
includeNotPresentNofalseWhether 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": "Empty 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": "Empty 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"
    }
  }
}
FieldTypeReq.OpenS.Details
artistInfoartistInfoYesThe 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

ParameterReq.OpenS.DefaultComment
idYesThe artist, album or song ID.
countNo20Max number of similar artists to return.
includeNotPresentNofalseWhether 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": "Empty 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": "Empty 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"
    }
  }
}
FieldTypeReq.OpenS.Details
artistInfo2artistInfo2YesThe 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

ParameterReq.OpenS.DefaultComment
musicFolderIdNoIf 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
            }
          ]
        }
      ]
    }
  }
}
FieldTypeReq.OpenS.Details
artistsartistsYesThe 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

ParameterReq.OpenS.DefaultComment
usernameYesThe 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"
        }
      ]
    }
  }
}
FieldTypeReq.OpenS.Details
bookmarksbookmarksYesThe 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

ParameterReq.OpenS.DefaultComment
idYesThe ID of the video.
formatNoPreferred 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

ParameterReq.OpenS.DefaultComment
sinceNoOnly 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"
        }
      ]
    }
  }
}
FieldTypeReq.OpenS.Details
chatMessageschatMessagesYesThe 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

ParameterReq.OpenS.DefaultComment
idYesThe coverArt ID. Returned by most entities likes Child or AlbumID3
sizeNoIf 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"
        }
      ]
    }
  }
}
FieldTypeReq.OpenS.Details
genresgenresYesThe 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

ParameterReq.OpenS.DefaultComment
musicFolderIdNoIf specified, only return artists in the music folder with the given ID. See getMusicFolders.
ifModifiedSinceNoIf 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>
FieldTypeReq.OpenS.Details
indexesindexesYesThe 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"
        }
      ]
    }
  }
}
FieldTypeReq.OpenS.Details
internetRadioStationsinternetRadioStationsYesThe 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"
    }
  }
}
FieldTypeReq.OpenS.Details
licenselicenseYesThe 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

ParameterReq.OpenS.DefaultComment
artistNoThe artist name.
titleNoThe 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?"
    }
  }
}
FieldTypeReq.OpenS.Details
lyricslyricsYesThe 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

ParameterReq.OpenS.DefaultComment
idYesYesThe 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.
FieldTypeReq.OpenS.Details
lyricsListlyricsListYesYesList 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

ParameterReq.OpenS.DefaultComment
idYesA 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"
        }
      ]
    }
  }
}
FieldTypeReq.OpenS.Details
directorydirectoryYesThe 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"
        }
      ]
    }
  }
}
FieldTypeReq.OpenS.Details
musicFoldersmusicFoldersYesThe 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

ParameterReq.OpenS.DefaultComment
countNo20The maximum number of episodes to return.

Example

Result

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

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true,
    "newestPodcasts": {
      "episode": [
        {
          "id": "7390",
          "parent": "7389",
          "isDir": "false",
          "title": "Jonas Gahr StΓΈre",
          "album": "NRK – Hallo P3",
          "artist": "Podcast",
          "year": "2015",
          "coverArt": "7389",
          "size": "41808585",
          "contentType": "audio/mpeg",
          "suffix": "mp3",
          "duration": "2619",
          "bitRate": "128",
          "isVideo": "false",
          "created": "2015-09-07T20:07:31.000Z",
          "artistId": "453",
          "type": "podcast",
          "streamId": "7410",
          "channelId": "17",
          "description": "Jonas Gahr StΓΈre fra Arbeiderpartiet er med i dagens partilederutspΓΈrring i Hallo P3!",
          "status": "completed",
          "publishDate": "2015-09-07T15:29:00.000Z"
        }
      ]
    }
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "newestPodcasts": {
      "episode": [
        {
          "id": "7390",
          "parent": "7389",
          "isDir": "false",
          "title": "Jonas Gahr StΓΈre",
          "album": "NRK – Hallo P3",
          "artist": "Podcast",
          "year": "2015",
          "coverArt": "7389",
          "size": "41808585",
          "contentType": "audio/mpeg",
          "suffix": "mp3",
          "duration": "2619",
          "bitRate": "128",
          "isVideo": "false",
          "created": "2015-09-07T20:07:31.000Z",
          "artistId": "453",
          "type": "podcast",
          "streamId": "7410",
          "channelId": "17",
          "description": "Jonas Gahr StΓΈre fra Arbeiderpartiet er med i dagens partilederutspΓΈrring i Hallo P3!",
          "status": "completed",
          "publishDate": "2015-09-07T15:29:00.000Z"
        }
      ]
    }
  }
}
FieldTypeReq.OpenS.Details
newestPodcastsNewestPodcastsYesThe 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
        }
      ]
    }
  }
}
FieldTypeReq.OpenS.Details
nowPlayingnowPlayingYesThe 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.
FieldTypeReq.OpenS.Details
openSubsonicExtensionsAn array of openSubsonicExtensionYesThe 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

ParameterReq.OpenS.DefaultComment
idyesID 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"
        }
      ]
    }
  }
}
FieldTypeReq.OpenS.Details
playlistplaylistYesThe 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

ParameterReq.OpenS.DefaultComment
usernameno(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",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true,
    "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
        }
      ]
    }
  }
}
FieldTypeReq.OpenS.Details
playlistsplaylistsYesThe 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.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true,
    "playQueue": {
      "current": "1234",
      "position": 1000,
      "username": "user",
      "changed": "2023-03-10T02:19:35.784818075Z",
      "changedBy": "example client",
      "entry": [
        {
          "id": "1234",
          "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": "1234",
          "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"
        }
      ]
    }
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "playQueue": {
      "current": "1234",
      "position": 1000,
      "username": "user",
      "changed": "2023-03-10T02:19:35.784818075Z",
      "changedBy": "example client",
      "entry": [
        {
          "id": "1234",
          "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": "1234",
          "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"
        }
      ]
    }
  }
}
FieldTypeReq.OpenS.Details
playQueueplayQueueYesThe play queue

5.46 - getPlayQueueByIndex

Returns the state of the play queue for this user.

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

Returns the state of the play queue for this user (as set by savePlayQueue or savePlayQueueByIndex). This includes the tracks in the play queue, the currently playing track index (0-based), 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.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true,
    "playQueueByIndex": {
      "currentIndex": 1,
      "position": 1000,
      "username": "user",
      "changed": "2023-03-10T02:19:35.784818075Z",
      "changedBy": "example client",
      "entry": [
        {
          "id": "1234",
          "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": "1234",
          "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"
        }
      ]
    }
  }
}
Does not exist.
FieldTypeReq.OpenS.Details
playQueueByIndexPlayQueueByIndexYesThe play queue

5.47 - getPodcastEpisode

Returns details for a podcast episode.

OpenSubsonic version: 1

OpenSubsonic extension name getPodcastEpisode (As returned by getOpenSubsonicExtensions) http://your-server/rest/getPodcastEpisode

Returns details for a podcast episode.

Parameters

ParameterReq.OpenS.DefaultComment
idYesYesThe podcast episode ID.

Example

Result

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

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true,
    "podcastEpisode": {
      "id": "7390",
      "parent": "7389",
      "isDir": "false",
      "title": "Jonas Gahr StΓΈre",
      "album": "NRK – Hallo P3",
      "artist": "Podcast",
      "year": "2015",
      "coverArt": "7389",
      "size": "41808585",
      "contentType": "audio/mpeg",
      "suffix": "mp3",
      "duration": "2619",
      "bitRate": "128",
      "isVideo": "false",
      "created": "2015-09-07T20:07:31.000Z",
      "artistId": "453",
      "type": "podcast",
      "streamId": "7410",
      "channelId": "17",
      "description": "Jonas Gahr StΓΈre fra Arbeiderpartiet er med i dagens partilederutspΓΈrring i Hallo P3!",
      "status": "completed",
      "publishDate": "2015-09-07T15:29:00.000Z"
    }
  }
}
Does not exist
FieldTypeReq.OpenS.Details
podcastEspisodepodcastEpisodeYesThe podcast episode

5.48 - 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

ParameterReq.OpenS.DefaultComment
includeEpisodesNotrue(Since 1.9.0) Whether to include Podcast episodes in the returned result.
idNo(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.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true,
    "podcasts": {
      "channel": [
        {
          "id": "7390",
          "parent": "7389",
          "isDir": "false",
          "title": "Jonas Gahr StΓΈre",
          "album": "NRK – Hallo P3",
          "artist": "Podcast",
          "year": "2015",
          "coverArt": "7389",
          "size": "41808585",
          "contentType": "audio/mpeg",
          "suffix": "mp3",
          "duration": "2619",
          "bitRate": "128",
          "isVideo": "false",
          "created": "2015-09-07T20:07:31.000Z",
          "artistId": "453",
          "type": "podcast",
          "streamId": "7410",
          "channelId": "17",
          "description": "Jonas Gahr StΓΈre fra Arbeiderpartiet er med i dagens partilederutspΓΈrring i Hallo P3!",
          "status": "completed",
          "publishDate": "2015-09-07T15:29:00.000Z"
        },
        {
          "id": "3",
          "url": "https://example.com/404",
          "status": "error",
          "errorMessage": "Not Found"
        }
      ]
    }
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
      "channel": [
        {
          "id": "7390",
          "parent": "7389",
          "isDir": "false",
          "title": "Jonas Gahr StΓΈre",
          "album": "NRK – Hallo P3",
          "artist": "Podcast",
          "year": "2015",
          "coverArt": "7389",
          "size": "41808585",
          "contentType": "audio/mpeg",
          "suffix": "mp3",
          "duration": "2619",
          "bitRate": "128",
          "isVideo": "false",
          "created": "2015-09-07T20:07:31.000Z",
          "artistId": "453",
          "type": "podcast",
          "streamId": "7410",
          "channelId": "17",
          "description": "Jonas Gahr StΓΈre fra Arbeiderpartiet er med i dagens partilederutspΓΈrring i Hallo P3!",
          "status": "completed",
          "publishDate": "2015-09-07T15:29:00.000Z"
        },
        {
          "id": "3",
          "url": "https://example.com/404",
          "status": "error",
          "errorMessage": "Not Found"
        }
      ]
    }
  }
}
FieldTypeReq.OpenS.Details
podcastspodcastsYesThe podacsts

5.49 - 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

ParameterReq.OpenS.DefaultComment
sizeNo10The maximum number of songs to return. Max 500.
genreNoOnly returns songs belonging to this genre.
fromYearNoOnly return songs published after or in this year.
toYearNoOnly return songs published before or in this year.
musicFolderIdNoOnly 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"
        }
      ]
    }
  }
}
FieldTypeReq.OpenS.Details
randomSongssongsYesThe random songs list

5.50 - 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
    }
  }
}
FieldTypeReq.OpenS.Details
scanStatusscanStatusYesThe status of the scan

5.51 - 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"
            }
          ]
        }
      ]
    }
  }
}
FieldTypeReq.OpenS.Details
sharessharesYesThe shares

5.52 - 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

ParameterReq.OpenS.DefaultComment
idYesThe artist, album or song ID.
countNo50Max 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"
        }
      ]
    }
  }
}
FieldTypeReq.OpenS.Details
similarSongssimilarSongsYesThe similar songs list

5.53 - 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

ParameterReq.OpenS.DefaultComment
idYesThe artist ID.
countNo50Max 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"
        }
      ]
    }
  }
}
FieldTypeReq.OpenS.Details
similarSongs2similarSongs2YesThe similar songs list

5.54 - getSong

Returns details for a song.

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

Returns details for a song.

Parameters

ParameterReq.OpenS.DefaultComment
idYesThe song ID.

Example

Result

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

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true,
    "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",
      "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
      }
    }
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "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,
      "discNumber": 1,
      "created": "2023-03-14T17:51:22.112827504Z",
      "albumId": "e8a0685e3f3ec6f251649af2b58b8617",
      "artistId": "97e0398acf63f9fb930d7d4ce209a52b",
      "type": "music",
      "isVideo": false
    }
  }
}
FieldTypeReq.OpenS.Details
songChildYesThe song

5.55 - getSongsByGenre

Returns songs in a given genre.

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

Returns songs in a given genre.

Parameters

ParameterReq.OpenS.DefaultComment
genreYesThe genre, as returned by getGenres.
countNo10The maximum number of songs to return. Max 500.
offsetNo0The offset. Useful if you want to page through the songs in a genre.
musicFolderIdNo(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.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true,
    "songsByGenre": {
      "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"
        }
      ]
    }
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "songsByGenre": {
      "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"
        }
      ]
    }
  }
}
FieldTypeReq.OpenS.Details
songsByGenresongsYesThe songs list

5.56 - getStarred

Returns starred songs, albums and artists.

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

Returns starred songs, albums and artists.

Parameters

ParameterReq.OpenS.DefaultComment
musicFolderIdNo(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.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true,
    "starred": {
      "artist": [
        {
          "id": "100000002",
          "name": "Synthetic",
          "coverArt": "ar-100000002",
          "starred": "2021-02-22T05:54:18Z"
        }
      ],
      "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": "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
        }
      ]
    }
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "starred": {
      "artist": [
        {
          "id": "100000002",
          "name": "Synthetic",
          "coverArt": "ar-100000002",
          "starred": "2021-02-22T05:54:18Z"
        }
      ],
      "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": "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
        }
      ]
    }
  }
}
FieldTypeReq.OpenS.Details
starredstarredYesThe song

5.57 - 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

ParameterReq.OpenS.DefaultComment
musicFolderIdNo(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.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true,
    "starred2": {
      "artist": [
        {
          "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"
        }
      ],
      "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,
          "genre": "Hip-Hop",
          "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,
          "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",
    "starred2": {
      "artist": [
        {
          "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"
        }
      ],
      "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,
          "genre": "Hip-Hop",
          "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,
          "discNumber": 1,
          "created": "2023-03-14T17:51:22.112827504Z",
          "albumId": "e8a0685e3f3ec6f251649af2b58b8617",
          "artistId": "97e0398acf63f9fb930d7d4ce209a52b",
          "type": "music",
          "isVideo": false
        }
      ]
    }
  }
}
FieldTypeReq.OpenS.Details
starred2starred2YesThe song

5.58 - 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

ParameterReq.OpenS.DefaultComment
artistYesThe artist name.
countNo50Max 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"
        }
      ]
    }
  }
}
FieldTypeReq.OpenS.Details
topSongstopSongsYesThe top songs list

5.59 - 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

ParameterReq.OpenS.DefaultComment
usernameYesThe 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.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true,
    "user": {
      "folder": [
          1,
          3
      ],
      "username": "sindre",
      "email": "sindre@activeobjects.no",
      "scrobblingEnabled": "true",
      "adminRole": "false",
      "settingsRole": "true",
      "downloadRole": "true",
      "uploadRole": "false",
      "playlistRole": "true",
      "coverArtRole": "true",
      "commentRole": "true",
      "podcastRole": "true",
      "streamRole": "true",
      "jukeboxRole": "true",
      "shareRole": "false"
    }
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "user": {
      "folder": [
          1,
          3
      ],
      "username": "sindre",
      "email": "sindre@activeobjects.no",
      "scrobblingEnabled": "true",
      "adminRole": "false",
      "settingsRole": "true",
      "downloadRole": "true",
      "uploadRole": "false",
      "playlistRole": "true",
      "coverArtRole": "true",
      "commentRole": "true",
      "podcastRole": "true",
      "streamRole": "true",
      "jukeboxRole": "true",
      "shareRole": "false"
    }
  }
}
FieldTypeReq.OpenS.Details
useruserYesThe user

5.60 - 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.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true,
    "users": {
      "user": [
        {
          "folder": [
              1,
              3
          ],
          "username": "sindre",
          "email": "sindre@activeobjects.no",
          "scrobblingEnabled": "true",
          "adminRole": "false",
          "settingsRole": "true",
          "downloadRole": "true",
          "uploadRole": "false",
          "playlistRole": "true",
          "coverArtRole": "true",
          "commentRole": "true",
          "podcastRole": "true",
          "streamRole": "true",
          "jukeboxRole": "true",
          "shareRole": "false"
        }
      ]
    }
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "users": {
      "user": [
        {
          "folder": [
              1,
              3
          ],
          "username": "sindre",
          "email": "sindre@activeobjects.no",
          "scrobblingEnabled": "true",
          "adminRole": "false",
          "settingsRole": "true",
          "downloadRole": "true",
          "uploadRole": "false",
          "playlistRole": "true",
          "coverArtRole": "true",
          "commentRole": "true",
          "podcastRole": "true",
          "streamRole": "true",
          "jukeboxRole": "true",
          "shareRole": "false"
        }
      ]
    }
  }
}
FieldTypeReq.OpenS.Details
usersusersYesThe users

5.61 - 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

ParameterReq.OpenS.DefaultComment
idYesThe video ID.

Example

Result

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

// TODO
// TODO
FieldTypeReq.OpenS.Details
videoInfovideoInfoYesThe song

5.62 - 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
FieldTypeReq.OpenS.Details
videosvideosYesThe videos

5.63 - 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

ParameterReq.OpenS.DefaultComment
idYesA string which uniquely identifies the media file to stream.
bitRateNoIf 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
audioTrackNoThe 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.64 - 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

ParameterReq.OpenS.DefaultComment
actionYesThe 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
indexNoUsed by skip and remove. Zero-based index of the song to skip to or remove.
offsetNo(Since 1.7.0) Used by skip. Start playing this many seconds into the track.
idNoUsed 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.)
gainNoUsed 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 :

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true,
    "jukeboxStatus": {
      "currentIndex": 7,
      "playing": true,
      "gain": 0.9,
      "position": 67
    }
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true,
    "jukeboxPlaylist": {
      "currentIndex": 7,
      "playing": true,
      "gain": 0.9,
      "position": 67,
      "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"
        }
      ]
    }
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "jukeboxStatus": {
      "currentIndex": 7,
      "playing": true,
      "gain": 0.9,
      "position": 67
    }
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "jukeboxPlaylist": {
      "currentIndex": 7,
      "playing": true,
      "gain": 0.9,
      "position": 67,
      "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"
        }
      ]
    }
  }
}
FieldTypeReq.OpenS.Details
jukeboxStatusjukeboxstatusYesThe jukeboxstatus
jukeboxPlaylistjukeboxPlaylistYesThe jukeboxstatus

5.65 - 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.66 - 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.67 - 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

ParameterReq.OpenS.DefaultComment
idNoID of a song in the play queue. Use one id parameter for each song in the play queue.
currentNoThe ID of the current playing song.
positionNoThe 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.68 - savePlayQueueByIndex

Saves the state of the play queue for this user.

http://your-server/rest/savePlayQueueByIndex 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).

Uses an index instead, as this allows for uniquely identifying play queues which may have multiple copies of the same track.

Parameters

ParameterReq.OpenS.DefaultComment
idNoID of a song in the play queue. Use one id parameter for each song in the play queue.
currentIndexNoThe 0-based index of the current playing track. This must be between 0 and length of the queue - 1 (inclusive)
positionNoThe 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
  }
}
Does not exist

5.69 - 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

ParameterReq.OpenS.DefaultComment
idYesA string which uniquely identifies the file to scrobble.
timeNo(Since 1.8.0) The time (in milliseconds since 1 Jan 1970) at which the song was listened to.
submissionNoTrueWhether 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.70 - 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

ParameterReq.OpenS.DefaultComment
artistNoArtist to search for.
albumNoAlbum to searh for.
titleNoSong title to search for.
anyNoSearches all fields.
countNo20Maximum number of results to return.
offsetNo0Search result offset. Used for paging.
newerThanNoOnly 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
FieldTypeReq.OpenS.Details
searchResultsearchResultYesThe result

5.71 - 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

ParameterReq.OpenS.DefaultComment
queryYesSearch query.
artistCountNo20Maximum number of artists to return.
artistOffsetNo0Search result offset for artists. Used for paging.
albumCountNo20Maximum number of albums to return.
albumOffsetNo0Search result offset for albums. Used for paging.
songCountNo20Maximum number of songs to return.
songOffsetNo0Search result offset for songs. Used for paging.
musicFolderIdNo(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.

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true,
    "searchResult2": {
      "artist": [
        {
          "id": "100000002",
          "name": "Synthetic",
          "coverArt": "ar-100000002",
          "albumCount": 1,
          "starred": "2021-02-22T05:54:18Z"
        }
      ],
      "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": "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
        }
      ]
    }
  }
}
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "searchResult2": {
      "artist": [
        {
          "id": "100000002",
          "name": "Synthetic",
          "coverArt": "ar-100000002",
          "albumCount": 1,
          "starred": "2021-02-22T05:54:18Z"
        }
      ],
      "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": "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
        }
      ]
    }
  }
}
FieldTypeReq.OpenS.Details
searchResult2searchResult2YesThe result

5.72 - 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

ParameterRequ.OpenS.DefaultComment
queryYesSee below*Search query.
artistCountNo20Maximum number of artists to return.
artistOffsetNo0Search result offset for artists. Used for paging.
albumCountNo20Maximum number of albums to return.
albumOffsetNo0Search result offset for albums. Used for paging.
songCountNo20Maximum number of songs to return.
songOffsetNo0Search result offset for songs. Used for paging.
musicFolderIdNo(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
        }
      ]
    }
  }
}
FieldTypeReq.OpenS.Details
searchResult3searchResult3YesThe result of the search

5.73 - 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

ParameterReq.OpenS.DefaultComment
idYesA string which uniquely identifies the file (song) or folder (album/artist) to rate.
ratingYesThe 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.74 - 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

ParameterReq.OpenS.DefaultComment
idNoThe ID of the file (song) or folder (album/artist) to star. Multiple parameters allowed.
albumIdNoThe 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.
artistIdNoThe 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.75 - 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
    }
  }
}
FieldTypeReq.OpenS.Details
scanStatusscanStatusYesThe status of the scan

5.76 - stream

Streams a given media file.

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

Streams a given media file.

Parameters

ParameterReq.OpenS.DefaultComment
idYesA string which uniquely identifies the file to stream. Obtained by calls to getMusicDirectory.
maxBitRateNo(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.
formatNo(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.
timeOffsetNoNo / YesBy 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.
sizeNo(Since 1.6.0) Only applicable to video streaming. Requested video size specified as WxH, for instance “640x480”.
estimateContentLengthNofalse(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.
convertedNofalse(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.77 - 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.
FieldTypeReq.OpenS.Details
tokenInfotokenInfoYesYesInformation about the token

5.78 - 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

ParameterReq.OpenS.DefaultComment
idNoThe ID of the file (song) or folder (album/artist) to unstar. Multiple parameters allowed.
albumIdNoThe 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.
artistIdNoThe 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.79 - 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

ParameterReq.OpenS.DefaultComment
idYesThe ID of the station.
streamUrlYesThe stream URL for the station.
nameYesThe user-defined name for the station.
homepageUrlNoThe 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.80 - 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

ParameterReq.OpenS.DefaultComment
playlistIdYesThe playlist ID.
nameNoThe human-readable name of the playlist.
commentNoThe playlist comment.
publicNotrue if the playlist should be visible to all users, false otherwise.
songIdToAddNoAdd this song with this ID to the playlist. Multiple parameters allowed.
songIndexToRemoveNoRemove 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.81 - 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

ParameterReq.OpenS.DefaultComment
idYesID of the share to update.
descriptionNoA user-defined description that will be displayed to people visiting the shared media.
expiresNoThe 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.82 - 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

ParameterReq.OpenS.DefaultComment
usernameYesThe name of the user.
passwordNoThe password of the user, either in clear text of hex-encoded (see above).
emailNoThe email address of the user.
ldapAuthenticatedNoWhether the user is authenicated in LDAP.
adminRoleNoWhether the user is administrator.
settingsRoleNoWhether the user is allowed to change personal settings and password.
streamRoleNoWhether the user is allowed to play files.
jukeboxRoleNoWhether the user is allowed to play files in jukebox mode.
downloadRoleNoWhether the user is allowed to download files.
uploadRoleNoWhether the user is allowed to upload files.
coverArtRoleNoWhether the user is allowed to change cover art and tags.
commentRoleNoWhether the user is allowed to create and edit comments and ratings.
podcastRoleNoWhether the user is allowed to administrate Podcasts.
shareRoleNoWhether the user is allowed to share files with anyone.
videoConversionRoleNofalse(Since 1.15.0) Whether the user is allowed to start video conversions.
musicFolderIdNo(Since 1.12.0) IDs of the music folders the user is allowed access to. Include the parameter once for each folder.
maxBitRateNo(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",
    "version": "Deluxe Edition",
    "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,
    "explicitStatus": "explicit",
    "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
}
FieldTypeReq.OpenS.Details
idstringYesThe id of the album
namestringYesThe album name.
versionstringNoYesThe album version name (Remastered, Anniversary Box Set, …).
artiststringNoArtist name.
artistIdstringNoThe id of the artist
coverArtstringNoA covertArt id.
songCountintYesNumber of songs
durationintYesTotal duration of the album in seconds
playCountlongNoNumber of play of the album
createdstringYesDate the album was added. [ISO 8601]
starredstringNoDate the album was starred. [ISO 8601]
yearintNoThe album year
genrestringNoThe album genre
playedstringNoYesDate the album was last played. [ISO 8601]
userRatingintNoYesThe user rating of the album. [1-5]
recordLabelsArray of RecordLabelNoYesThe labels producing the album.
musicBrainzIdstringNoYesThe album MusicBrainzID.
genresArray of ItemGenreNoYesThe list of all genres of the album.
artistsArray of ArtistID3NoYesThe list of all album artists of the album. (Note: Only the required ArtistID3 fields should be returned by default)
displayArtiststringNoYesThe single value display artist.
releaseTypesArray of stringNoYesThe types of this album release. (Album, Compilation, EP, Remix, …).
moodsArray of stringNoYesThe list of all moods of the album.
sortNamestringNoYesThe album sort name.
originalReleaseDateItemDateNoYesDate the album was originally released.
releaseDateItemDateNoYesDate 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.
isCompilationbooleanNoYesTrue if the album is a compilation.
explicitStatusstringNoYesReturns “explicit” if at least one song is explicit, “clean” if no song is explicit and at least one is “clean” else “”.
discTitlesArray of DiscTitleNoYesThe list of all disc titles of the album.

6.2 - AlbumID3WithSongs

An extension of AlbumID3 with song Child entries.
{
  "id": "ad0f112b6dcf83de5e9cae85d07f0d35",
  "name": "8-bit lagerfeuer",
  "version": "Deluxe Edition",
  "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,
  "explicitStatus": "explicit",
  "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",
      "explicitStatus": "explicit",
      "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",
      "explicitStatus": "clean",
      "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"
    }
  ]
}
FieldTypeReq.OpenS.Details
idstringYesThe id of the album
namestringYesThe album name.
versionstringNoYesThe album version name (Remastered, Anniversary Box Set, …).
artiststringNoArtist name.
artistIdstringNoThe id of the artist
coverArtstringNoA covertArt id.
songCountintYesNumber of songs
durationintYesTotal duration of the album in seconds
playCountlongNoNumber of play of the album
createdstringYesDate the album was added. [ISO 8601]
starredstringNoDate the album was starred. [ISO 8601]
yearintNoThe album year
genrestringNoThe album genre
playedstringNoYesDate the album was last played. [ISO 8601]
userRatingintNoYesThe user rating of the album. [1-5]
recordLabelsArray of RecordLabelNoYesThe labels producing the album.
musicBrainzIdstringNoYesThe album MusicBrainzID.
genresArray of ItemGenreNoYesThe list of all genres of the album.
artistsArray of ArtistID3NoYesThe list of all album artists of the album.
displayArtiststringNoYesThe single value display artist.
releaseTypesArray of stringNoYesThe types of this album release. (Album, Compilation, EP, Remix, …).
moodsArray of stringNoYesThe list of all moods of the album.
sortNamestringNoYesThe album sort name.
originalReleaseDateItemDateNoYesDate the album was originally released.
releaseDateItemDateNoYesDate 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.
isCompilationbooleanNoYesTrue if the album is a compilation.
explicitStatusstringNoYesReturns “explicit” if at least one song is explicit, “clean” if no song is explicit and at least one is “clean” else “”.
discTitlesArray of DiscTitleNoYesThe list of all disc titles of the album.
songArray of ChildNoThe 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"
}
FieldTypeReq.OpenS.Details
notesstringNoAlbum notes
musicBrainzIdstringNoAlbum musicBrainzId
lastFmUrlstringNoAlbum lastFmUrl
smallImageUrlstringNoAlbum smallImageUrl
mediumImageUrlstringNoAlbum mediumImageUrl
largeImageUrlstringNoAlbum 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"
    }
  ]
}
FieldTypeReq.OpenS.Details
albumArray of ChildNoArtist 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"
    }
  ]
}
FieldTypeReq.OpenS.Details
albumArray of AlbumID3NoArtist albums

6.6 - artist

Artist details.
{
  "id": "100000002",
  "name": "Synthetic",
  "coverArt": "ar-100000002",
  "starred": "2021-02-22T05:54:18Z"
}
{
  "id": "100000002",
  "name": "Synthetic",
  "coverArt": "ar-100000002",
  "starred": "2021-02-22T05:54:18Z"
}
FieldTypeReq.OpenS.Details
idstringYesArtist id
namestringYesArtist name
artistImageUrlstringNoArtist image url
starredstringNoArtist starred date [ISO 8601]
userRatingintNoArtist rating [1-5]
averageRatingnumberNoArtist average rating [1.0-5.0]

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"
}
FieldTypeReq.OpenS.Details
idstringYesThe id of the artist
namestringYesThe artist name.
coverArtstringNoA covertArt id.
artistImageUrlstringNoAn url to an external image source.
albumCountintNoArtist album count.
starredstringNoDate the artist was starred. [ISO 8601]
musicBrainzIdstringNoYesThe artist MusicBrainzID.
sortNamestringNoYesThe artist sort name.
rolesArray of stringNoYesThe list of all roles this artist has in the library.

6.8 - artistInfo

Artist info.
{
  "biography": "Empty 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": "Empty 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"
}
FieldTypeReq.OpenS.Details
biographystringNoArtist biography
musicBrainzIdstringNoArtist musicBrainzId
lastFmUrlstringNoArtist lastFmUrl
smallImageUrlstringNoArtist smallImageUrl
mediumImageUrlstringNoArtist mediumImageUrl
largeImageUrlstringNoArtist largeImageUrl
similarArtistArray of artistNoSimilar Artists

6.9 - artistInfo2

Artist info.
{
  "biography": "Empty 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": "Empty 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"
}
FieldTypeReq.OpenS.Details
biographystringNoArtist biography
musicBrainzIdstringNoArtist musicBrainzId
lastFmUrlstringNoArtist lastFmUrl
smallImageUrlstringNoArtist smallImageUrl
mediumImageUrlstringNoArtist mediumImageUrl
largeImageUrlstringNoArtist largeImageUrl
similarArtistArray of ArtistID3NoSimilar 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
        }
      ]
    }
  ]
}
FieldTypeReq.OpenS.Details
ignoredArticlesstringYesList of ignored articles space separated
indexArray of IndexID3NoIndex list

6.11 - ArtistWithAlbumsID3

An extension of ArtistID3 with AlbumID3.
{
  "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"
  ],
  "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"
    }
  ]
}
{
  "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",
  "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"
    }
  ]
}
FieldTypeReq.OpenS.Details
idstringYesThe id of the artist
namestringYesThe artist name.
coverArtstringNoA covertArt id.
artistImageUrlstringNoAn url to an external image source.
albumCountintYesArtist album count.
starredstringNoDate the artist was starred. [ISO 8601]
albumArray of AlbumID3NoArtist albums
musicBrainzIdstringNoYesThe artist MusicBrainzID.
sortNamestringNoYesThe artist sort name.
rolesArray of stringNoYesThe list of all roles this artist has in the library.

6.12 - 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"
}
FieldTypeReq.OpenS.Details
positionlongYesBookmark position in seconds
usernamestringYesUsername
commentstringNoBookmark comment
createdstringYesBookmark creation date [ISO 8601]
changedstringYesBookmark last updated date [ISO 8601]
entryChildYesThe bookmark file

6.13 - 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"
    }
  ]
}
FieldTypeReq.OpenS.Details
bookmarkArray of bookmarkNoList of bookmark

6.14 - chatMessage

A chatMessage.
{
  "username": "user",
  "time": 1678935699000,
  "message": "Api Script Testing"
}
{
  "username": "user",
  "time": 1678935699000,
  "message": "Api Script Testing"
}
FieldTypeReq.OpenS.Details
usernamestringYesUsername
timelongYesTime in millis since Jan 1 1970
messagestringYesThe message

6.15 - 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"
    }
  ]
}
FieldTypeReq.OpenS.Details
chatMessageArray of chatMessageNoList of chatMessage

6.16 - 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",
  "isrc": [
    "USSM18300073",
    "DELV42300297",
    "DEE868300011",
    "DEE868300007"
  ],
  "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"
  ],
  "explicitStatus": "explicit",
  "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
}
FieldTypeReq.OpenS.Details
idstringYesThe id of the media
parentstringNoThe id of the parent (folder/album)
isDirbooleanYesThe media is a directory
titlestringYesThe media name.
albumstringNoThe album name.
artiststringNoThe artist name.
trackintNoThe track number.
yearintNoThe media year.
genrestringNoThe media genre
coverArtstringNoA covertArt id.
sizelongNoA file size of the media.
contentTypestringNoThe mimeType of the media.
suffixstringNoThe file suffix of the media.
transcodedContentTypestringNoThe transcoded mediaType if transcoding should happen.
transcodedSuffixstringNoThe file suffix of the transcoded media.
durationintNoThe duration of the media in seconds.
bitRateintNoThe bitrate of the media.
bitDepthintNoYesThe bit depth of the media.
samplingRateintNoYesThe sampling rate of the media.
channelCountintNoYesThe number of channels of the media.
pathstringNoThe full path of the media.
isVideobooleanNoMedia is a video
userRatingintNoThe user rating of the media [1-5]
averageRatingnumberNoThe average rating of the media [1.0-5.0]
playCountlongNoThe play count.
discNumberintNoThe disc number.
createdstringNoDate the media was created. [ISO 8601]
starredstringNoDate the media was starred. [ISO 8601]
albumIdstringNoThe corresponding album id
artistIdstringNoThe corresponding artist id
typestringNoThe generic type of media [music/podcast/audiobook/video]
mediaTypestringNoYesThe 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.
bookmarkPositionlongNoThe bookmark position in seconds
originalWidthintNoThe video original Width
originalHeightintNoThe video original Height
playedstringNoYesDate the album was last played. [ISO 8601]
bpmintNoYesThe BPM of the song.
commentstringNoYesThe comment tag of the song.
sortNamestringNoYesThe song sort name.
musicBrainzIdstringNoYesThe track MusicBrainzID.
isrcArray of stringNoYesThe track ISRC(s).
genresArray of ItemGenreNoYesThe list of all genres of the song.
artistsArray of ArtistID3NoYesThe list of all song artists of the song. (Note: Only the required ArtistID3 fields should be returned by default)
displayArtiststringNoYesThe single value display artist.
albumArtistsArray of ArtistID3NoYesThe list of all album artists of the song. (Note: Only the required ArtistID3 fields should be returned by default)
displayAlbumArtiststringNoYesThe single value display album artist.
contributorsArray of ContributorNoYesThe list of all contributor artists of the song.
displayComposerstringNoYesThe single value display composer.
moodsArray of stringNoYesThe list of all moods of the song.
replayGainReplayGainNoYesThe replaygain data of the song.
explicitStatusstringNoYesReturns “explicit”, “clean” or “”. (For songs extracted from tags “ITUNESADVISORY”: 1 = explicit, 2 = clean, MP4 “rtng”: 1 or 4 = explicit, 2 = clean. See albumID3 for albums)

6.17 - Contributor

A contributor artist for a song or an album.
{
    "role": "performer",
    "subRole": "Bass",
    "artist": {
        "id": "ar-1",
        "name": "Artist 1"
    }
}
Does not exist.
FieldTypeReq.OpenS.Details
rolestringYesYesThe contributor role.
subRolestringNoYesThe 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.
artistArtistID3YesYesThe artist taking on the role. (Note: Only the required ArtistID3 fields should be returned by default)

6.18 - 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"
        }
    ]
}
FieldTypeReq.OpenS.Details
idstringYesThe id
parentstringNoParent item
namestringYesThe directory name
starredstringNoStarred date [ISO 8601]
userRatingintNoThe user rating [1-5]
averageRatingnumberNoThe average rating [1.0-5.0]
playCountlongNoThe play count
childArray of ChildNoThe directory content

6.19 - DiscTitle

A disc title for an album.
{
  "disc": 0,
  "title": "The disc title"
}
Does not exist.
FieldTypeReq.OpenS.Details
discintYesYesThe disc numer.
titlestringYesYesThe name of the disc.

6.20 - 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"
}
FieldTypeReq.OpenS.Details
codeintYesThe error code
messagestringNoThe optional error message
helpUrlstringNoYesA URL (documentation, configuration, etc) which may provide additional context for the error)

The following error codes are defined:

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

6.21 - genre

A genre.
{
  "songCount": 6,
  "albumCount": 1,
  "value": "Noise"
}
{
  "songCount": 6,
  "albumCount": 1,
  "value": "Noise"
}
FieldTypeReq.OpenS.Details
valuestringYesGenre name
songCountintYesGenre song count
albumCountintYesGenre album count

6.22 - 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"
    }
  ]
}
FieldTypeReq.OpenS.Details
genreArray of genreNoList of genre

6.23 - 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
    }
  ]
}
FieldTypeReq.OpenS.Details
namestringYesIndex name
artistArray of ArtistNoArtist list

6.24 - 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>
FieldTypeReq.OpenS.Details
ignoredArticlesstringYesThe ignored articles
lastModifiedlongYesLast time the index was modified in milliseconds after January 1, 1970 UTC
shortcutArray of ArtistNoShortcut
childArray of ChildNoArray of children
indexArray of IndexNoIndexed artists

6.25 - 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
    }
  ]
}
FieldTypeReq.OpenS.Details
namestringYesIndex name
artistArray of ArtistNoArtist list

6.26 - 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/"
}
FieldTypeReq.OpenS.Details
idstringYesThe Id
namestringYesThe name
streamUrlstringYesThe radio url
homePageUrlstringNoGenre name

6.27 - 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"
    }
  ]
}
FieldTypeReq.OpenS.Details
internetRadioStationArray of internetRadioStationNoA list of internetRadioStation

6.28 - 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.
FieldTypeReq.OpenS.Details
yearintegerNoYesThe year
monthintegerNoYesThe month (1-12)
dayintegerNoYesThe day (1-31)

6.29 - ItemGenre

A genre returned in list of genres for an item.
{
  "name": "Noise"
}
Does not exist.
FieldTypeReq.OpenS.Details
namestringYesYesGenre name

6.30 - jukeboxPlaylist

jukeboxPlaylist.
{
  "currentIndex": 7,
  "playing": true,
  "gain": 0.9,
  "position": 67,
  "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"
    }
  ]
}
{
  "currentIndex": 7,
  "playing": true,
  "gain": 0.9,
  "position": 67,
  "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"
    }
  ]
}
FieldTypeReq.OpenS.Details
currentIndexintYesThe current index of the song being played
playingbooleanYesWhether the queue is currently playing
gainfloatYesVolume, in a range of [0.0, 1.0]
positionintNoThe current position of the track in seconds
entryArray of ChildNoThe songs currently enqueued in the jukebox

6.31 - jukeboxStatus

jukeboxStatus.
{
  "currentIndex": 7,
  "playing": true,
  "gain": 0.9,
  "position": 67
}
{
  "currentIndex": 7,
  "playing": true,
  "gain": 0.9,
  "position": 67
}
FieldTypeReq.OpenS.Details
currentIndexintYesThe current index of the song being played
playingbooleanYesWhether the queue is currently playing
gainfloatYesVolume, in a range of [0.0, 1.0]
positionintNoThe current position of the track in seconds

6.32 - 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"
}
FieldTypeReq.OpenS.Details
validbooleanYesThe status of the license
emailstringNoUser email
licenseExpiresstringNoEnd of license date. [ISO 8601]
trialExpiresstringNoEnd of trial date. [ISO 8601]

6.33 - 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.
FieldTypeReq.OpenS.Details
valuestringYesYesThe actual text of this line
startnumberNoYesThe 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.34 - 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?"
}
FieldTypeReq.OpenS.Details
valuestringYesThe lyrics
artiststringNoThe artist name
titlestringNoThe song title

6.35 - 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.
FieldTypeReq.OpenS.Details
structuredLyricsArray of structuredLyricsNoYesStructured lyrics. There can be multiple lyrics of the same type with the same language

6.36 - musicFolder

MusicFolder.
{
  "id": 4,
  "name": "upload"
}
{
  "id": 4,
  "name": "upload"
}
FieldTypeReq.OpenS.Details
idintYesThe id
namestringNoThe folder name

6.37 - musicFolders

MusicFolders.
{
  "musicFolder": [
    {
      "id": 1,
      "name": "music"
    },
    {
      "id": 4,
      "name": "upload"
    }
  ]
}
{
  "musicFolder": [
    {
      "id": 1,
      "name": "music"
    },
    {
      "id": 4,
      "name": "upload"
    }
  ]
}
FieldTypeReq.OpenS.Details
musicFolderArray of musicFolderNoThe folders

6.38 - NewestPodcasts

NewestPodcasts.
{
  "episode": [
    {
      "id": "7390",
      "parent": "7389",
      "isDir": "false",
      "title": "Jonas Gahr StΓΈre",
      "album": "NRK – Hallo P3",
      "artist": "Podcast",
      "year": "2015",
      "coverArt": "7389",
      "size": "41808585",
      "contentType": "audio/mpeg",
      "suffix": "mp3",
      "duration": "2619",
      "bitRate": "128",
      "isVideo": "false",
      "created": "2015-09-07T20:07:31.000Z",
      "artistId": "453",
      "type": "podcast",
      "streamId": "7410",
      "channelId": "17",
      "description": "Jonas Gahr StΓΈre fra Arbeiderpartiet er med i dagens partilederutspΓΈrring i Hallo P3!",
      "status": "completed",
      "publishDate": "2015-09-07T15:29:00.000Z"
    }
  ]
}
{
  "episode": [
    {
      "id": "7390",
      "parent": "7389",
      "isDir": "false",
      "title": "Jonas Gahr StΓΈre",
      "album": "NRK – Hallo P3",
      "artist": "Podcast",
      "year": "2015",
      "coverArt": "7389",
      "size": "41808585",
      "contentType": "audio/mpeg",
      "suffix": "mp3",
      "duration": "2619",
      "bitRate": "128",
      "isVideo": "false",
      "created": "2015-09-07T20:07:31.000Z",
      "artistId": "453",
      "type": "podcast",
      "streamId": "7410",
      "channelId": "17",
      "description": "Jonas Gahr StΓΈre fra Arbeiderpartiet er med i dagens partilederutspΓΈrring i Hallo P3!",
      "status": "completed",
      "publishDate": "2015-09-07T15:29:00.000Z"
    }
  ]
}
FieldTypeReq.OpenS.Details
episodeAn array of PodcastEpisodeNo

6.39 - 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
    }
  ]
}
FieldTypeReq.OpenS.Details
entryArray of NowPlayingEntryYesA list of NowPlayingEntry

6.40 - 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
}
FieldTypeReq.OpenS.Details
usernamestringYesThe username
minutesAgointegerYesLast update
playerIdintegerYesPlayer Id
playerNamestringNoPlayer name

6.41 - OpenSubsonicExtension

A supported OpenSubsonic API extension.
{
    "name": "template",
    "versions": [
        1,
        2
    ]
}
Does not exist.
FieldTypeReq.OpenS.Details
nameStringYesYesThe name of the extension.
versionsArray of intYesYesThe list of supported versions of the this extension.

6.42 - 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
}
FieldTypeReq.OpenS.Details
idstringYesId of the playlist
namestringYesName of the playlist
commentstringNoA commnet
ownerstringNoOwner of the playlist
publicbooleanNoIs the playlist public
songCountintYesnumber of songs
durationintYesPlaylist duration in seconds
createdstringYesCreation date [ISO 8601]
changedstringYesLast changed date [ISO 8601]
coverArtstringNoA cover Art Id
allowedUserArray of stringNoA list of allowed usernames

6.43 - 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
    }
  ]
}
FieldTypeReq.OpenS.Details
playlistArray of playlistNoA list of playlist

6.44 - 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"
    }
  ]
}
FieldTypeReq.OpenS.Details
idstringYesId of the playlist
namestringYesName of the playlist
commentstringNoA commnet
ownerstringNoOwner of the playlist
publicbooleanNoIs the playlist public
songCountintYesnumber of songs
durationintYesPlaylist duration in seconds
createdstringYesCreation date [ISO 8601]
changedstringYesLast changed date [ISO 8601]
coverArtstringNoA cover Art Id
allowedUserArray of stringNoA list of allowed usernames
entryArray of ChildNoThe list of songs

6.45 - PlayQueue

NowPlayingEntry.
{
  "current": "1234",
  "position": 1000,
  "username": "user",
  "changed": "2023-03-10T02:19:35.784818075Z",
  "changedBy": "example client",
  "entry": [
    {
      "id": "1234",
      "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": "1234",
      "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"
    }
  ]
}
{
  "current": "1234",
  "position": 1000,
  "username": "user",
  "changed": "2023-03-10T02:19:35.784818075Z",
  "changedBy": "example client",
  "entry": [
    {
      "id": "1234",
      "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": "1234",
      "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"
    }
  ]
}
FieldTypeReq.OpenS.Details
currentstringNoID of currently playing track
positionlongNoPosition in milliseconds of currently playing track
usernamestringYesThe user this queue belongs to
changedstringYesDate modified [ISO 8601]
changedBystringYesName of client app
entryArray of ChildNoThe list of songs in the queue

6.46 - PlayQueueByIndex

NowPlayingEntry, with index-based positioning.
{
  "currentIndex": 0,
  "position": 1000,
  "username": "user",
  "changed": "2023-03-10T02:19:35.784818075Z",
  "changedBy": "example client",
  "entry": [
    {
      "id": "1234",
      "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": "1234",
      "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"
    }
  ]
}
Does not exist.
FieldTypeReq.OpenS.Details
currentIndexlongNoThe 0-based index of the current playing track
positionlongNoPosition in milliseconds of currently playing track
usernamestringYesThe user this queue belongs to
changedstringYesDate modified [ISO 8601]
changedBystringYesName of client app
entryArray of ChildNoThe list of songs in the queue

6.47 - PodcastChannel

A Podcast channel.
{
  "channel": {
    "id": "1",
    "url": "http://downloads.bbc.co.uk/podcasts/fivelive/drkarl/rss.xml",
    "title": "Dr Karl and the Naked Scientist",
    "description": "Dr Chris Smith aka The Naked Scientist with the latest news from the world of science and Dr Karl answers listeners' science questions.",
    "coverArt": "pod-1",
    "originalImageUrl": "http://downloads.bbc.co.uk/podcasts/fivelive/drkarl/drkarl.jpg",
    "status": "completed",
    "episode": [
      {
        "id": "34",
        "streamId": "523",
        "channelId": "1",
        "title": "Scorpions have re-evolved eyes",
        "description": "This week Dr Chris fills us in on the UK's largest free science festival, plus all this week's big scientific discoveries.",
        "publishDate": "2011-02-03T14:46:43",
        "status": "completed",
        "parent": "11",
        "isDir": "false",
        "year": "2011",
        "genre": "Podcast",
        "coverArt": "24",
        "size": "78421341",
        "contentType": "audio/mpeg",
        "suffix": "mp3",
        "duration": "3146",
        "bitRate": "128",
        "path": "Podcast/drkarl/20110203.mp3"
      }
    ]
  }
}
{
  "channel": {
    "id": "1",
    "url": "http://downloads.bbc.co.uk/podcasts/fivelive/drkarl/rss.xml",
    "title": "Dr Karl and the Naked Scientist",
    "description": "Dr Chris Smith aka The Naked Scientist with the latest news from the world of science and Dr Karl answers listeners' science questions.",
    "coverArt": "pod-1",
    "originalImageUrl": "http://downloads.bbc.co.uk/podcasts/fivelive/drkarl/drkarl.jpg",
    "status": "completed",
    "episode": [
      {
        "id": "34",
        "streamId": "523",
        "channelId": "1",
        "title": "Scorpions have re-evolved eyes",
        "description": "This week Dr Chris fills us in on the UK's largest free science festival, plus all this week's big scientific discoveries.",
        "publishDate": "2011-02-03T14:46:43",
        "status": "completed",
        "parent": "11",
        "isDir": "false",
        "year": "2011",
        "genre": "Podcast",
        "coverArt": "24",
        "size": "78421341",
        "contentType": "audio/mpeg",
        "suffix": "mp3",
        "duration": "3146",
        "bitRate": "128",
        "path": "Podcast/drkarl/20110203.mp3"
      }
    ]
  }
}
FieldTypeReq.OpenS.Details
idstringYesThe channel ID
urlstringYesPodcast channel URL
titlestringNoThe channel title
descriptionstringNoThe channel description
coverArtstringNoID used for retrieving cover art
originalImageUrlstringNoURL for original image of podcast channel
statusPodcastStatusYesChannel status
errorMessagestringNoAn error message
episodeAn array of PodcastEpisodeNoPodcast episodes with this channel

6.48 - PodcastEpisode

A Podcast episode.
{
  "id": "7390",
  "parent": "7389",
  "isDir": "false",
  "title": "Jonas Gahr StΓΈre",
  "album": "NRK – Hallo P3",
  "artist": "Podcast",
  "year": "2015",
  "coverArt": "7389",
  "size": "41808585",
  "contentType": "audio/mpeg",
  "suffix": "mp3",
  "duration": "2619",
  "bitRate": "128",
  "isVideo": "false",
  "created": "2015-09-07T20:07:31.000Z",
  "artistId": "453",
  "type": "podcast",
  "streamId": "7410",
  "channelId": "17",
  "description": "Jonas Gahr StΓΈre fra Arbeiderpartiet er med i dagens partilederutspΓΈrring i Hallo P3!",
  "status": "completed",
  "publishDate": "2015-09-07T15:29:00.000Z"
}
{
  "id": "7390",
  "parent": "7389",
  "isDir": "false",
  "title": "Jonas Gahr StΓΈre",
  "album": "NRK – Hallo P3",
  "artist": "Podcast",
  "year": "2015",
  "coverArt": "7389",
  "size": "41808585",
  "contentType": "audio/mpeg",
  "suffix": "mp3",
  "duration": "2619",
  "bitRate": "128",
  "isVideo": "false",
  "created": "2015-09-07T20:07:31.000Z",
  "artistId": "453",
  "type": "podcast",
  "streamId": "7410",
  "channelId": "17",
  "description": "Jonas Gahr StΓΈre fra Arbeiderpartiet er med i dagens partilederutspΓΈrring i Hallo P3!",
  "status": "completed",
  "publishDate": "2015-09-07T15:29:00.000Z"
}
FieldTypeReq.OpenS.Details
streamIdstringNoID used for streaming podcast
channelIdstringYesID of the podcast channel
descriptionstringNoEpisode description
statusPodcastStatusYesPodcast status
publishDatestringNoDate the episode was published [ISO 8601]

6.49 - podcasts

Podcasts.
{
  "channel": [
    {
      "id": "7390",
      "parent": "7389",
      "isDir": "false",
      "title": "Jonas Gahr StΓΈre",
      "album": "NRK – Hallo P3",
      "artist": "Podcast",
      "year": "2015",
      "coverArt": "7389",
      "size": "41808585",
      "contentType": "audio/mpeg",
      "suffix": "mp3",
      "duration": "2619",
      "bitRate": "128",
      "isVideo": "false",
      "created": "2015-09-07T20:07:31.000Z",
      "artistId": "453",
      "type": "podcast",
      "streamId": "7410",
      "channelId": "17",
      "description": "Jonas Gahr StΓΈre fra Arbeiderpartiet er med i dagens partilederutspΓΈrring i Hallo P3!",
      "status": "completed",
      "publishDate": "2015-09-07T15:29:00.000Z"
    },
    {
      "id": "3",
      "url": "https://example.com/404",
      "status": "error",
      "errorMessage": "Not Found"
    }
  ]
}
{
  "channel": [
    {
      "id": "7390",
      "parent": "7389",
      "isDir": "false",
      "title": "Jonas Gahr StΓΈre",
      "album": "NRK – Hallo P3",
      "artist": "Podcast",
      "year": "2015",
      "coverArt": "7389",
      "size": "41808585",
      "contentType": "audio/mpeg",
      "suffix": "mp3",
      "duration": "2619",
      "bitRate": "128",
      "isVideo": "false",
      "created": "2015-09-07T20:07:31.000Z",
      "artistId": "453",
      "type": "podcast",
      "streamId": "7410",
      "channelId": "17",
      "description": "Jonas Gahr StΓΈre fra Arbeiderpartiet er med i dagens partilederutspΓΈrring i Hallo P3!",
      "status": "completed",
      "publishDate": "2015-09-07T15:29:00.000Z"
    },
    {
      "id": "3",
      "url": "https://example.com/404",
      "status": "error",
      "errorMessage": "notFound"
    }
  ]
}
FieldTypeReq.OpenS.Details
channelAn array of PodcastChannelNoPodcast channel(s)

6.50 - PodcastStatus

An enumeration of possible podcast statuses.

A podcast status is a string type taking one of the following values:

  • new
  • downloading
  • completed
  • error
  • deleted
  • skipped

6.51 - RecordLabel

A record label for an album.
{
  "name": "Sony"
}
Does not exist.
FieldTypeReq.OpenS.Details
namestringYesYesThe record label name.

6.52 - 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.
FieldTypeReq.OpenS.Details
trackGainnumberNoYesThe track replay gain value. (In Db)
albumGainnumberNoYesThe album replay gain value. (In Db)
trackPeaknumberNoYesThe track peak value. (Must be positive)
albumPeaknumberNoYesThe album peak value. (Must be positive)
baseGainnumberNoYesThe base gain value. (In Db) (Ogg Opus Output Gain for example)
fallbackGainnumberNoYesAn 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.53 - scanStatus

Scan status information.
{
  "scanning": false,
  "count": 0
}
{
  "scanning": false,
  "count": 0
}
FieldTypeReq.OpenS.Details
scanningbooleanYesThe status of the scan
countintNoScanned item count

6.54 - searchResult

searchResult.
// TODO
// TODO
FieldTypeReq.OpenS.Details

6.55 - searchResult2

searchResult2.
{
  "artist": [
    {
      "id": "100000002",
      "name": "Synthetic",
      "coverArt": "ar-100000002",
      "starred": "2021-02-22T05:54:18Z"
    }
  ],
  "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": "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
    }
  ]
}
{
  "artist": [
    {
      "id": "100000002",
      "name": "Synthetic",
      "coverArt": "ar-100000002",
      "starred": "2021-02-22T05:54:18Z"
    }
  ],
  "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": "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
    }
  ]
}
FieldTypeReq.OpenS.Details
artistArray of ArtistNoStarred artists
albumArray of ChildNoStarred albums
songArray of ChildNoStarred songs

6.56 - 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
    }
  ]
}
FieldTypeReq.OpenS.Details
artistArray of ArtistID3NoMatching artists
albumArray of AlbumID3NoMatching albums
songArray of ChildNoMatching songs

6.57 - 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"
    }
  ]
}
FieldTypeReq.OpenS.Details
idstringYesThe share Id
urlstringYesThe share url
descriptionstringNoA description
usernamestringYesThe username
createdstringYesCreation date [ISO 8601]
expiresstringNoShare expiration [ISO 8601]
lastVisitedstringNoLast visit [ISO 8601]
visitCountintYesVisit count
entryArray of ChildNoA list of share

6.58 - 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"
        }
      ]
    }
  ]
}
FieldTypeReq.OpenS.Details
shareArray of shareNoA list of share

6.59 - 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"
    }
  ]
}
FieldTypeReq.OpenS.Details
songArray of ChildNoList of songs

6.60 - 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"
    }
  ]
}
FieldTypeReq.OpenS.Details
songArray of ChildNoList of songs

6.61 - song

song.
// TODO
// TODO
FieldTypeReq.OpenS.Details

6.62 - songs

Songs 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"
    }
  ]
}
FieldTypeReq.OpenS.Details
songArray of ChildNoList of songs

6.63 - starred

starred.
{
  "artist": [
    {
      "id": "100000002",
      "name": "Synthetic",
      "coverArt": "ar-100000002",
      "starred": "2021-02-22T05:54:18Z"
    }
  ],
  "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": "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
    }
  ]
}
{
  "artist": [
    {
      "id": "100000002",
      "name": "Synthetic",
      "coverArt": "ar-100000002",
      "starred": "2021-02-22T05:54:18Z"
    }
  ],
  "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": "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
    }
  ]
}
FieldTypeReq.OpenS.Details
artistArray of ArtistNoStarred artists
albumArray of ChildNoStarred albums
songArray of ChildNoStarred songs

6.64 - starred2

starred2.
{
  "artist": [
    {
      "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"
    }
  ],
  "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,
      "genre": "Hip-Hop",
      "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,
      "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",
      "starred": "2017-04-11T10:42:50.842Z"
    }
  ],
  "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,
      "genre": "Hip-Hop",
      "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,
      "discNumber": 1,
      "created": "2023-03-14T17:51:22.112827504Z",
      "albumId": "e8a0685e3f3ec6f251649af2b58b8617",
      "artistId": "97e0398acf63f9fb930d7d4ce209a52b",
      "type": "music",
      "isVideo": false
    }
  ]
}
FieldTypeReq.OpenS.Details
artistArray of artistNoStarred artists
albumArray of ChildNoStarred albums
songArray of ChildNoStarred songs

6.65 - 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.
FieldTypeReq.OpenS.Details
langstringYesYesThe 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)
syncedbooleanYesYesTrue if the lyrics are synced, false otherwise
lineArray of lineYesYesThe actual lyrics. Ordered by start time (synced) or appearance order (unsynced)
displayArtiststringNoYesThe artist name to display. This could be the localized name, or any other value
displayTitlestringNoYesThe title to display. This could be the song title (localized), or any other value
offsetnumberNoYesThe 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.66 - 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"
  }
}
FieldTypeReq.OpenS.Details
statusstringYesThe command result. ok or failed
versionstringYesThe server supported Subsonic API version.
typestringYesYesThe server actual name. [Ex: Navidrome or gonic]
serverVersionstringYesYesThe server actual version. [Ex: 1.2.3 (beta)]
openSubsonicbooleanYesYesMust return true if the server support OpenSubsonic API v1
errorerrorNoThe error details when status is failed

6.67 - tokenInfo

Information about an API key.
{
  "tokenInfo": {
    "username": "token username"
  }
}
<tokenInfo username="token username"></tokenInfo>
Does not exist.
FieldTypeReq.OpenS.Details
usernamestringYesYesUsername associated with token

6.68 - 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"
    }
  ]
}
FieldTypeReq.OpenS.Details
songArray of ChildNoList of songs

6.69 - user

user.
{
  "folder": [
    "1",
    "3"
  ],
  "username": "sindre",
  "email": "sindre@activeobjects.no",
  "scrobblingEnabled": "true",
  "adminRole": "false",
  "settingsRole": "true",
  "downloadRole": "true",
  "uploadRole": "false",
  "playlistRole": "true",
  "coverArtRole": "true",
  "commentRole": "true",
  "podcastRole": "true",
  "streamRole": "true",
  "jukeboxRole": "true",
  "shareRole": "false"
}
{
  "folder": [
    "1",
    "3"
  ],
  "username": "sindre",
  "email": "sindre@activeobjects.no",
  "scrobblingEnabled": "true",
  "adminRole": "false",
  "settingsRole": "true",
  "downloadRole": "true",
  "uploadRole": "false",
  "playlistRole": "true",
  "coverArtRole": "true",
  "commentRole": "true",
  "podcastRole": "true",
  "streamRole": "true",
  "jukeboxRole": "true",
  "shareRole": "false"
}
FieldTypeReq.OpenS.Details
usernamestringYesUsername
scrobblingEnabledbooleanYesWhether scrobling is enabled for the user
maxBitRateintNo
adminRolebooleanYesWhether the user is an admin
settingsRolebooleanYesWhether the user is can edit settings
downloadRolebooleanYesWhether the user can download
uploadRolebooleanYesWhether the user can upload
playlistRolebooleanYesWhether the user can create playlists
coverArtRolebooleanYesWhether the user can get cover art
commentRolebooleanYesWhether the user can create comments
podcastRolebooleanYesWhether the user can create/refresh podcasts
streamRolebooleanYesWhether the user can stream
jukeboxRolebooleanYesWhether the user can control the jukebox
shareRolebooleanYesWhether the user can create a stream
videoConversionRolebooleanYesWhether the user can convert videos
avatarLastChangedstringNoLast time the avatar was changed [ISO 8601]
folderArray of intNoFolder ID(s)

6.70 - users

users.
{
  "user": [
    {
      "folder": [
          "1",
          "3"
      ],
      "username": "sindre",
      "email": "sindre@activeobjects.no",
      "scrobblingEnabled": "true",
      "adminRole": "false",
      "settingsRole": "true",
      "downloadRole": "true",
      "uploadRole": "false",
      "playlistRole": "true",
      "coverArtRole": "true",
      "commentRole": "true",
      "podcastRole": "true",
      "streamRole": "true",
      "jukeboxRole": "true",
      "shareRole": "false"
    }
  ]
}
{
  "user": [
    {
      "folder": [
          "1",
          "3"
      ],
      "username": "sindre",
      "email": "sindre@activeobjects.no",
      "scrobblingEnabled": "true",
      "adminRole": "false",
      "settingsRole": "true",
      "downloadRole": "true",
      "uploadRole": "false",
      "playlistRole": "true",
      "coverArtRole": "true",
      "commentRole": "true",
      "podcastRole": "true",
      "streamRole": "true",
      "jukeboxRole": "true",
      "shareRole": "false"
    }
  ]
}
FieldTypeReq.OpenS.Details
userArray of userNoArray of users

6.71 - videoInfo

videoInfo.
// TODO
// TODO
FieldTypeReq.OpenS.Details

6.72 - videos

videos.
// TODO
// TODO
FieldTypeReq.OpenS.Details

7 - OpenSubsonic API versions

OpenSubsonic API versions.

Versions

This table shows the supported extensions by OpenSubsonic versions:

OpenSubsonic versionSupported extension
1Template 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 versionREST API version
6.1.41.16.1
6.1.21.16.0
6.11.15.0
6.01.14.0
5.31.13.0
5.21.12.0
5.11.11.0
4.91.10.2
4.81.9.0
4.71.8.0
4.61.7.0
4.51.6.0
4.41.5.0
4.21.4.0
4.11.3.0
4.01.2.0
3.91.1.1
3.81.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.

9 - OpenAPI schema

OpenAPI schema documentation and development guidelines.

Can be found here Only relevant to OpenSubsonic servers.

List of known differences compared to official documentation

  • Some undocumented typo fixes
  • Added minimum: 0 to integer types where it’s implied (count, offset, unix timestamp, position)
  • Requires the use of format=json parameter. xml response formats are not supported as of the time of writing this document.
  • All extensions are added to the schema and tagged as “Extension”, and have an additional 404 return type as well that described as “Not Implemented”
  • Excluded examples. They need to be carefully added incrementally to see how they are merged in Swagger/Redoc docs.
  • Parameters only existing via Extensions are always added and marked in their description field
  • HTTP form POST extensions have an additional response “405 - Method Not Allowed” as an additional way to indicate when they are not supported. - HTTP form POST extension support might be stricter than what’s allowed (global params - auth and format params - only allowed as query params, endpoint specific params are the only ones allowed in request body)

Building

By default the schema is in parts to for easier maintainability. You can build it with the command below.

npm run build:openapi

This will output the schema to content/en/docs/Openapi/openapi.json and also validate the output for correctness. The end result can be used as-is.

Preservation of previous versions

When a version change happens in the spec, the previous versions’ built openapi.json should be placed into content/en/docs/Openapi/openapi-x.x.x.json for archiving purposes.

Usage

Ideally this should be used as a reference and for automatic client/server code generation.

Client Code Generation

Python

Typescript

Kotlin

Dart

C#

Server Code Generation

🚧 Not Tested

Development

When the documentation is changed the OpenAPI schema MUST BE updated in openapi folder and vice-versa.

Folder Structure

  • endpoints - matches paths section in openapi.json, files inside should be added to said section.

  • endpoints/{endpoint}.json/{endpoint}/ - supporting schemas for en endpoint, should be added to components/schemas section in openapi.json

  • responses - matches components/responses section in openapi.json and files inside should be added to said section.

  • schemas - matches components/schemas section in openapi.json and files inside should be added to said section.

Schema validation during development

The fragmented files are not validated in dev environments, so one of 2 ways are recommended when editing.

  • Edit/add files. Keep building the output to static/openapi.json and keep it open to catch errors.

  • Add new endpoints/schemas to openapi/openapi.json directly. Move them to different files when you are done with them.

In the future $schema tag could be added to each of them to make in-editor validation work but that requires the relevant parts of OpenAPI schema to be served from somewhere in a broken up form - you can add "$schema": "https://schemas.sourcemeta.com/openapi/v3.0/schema.json" but you can’t add "$schema": "https://schemas.sourcemeta.com/openapi/v3.0/schema.json#definitions/Schema"

9.1 - OpenAPI OpenSubsonic Swagger UI

Reference for the OpenSubsonic API

9.2 - OpenAPI OpenSubsonic Redoc UI

Reference for the OpenSubsonic API