API Reference
Activity
| Method | Path | Action | Description |
|---|---|---|---|
GET | /api/activity/history | history | Get the authenticated user's activity history (paginated). |
POST | /api/activity/play | play | Record a play event for a song. |
POST | /api/activity/love/{publicId} | love | Toggle love on an activity. |
GET | /api/activity/loved | loved | Get the authenticated user's loved items. |
Auth
| Method | Path | Action | Description |
|---|---|---|---|
POST | /api/auth/register | register | |
POST | /api/auth/logout | logout | |
POST | /api/auth/refresh | refresh | |
POST | /api/auth/password/reset-request | requestPasswordReset | |
GET | /api/auth/me | me | |
PUT | /api/auth/me | updateMe | |
POST | /api/auth/email/verify | verifyEmail | |
POST | /api/auth/passkey/options | registrationOptions | |
POST | /api/auth/passkey/register | register | |
POST | /api/auth/passkey/authenticate/options | authenticationOptions | |
POST | /api/auth/passkey/authenticate | authenticate | |
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/setup | setup | |
POST | /api/auth/totp/enable | enable | |
POST | /api/auth/totp/disable | disable | |
POST | /api/auth/login/passkey | __invoke | |
GET, POST | /api/oauth/authorize | authorize | |
POST | /api/oauth/token | token | |
POST | /api/oauth/revoke | revoke | |
POST | /api/oauth/introspect | introspect | |
POST | /api/oauth/device/authorize | deviceAuthorize | |
GET | /api/oauth/device/verify | deviceVerify | |
POST | /api/oauth/device/approve | deviceApprove |
Catalog
| Method | Path | Action | Description |
|---|---|---|---|
POST | /api/albums/covers/extract | __invoke | |
POST | /api/albums/{publicId}/cover | upload | |
DELETE | /api/albums/{publicId}/cover | delete | |
GET | /api/movies/ | index | List movies (paginated). |
GET | /api/movies/{publicId} | show | Get a single movie. |
PATCH | /api/movies/{publicId} | update | Update a movie. |
DELETE | /api/movies/{publicId} | destroy | Delete a movie. |
GET | /api/genres/ | index | List all genres (flat list, no pagination). |
GET | /api/genres/{slug} | show | Get a single genre with its children. |
PATCH | /api/genres/{slug} | update | Update a genre. |
DELETE | /api/genres/{slug} | destroy | Delete a genre. |
GET | /api/songs/ | index | List/search songs (cursor-paginated). |
GET | /api/songs/{publicId} | show | Get a single song. |
PATCH | /api/songs/{publicId} | update | Update a song. |
DELETE | /api/songs/{publicId} | destroy | Delete a song. |
GET | /api/albums/ | index | List albums (paginated). |
GET | /api/albums/{publicId} | show | Get a single album with its songs. |
PATCH | /api/albums/{publicId} | update | Update an album. |
DELETE | /api/albums/{publicId} | destroy | Delete an album. |
GET | /api/artists/ | index | List/search artists (paginated). |
GET | /api/artists/{publicId} | show | Get a single artist. |
PATCH | /api/artists/{publicId} | update | Update an artist. |
DELETE | /api/artists/{publicId} | destroy | Delete an artist. |
Library
| Method | Path | Action | Description |
|---|---|---|---|
GET | /api/libraries | index | |
POST | /api/libraries | store | |
GET | /api/libraries/{id} | show | |
PATCH | /api/libraries/{id} | update | |
DELETE | /api/libraries/{id} | destroy |
Media
| Method | Path | Action | Description |
|---|---|---|---|
GET | /api/stream/track | streamById | Stream a track by its PublicId with HTTP Range (206) support. |
GET | /api/stream/media | stream | Stream a media file by path with HTTP Range (206) support. |
GET | /api/images/{publicId} | show | |
GET | /api/images/{publicId}/file | file | |
GET | /api/images/{publicId}/blurhash | blurhash |
Metadata
| Method | Path | Action | Description |
|---|---|---|---|
POST | /api/metadata/extract | extract | |
POST | /api/metadata/match | match | |
GET | /api/metadata/browse/artist/{mbid} | artist | |
GET | /api/metadata/browse/release-group/{mbid} | releaseGroup | |
GET | /api/metadata/search/artist | searchArtist | |
GET | /api/metadata/search/album | searchAlbum | |
GET | /api/metadata/search/song | searchSong |
Notification
| Method | Path | Action | Description |
|---|---|---|---|
GET | /api/notifications/ | index | List authenticated user's notifications. |
GET | /api/notifications/unread-count | unreadCount | Get unread notification count. |
PATCH | /api/notifications/{publicId}/read | markRead | Mark a single notification as read. |
PATCH | /api/notifications/read-all | markAllRead | Mark all notifications as read. |
DELETE | /api/notifications/{publicId} | delete | Delete a notification. |
POST | /api/push/subscribe | subscribe | Subscribe to browser push notifications. |
DELETE | /api/push/subscribe | unsubscribe | Unsubscribe from push notifications by endpoint. |
DELETE | /api/push/subscriptions | removeAll | Remove all push subscriptions for the authenticated user. |
GET | /api/webhooks/ | index | List all configured webhooks. |
POST | /api/webhooks/ | create | Create a new webhook. |
PUT | /api/webhooks/{id} | update | Update a webhook's URL and/or category filter. |
DELETE | /api/webhooks/{id} | delete | Delete a webhook. |
GET | /api/notifications/preferences/ | index | Get all notification preferences for the authenticated user. |
PUT | /api/notifications/preferences/ | update | Batch update notification preferences. |
Party
| Method | Path | Action | Description |
|---|---|---|---|
GET | /api/party/sessions/{uuid}/members/ | index | |
PATCH | /api/party/sessions/{uuid}/members/me | updateMe | |
POST | /api/party/sessions/{uuid}/members/transfer-host | transferHost | |
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}/join | join | |
POST | /api/party/sessions/{uuid}/leave | leave | |
POST | /api/party/sessions/{uuid}/sync | sync | |
DELETE | /api/party/sessions/{uuid} | end |
Playlist
| Method | Path | Action | Description |
|---|---|---|---|
GET | /api/playlists/ | index | List playlists belonging to the authenticated user. |
POST | /api/playlists/ | store | Create a new playlist. |
GET | /api/playlists/{publicId} | show | Get a single playlist with its songs. |
PATCH | /api/playlists/{publicId} | update | Update playlist metadata. |
DELETE | /api/playlists/{publicId} | destroy | Delete a playlist. |
POST | /api/playlists/{publicId}/songs | addSong | Add a song to a playlist. |
DELETE | /api/playlists/{publicId}/songs/{songId} | removeSong | Remove a song from a playlist. |
POST | /api/playlists/{publicId}/reorder | reorder | Reorder songs in a playlist. |
Recommendation
| Method | Path | Action | Description |
|---|---|---|---|
GET | /api/recommendations/ | index | Get personalized recommendations for the authenticated user. |
GET | /api/recommendations/source/{sourceType}/{sourceId} | bySource | Get recommendations for a source entity. |
GET | /api/recommendations/targeting/{targetType}/{targetId} | targeting | Get recommendations targeting an entity. |
POST | /api/recommendations/ | store | Create a recommendation. |
DELETE | /api/recommendations/{uuid} | destroy | Delete a recommendation by UUID. |
DELETE | /api/recommendations/source/{sourceType}/{sourceId} | destroyBySource | Delete all recommendations for a source entity. |
Shared
| Method | Path | Action | Description |
|---|---|---|---|
GET | / | index | |
GET | /{path} | index | |
GET | /api/debug/stats | stats | Internal server diagnostics. |
GET | /api/monitor/rate-limiters | list | List all rate limiters with their configuration. |
DELETE | /api/monitor/rate-limiters/{name}/clear | clear | Clear all rate limiter state from Redis. |
GET | /api/monitor/status | status | Get job monitoring status summary. |
GET | /api/monitor/jobs | jobs | Get job list with filtering, sorting, and cursor-based pagination. |
GET | /api/monitor/jobs/{jobId} | detail | Get job detail by job ID. |
POST | /api/monitor/jobs/{jobId}/retry | retry | Retry a failed job by re-dispatching its original message payload. |
POST | /api/monitor/jobs/{jobId}/cancel | cancel | Cancel a running or queued job via cooperative Redis flag. |
GET | /api/debug/config-check | __invoke | Validate application configuration. |
GET | /health | health | |
GET | /ready | ready | |
GET | /live | live | |
GET | /api/monitor/analytics/summary | summary | Get analytics summary for a time range. |
GET | /api/monitor/analytics/timing | timing | Get timing analytics for a time range. |
GET | /api/monitor/analytics/failures | failures | Get failure analytics for a time range. |
GET | /api/notifications/sse | stream | Server-Sent Events stream for real-time notification delivery. |
GET | /api/monitor/transport/status | status | Get transport status information. |
POST | /api/monitor/transport/failed/flush | flushFailed | Flush all messages from the failed transport. |
POST | /api/monitor/transport/failed/{id}/retry | retryFailed | Retry a specific failed message by its ID. |
GET | /metrics | __invoke | |
GET | /api/sse/events | events | Server-Sent Events endpoint for real-time job monitoring. |
Transcode
| Method | Path | Action | Description |
|---|---|---|---|
GET | /api/transcode/jobs/ | index | |
GET | /api/transcode/jobs/{publicId} | show | |
POST | /api/transcode/jobs/cleanup | cleanup | |
GET | /api/stream/{videoId}/master.m3u8 | masterManifest | |
GET | /api/stream/{jobPublicId}/media.m3u8 | mediaManifest | |
GET | /api/stream/{videoId}/manifest.mpd | dashManifest | |
GET | /api/stream/{videoId}/quality-ladder | qualityLadder | |
POST | /api/transcode/sessions/ | create | |
GET | /api/transcode/sessions/ | index | |
GET | /api/transcode/sessions/{uuid} | show | |
PATCH | /api/transcode/sessions/{uuid}/pause | pause | |
PATCH | /api/transcode/sessions/{uuid}/resume | resume | |
DELETE | /api/transcode/sessions/{uuid} | cancel | |
GET | /api/stream/{jobPublicId}/init.mp4 | initSegment | |
GET | /api/stream/{jobPublicId}/seg_{index}.m4s | segment |
UserPreference
| Method | Path | Action | Description |
|---|---|---|---|
GET | /api/user/sidebar-config/ | index | |
PUT | /api/user/sidebar-config/ | update | |
GET | /api/user/accent-color/ | index | |
PUT | /api/user/accent-color/ | update |