API Changelog
API 6.9.0
This version is being released for Ampache7 only
Added
- ALL
- Support POST requests for all methods
 
 
Fixed
- ALL
- Localplay methods might not complete when pulling status from missing controllers
 
 
API 6.8.0
This version is being released for Ampache7 only
Added
- ALL
- Support regular handshake and ping actions with a Bearer Token
 
 - API6
- New Method: search_rules (Get a list of valid search rules per search type)
 - user_playlists: Add include parameter to get song data
 - user_smartlists: Add include parameter to get song data
 - toggle_follow: Return errors when the users aren't found
 - deprecation warnings from tag methods in the main API handler
 
 - API5
- toggle_follow: Return errors when the users aren't found
 
 
Changed
- API6
- browse: don't require 
catalogwhen browsing acatalog 
 - browse: don't require 
 
Fixed
- ALL
- user_update: incorrect parameter check for 
filterinstead ofusername - get_indexes: XML data may generate extra root elements
 - user_create: validate 
disablebool with make_bool - playlists: validate 
show_dupesbool with make_bool - get_bookmark: validate 
includeandallbools with make_bool - flag: validate 
includebool with make_bool - bookmarks: validate 
includebool with make_bool - bookmark: validate 
includebool with make_bool - bookmark_create: validate 
includebool with make_bool - bookmark_edit: validate 
includebool with make_bool API6 albumandalbumsinclude didn't always work correctlyartistandartistsinclude fixes API5- user_edit: incorrect parameter check for 
filterinstead ofusername - bookmark: Bookmark is a valid 
typeAPI3 - genres: fallback function missing
 - genre: fallback function missing
 - genre_songs: fallback function missing
 - genre_artists: fallback function missing
 - genre_albums: fallback function missing
 
 - user_update: incorrect parameter check for 
 
API 6.7.3
This version is being released for Ampache7 only
Added
- API6
- Add mbid_group to 
albumdata responses 
 - Add mbid_group to 
 
Fixed
- ALL
- handshake: Check if auth is sent as a valid session and don't try to create a new one
 
 
API 6.7.2
This version is being released for Ampache7 only
Changed
- Header auth using a bearer token will return valid sessions on handshake and ping
 - Header auth for other methods will hide the session behind an MD5 hash of the username (previous behaviour)
 
API 6.7.1
This version is being released for Ampache7 only
Added
- API6
- get_art: Extend 
typeparameter to include 'label', 'live_stream', 'search', 'user', 'video' 
 - get_art: Extend 
 
API 6.7.0
This version is being released for Ampache7 only
Added
- API6
- New Method: song_tags (Read and return all file and enabled plugin tags for the song)
 - get_art: return error 404 on bad size dimensions
 
 
Changed
- ALL
- localplay will not clear mpd playlists when stopped if 
clear=0 - Ensure lowercase parameters are set on localplay calls
 
 - localplay will not clear mpd playlists when stopped if 
 
Fixed
- ALL
- get_art: Correctly size and scale art responses
 
 - API6
- catalog_add: typing for adding beets catalog
 
 
API 6.6.8
This version is being released for Ampache7 only
This is a massive update to the code typing and backend quality without changing function.
Changed
- ALL
- Typed parameters, properties and arrays for all API versions
 - Ensure nullable input is allowed to be null in the code
 - Make sure size dimensions for 
get_artcalls are valid and split correctly 
 - API6
- Empty results on 
listcalls will send an empty response 
 - Empty results on 
 - API5
playlist_generatewithflagnot checking valuecatalog_filecatch exception on add_file error
 
Fixed
- ALL
- Democratic methods vote array not correct in all cases
 
 
API 6.6.7
This version is being released for Ampache7 only
Added
- API6
- get_external_metadata: Get metadata from external plugins. (Useful for scripting)
 - Add 
is_hiddenstatus andmergegenres into genre data objects 
 
Changed
- ALL
- stats: Allow 
limit-1 for no limit. (0 falls back topopular_thresholdvalue) 
 - stats: Allow 
 - API6
- user_preference
- Add 
has_accessto show whether you can change the preference - Add 
valuesto the response for allspecialpreferences 
 - Add 
 - user_preferences
- Add 
has_accessto show whether you can change the preference - Add 
valuesto the response for allspecialpreferences 
 - Add 
 - system_preference
- Add 
has_accessto show whether you can change the preference - Add 
valuesto the response for allspecialpreferences 
 - Add 
 - system_preferences
- Add 
has_accessto show whether you can change the preference - Add 
valuesto the response for allspecialpreferences 
 - Add 
 
 - user_preference
 
Fixed
- XML
- Index keyed_array data on int indexed arrays
 
 
API 6.6.6
Fixed
- ALL
- Not checking auth on User lookup
 
 
API 6.6.5
Merge update from Ampache7.
Added
- Search
- Add 
disk_countto Album & AlbumDisk search types - Add 
no_licenseto Song search 
 - Add 
 
Fixed
- API6
- handshake: Downgrade version 7 calls to 6
 - get_indexes: Respect 'api_hidden_playlists'
 - index: Respect 'api_hidden_playlists'
 - list: Respect 'api_hidden_playlists'
 - playlists: Respect 'api_hidden_playlists'
 
 - API5
- get_indexes: Respect 'api_hidden_playlists'
 - playlists: Respect 'api_hidden_playlists'
 
 
API 6.6.4
Merge update from Ampache7.
This update has counting updates to allow faster responses on larger results
Added
- API6
- Use set_count function on data classes to speed up counting response totals
 - Validate 
websiteforuser_edit - Use split search for search methods
- advanced_search / search
 - search_songs
 - user_update
 - playlist_generate
 
 
 - API5
- Use split search for search methods
- advanced_search
 - search_songs
 - user_update
 - playlist_generate
 
 
 - Use split search for search methods
 - API4
- Use split search for search methods
- advanced_search
 - search_songs
 - user_update
 - playlist_generate
 
 
 - Use split search for search methods
 - API3
- Use split search for search methods
- advanced_search
 - search_songs
 
 
 - Use split search for search methods
 
Changed
- Rename API-CHANGELOG.md => CHANGELOG-API.md
 
API 6.6.3
NO CHANGE
API 6.6.2
Added
- API6
- Add 
statsparameter to stream and download methods (If false disable stat recording when playing the object) - Respect 
api_always_downloadin stream and download methods - Add sorting to stats calls
 - add 
userobject to playlist responses (owner of the playlist) 
 - Add 
 
Fixed
- ALL
- index: Artist index not showing albums
 
 
API 6.6.1
This release keeps parity between Ampache7 releases by backporting the updated code.
Added
- API6
- Add maximum ID properties to 
handshakeandping(with auth) responses for media typesmax_song,max_album,max_artist,max_video,max_podcast,max_podcast_episode
 - flag: add 
dateas a parameter (set the time for your flag) 
 - Add maximum ID properties to 
 
Changed
- lost_password: deny access in simple_user_mode
 
API 6.6.0
Like with total_count, we've added an md5sum of the results (called md5) in responses
This is useful for recording whether you need to update or change results.
Inconsistency with the return of object arrays and single items have been fixed and docs updated.
Added
- ALL
- Track user IP on handshake and ping calls
 - playlist_edit: separate error when the playlist doesn't exist
 
 - API6
- New Method: playlist_hash (Get the MD5 hash of the playlist without getting the whole object)
 - Add 
md5to responses. (Hash objects in the response before slicing and limiting) - Add 
md5property to playlist objects. (Hash of song objects in the response) - Add 
usernameproperty to handshake and ping (with auth) responses to workaround missing usernames in token auth - Add 
has_accessproperty to playlist objects. (Can edit the playlist if true) - Add 
has_collaborateproperty to playlist objects. (Can add and remove songs to the playlist if true) - Add 
last_updateproperty to playlist objects. (Time a playlist changed. Smartplaylists do not change based on returned songs) - Add 
object_typeandobject_idproperty to shout objects 
 
Changed
- API6
- playlist_edit: Add songs if you're a collaborator and ignore edit parameters if you fail has_access check
 - catalog_add: Do not return an object. (We return a single item)
 - bookmark_create: Do not return an object. (We return a single item)
 
 
Fixed
- ALL
- User preferences were not initiated and the server preferences would overwrite differences
 - Api::set_user_id function sending an int instead of a user
 - Some responses that include users not checking the user is valid
 
 - API6
- JSON: Send empty array for missing single item methods
 - lost_password: function name incorrect
 - flag: id smartplaylists correctly
 - rate: id smartplaylists correctly
 - albums: Browse user may not be set
 - podcast_episodes: Browse user may not be set
 
 
API 6.5.0
Added
- API6
- Add 
songartiststo all album data responses. (In an albumartists=album_artists,songartists=song_artists) - artist_albums: add 
album_artistas an optional parameter - get_indexes: add 
catalog,album_artistandsong_artistas possibletypevalues - list: add 
catalogandsong_artistas possibletypevalues - Add 
condandsortparameters to browse methods- album_songs
 - albums
 - artist_albums
 - artist_songs
 - artists
 - browse
 - catalogs
 - followers
 - genre_albums
 - genre_artists
 - genre_songs
 - genres
 - get_indexes
 - index
 - label_artists
 - labels
 - license_songs
 - licenses
 - list
 - live_streams
 - playlists
 - podcasts
 - podcast_episodes
 - shares
 - songs
 - user_playlists
 - user_smartlists
 
 
 - Add 
 
Changed
- Reset any existing browse when calling Api::getBrowse()
 - Filter duplicate search names outside of the data classes and filter on browses
 - API6 methods converted to Browse
- artist_albums
 - artist_songs
 - browse (
catalogtypes) - catalogs
 - followers
 - genre_albums
 - genre_artists
 - genre_songs
 - get_indexes (
catalogandplaylisttypes) - index (
catalogandplaylisttypes) - label_artists
 - license_songs
 - list (
playlisttypes) - playlists
 - podcast_episodes
 - stats (random 
playlisttypes) - user_playlists
 - user_smartlists
 
 - API5 methods converted to Browse
- get_indexes (
playlisttypes) - playlists
 - stats (random 
playlisttypes) 
 - get_indexes (
 - API4 methods converted to Browse
- get_indexes (
playlisttypes) - playlists
 
 - get_indexes (
 
Fixed
- ALL
- html_entity_decode 
include,itemsandtracksparameter for applicable methods - Rating and flag data for smartlists was using incorrect id
 - playlist_edit: track insert broken by removing table constraint
 - playlist_edit: workaround sending owner username instead of ID
 - playlist_add_song: When using 
unique_playlistdon't grab the whole playlist 
 - html_entity_decode 
 - API6
- list: sorting was by 
idinstead ofname - browse: sorting was by 
idinstead ofname - download: The API can use searches as playlists so check for the 
smart_prefix - stream: The API can use searches as playlists so check for the 
smart_prefix - Respect album sort preferences in all album object responses
 
 - list: sorting was by