API Reference

Activity

MethodPathActionDescription
GET/api/activity/historyhistoryGet the authenticated user's activity history (paginated).
POST/api/activity/playplayRecord a play event for a song.
POST/api/activity/love/{publicId}loveToggle love on an activity.
GET/api/activity/lovedlovedGet the authenticated user's loved items.

Auth

MethodPathActionDescription
POST/api/auth/registerregister
POST/api/auth/logoutlogout
POST/api/auth/refreshrefresh
POST/api/auth/password/reset-requestrequestPasswordReset
GET/api/auth/meme
PUT/api/auth/meupdateMe
POST/api/auth/email/verifyverifyEmail
POST/api/auth/passkey/optionsregistrationOptions
POST/api/auth/passkey/registerregister
POST/api/auth/passkey/authenticate/optionsauthenticationOptions
POST/api/auth/passkey/authenticateauthenticate
DELETE/api/auth/passkey/{publicId}delete
GET/.well-known/jwks.json__invoke
GET/.well-known/oauth-authorization-server__invoke
POST/api/auth/login__invoke
GET/api/oauth/clients/index
POST/api/oauth/clients/create
DELETE/api/oauth/clients/{publicId}revoke
POST/api/auth/totp/setupsetup
POST/api/auth/totp/enableenable
POST/api/auth/totp/disabledisable
POST/api/auth/login/passkey__invoke
GET, POST/api/oauth/authorizeauthorize
POST/api/oauth/tokentoken
POST/api/oauth/revokerevoke
POST/api/oauth/introspectintrospect
POST/api/oauth/device/authorizedeviceAuthorize
GET/api/oauth/device/verifydeviceVerify
POST/api/oauth/device/approvedeviceApprove

Catalog

MethodPathActionDescription
POST/api/albums/covers/extract__invoke
POST/api/albums/{publicId}/coverupload
DELETE/api/albums/{publicId}/coverdelete
GET/api/movies/indexList movies (paginated).
GET/api/movies/{publicId}showGet a single movie.
PATCH/api/movies/{publicId}updateUpdate a movie.
DELETE/api/movies/{publicId}destroyDelete a movie.
GET/api/genres/indexList all genres (flat list, no pagination).
GET/api/genres/{slug}showGet a single genre with its children.
PATCH/api/genres/{slug}updateUpdate a genre.
DELETE/api/genres/{slug}destroyDelete a genre.
GET/api/songs/indexList/search songs (cursor-paginated).
GET/api/songs/{publicId}showGet a single song.
PATCH/api/songs/{publicId}updateUpdate a song.
DELETE/api/songs/{publicId}destroyDelete a song.
GET/api/albums/indexList albums (paginated).
GET/api/albums/{publicId}showGet a single album with its songs.
PATCH/api/albums/{publicId}updateUpdate an album.
DELETE/api/albums/{publicId}destroyDelete an album.
GET/api/artists/indexList/search artists (paginated).
GET/api/artists/{publicId}showGet a single artist.
PATCH/api/artists/{publicId}updateUpdate an artist.
DELETE/api/artists/{publicId}destroyDelete an artist.

Library

MethodPathActionDescription
GET/api/librariesindex
POST/api/librariesstore
GET/api/libraries/{id}show
PATCH/api/libraries/{id}update
DELETE/api/libraries/{id}destroy

Media

MethodPathActionDescription
GET/api/stream/trackstreamByIdStream a track by its PublicId with HTTP Range (206) support.
GET/api/stream/mediastreamStream a media file by path with HTTP Range (206) support.
GET/api/images/{publicId}show
GET/api/images/{publicId}/filefile
GET/api/images/{publicId}/blurhashblurhash

Metadata

MethodPathActionDescription
POST/api/metadata/extractextract
POST/api/metadata/matchmatch
GET/api/metadata/browse/artist/{mbid}artist
GET/api/metadata/browse/release-group/{mbid}releaseGroup
GET/api/metadata/search/artistsearchArtist
GET/api/metadata/search/albumsearchAlbum
GET/api/metadata/search/songsearchSong

Notification

MethodPathActionDescription
GET/api/notifications/indexList authenticated user's notifications.
GET/api/notifications/unread-countunreadCountGet unread notification count.
PATCH/api/notifications/{publicId}/readmarkReadMark a single notification as read.
PATCH/api/notifications/read-allmarkAllReadMark all notifications as read.
DELETE/api/notifications/{publicId}deleteDelete a notification.
POST/api/push/subscribesubscribeSubscribe to browser push notifications.
DELETE/api/push/subscribeunsubscribeUnsubscribe from push notifications by endpoint.
DELETE/api/push/subscriptionsremoveAllRemove all push subscriptions for the authenticated user.
GET/api/webhooks/indexList all configured webhooks.
POST/api/webhooks/createCreate a new webhook.
PUT/api/webhooks/{id}updateUpdate a webhook's URL and/or category filter.
DELETE/api/webhooks/{id}deleteDelete a webhook.
GET/api/notifications/preferences/indexGet all notification preferences for the authenticated user.
PUT/api/notifications/preferences/updateBatch update notification preferences.

Party

MethodPathActionDescription
GET/api/party/sessions/{uuid}/members/index
PATCH/api/party/sessions/{uuid}/members/meupdateMe
POST/api/party/sessions/{uuid}/members/transfer-hosttransferHost
GET/ws/party/{sessionPublicId}/info
POST/api/party/sessions/create
GET/api/party/sessions/index
GET/api/party/sessions/{uuid}show
POST/api/party/sessions/{uuid}/joinjoin
POST/api/party/sessions/{uuid}/leaveleave
POST/api/party/sessions/{uuid}/syncsync
DELETE/api/party/sessions/{uuid}end

Playlist

MethodPathActionDescription
GET/api/playlists/indexList playlists belonging to the authenticated user.
POST/api/playlists/storeCreate a new playlist.
GET/api/playlists/{publicId}showGet a single playlist with its songs.
PATCH/api/playlists/{publicId}updateUpdate playlist metadata.
DELETE/api/playlists/{publicId}destroyDelete a playlist.
POST/api/playlists/{publicId}/songsaddSongAdd a song to a playlist.
DELETE/api/playlists/{publicId}/songs/{songId}removeSongRemove a song from a playlist.
POST/api/playlists/{publicId}/reorderreorderReorder songs in a playlist.

Recommendation

MethodPathActionDescription
GET/api/recommendations/indexGet personalized recommendations for the authenticated user.
GET/api/recommendations/source/{sourceType}/{sourceId}bySourceGet recommendations for a source entity.
GET/api/recommendations/targeting/{targetType}/{targetId}targetingGet recommendations targeting an entity.
POST/api/recommendations/storeCreate a recommendation.
DELETE/api/recommendations/{uuid}destroyDelete a recommendation by UUID.
DELETE/api/recommendations/source/{sourceType}/{sourceId}destroyBySourceDelete all recommendations for a source entity.

Shared

MethodPathActionDescription
GET/index
GET/{path}index
GET/api/debug/statsstatsInternal server diagnostics.
GET/api/monitor/rate-limiterslistList all rate limiters with their configuration.
DELETE/api/monitor/rate-limiters/{name}/clearclearClear all rate limiter state from Redis.
GET/api/monitor/statusstatusGet job monitoring status summary.
GET/api/monitor/jobsjobsGet job list with filtering, sorting, and cursor-based pagination.
GET/api/monitor/jobs/{jobId}detailGet job detail by job ID.
POST/api/monitor/jobs/{jobId}/retryretryRetry a failed job by re-dispatching its original message payload.
POST/api/monitor/jobs/{jobId}/cancelcancelCancel a running or queued job via cooperative Redis flag.
GET/api/debug/config-check__invokeValidate application configuration.
GET/healthhealth
GET/readyready
GET/livelive
GET/api/monitor/analytics/summarysummaryGet analytics summary for a time range.
GET/api/monitor/analytics/timingtimingGet timing analytics for a time range.
GET/api/monitor/analytics/failuresfailuresGet failure analytics for a time range.
GET/api/notifications/ssestreamServer-Sent Events stream for real-time notification delivery.
GET/api/monitor/transport/statusstatusGet transport status information.
POST/api/monitor/transport/failed/flushflushFailedFlush all messages from the failed transport.
POST/api/monitor/transport/failed/{id}/retryretryFailedRetry a specific failed message by its ID.
GET/metrics__invoke
GET/api/sse/eventseventsServer-Sent Events endpoint for real-time job monitoring.

Transcode

MethodPathActionDescription
GET/api/transcode/jobs/index
GET/api/transcode/jobs/{publicId}show
POST/api/transcode/jobs/cleanupcleanup
GET/api/stream/{videoId}/master.m3u8masterManifest
GET/api/stream/{jobPublicId}/media.m3u8mediaManifest
GET/api/stream/{videoId}/manifest.mpddashManifest
GET/api/stream/{videoId}/quality-ladderqualityLadder
POST/api/transcode/sessions/create
GET/api/transcode/sessions/index
GET/api/transcode/sessions/{uuid}show
PATCH/api/transcode/sessions/{uuid}/pausepause
PATCH/api/transcode/sessions/{uuid}/resumeresume
DELETE/api/transcode/sessions/{uuid}cancel
GET/api/stream/{jobPublicId}/init.mp4initSegment
GET/api/stream/{jobPublicId}/seg_{index}.m4ssegment

UserPreference

MethodPathActionDescription
GET/api/user/sidebar-config/index
PUT/api/user/sidebar-config/update
GET/api/user/accent-color/index
PUT/api/user/accent-color/update