Skip to content

Endpoint reference

This page lists the routes for the current Aurral release. All paths start at the Aurral origin.

GET and media routes read data. POST, PUT, PATCH, and DELETE routes can change Aurral, Lidarr, files, users, or external services.

MethodPathPurpose
GET/api/health/liveMinimal liveness response
GET/api/health/bootstrapStartup and authentication state
GET/api/healthDetailed application health
GET/api/health/wsWebSocket connection statistics
POST/api/health/stream-tokenIssue a short-lived token for media streams
POST/api/auth/loginCreate a password-login session
GET/api/auth/reauthRestart reverse-proxy authentication
POST/api/auth/logoutEnd a login session
GET/api/auth/meCurrent authenticated identity
GET/api/auth/api-keyRead or create the instance API key
POST/api/auth/api-key/rotateReplace the instance API key

The liveness, bootstrap, and health routes do not require authentication. Aurral returns detailed health fields only for a request with a valid credential. The image proxy is also public.

Before setup is complete, the onboarding routes are public. Lidarr feeds use a token for each flow. Media and filesystem routes do their own authorization checks. When you enable authentication, most other routes require an Aurral credential.

ProtocolPathPurpose
WebSocket/wsStatus, download, discovery, flow, and playlist updates

The WebSocket accepts subscribe, unsubscribe, and ping JSON messages. Subscriptions use the status, downloads, discovery, weekly-flow, and playlists channels.

For local password authentication, connect with the session token as /ws?token=SESSION_TOKEN. Aurral also accepts reverse-proxy identity and LAN auto-login for WebSocket connections. Aurral does not currently accept the instance API key for WebSocket connections.

MethodPathPurpose
GET/api/library/artistsList library artists
GET/api/library/artists/:mbidGet a library artist
POST/api/library/artistsAdd an artist
PUT/api/library/artists/:mbidUpdate artist monitoring
DELETE/api/library/artists/:mbidDelete an artist
POST/api/library/artists/:mbid/refreshRefresh an artist in Lidarr
GET/api/library/albums?artistId=:idList an artist’s albums
GET/api/library/albums/:idGet an album
POST/api/library/albumsAdd an album
POST/api/library/albums/requestRequest an album from search data
PUT/api/library/albums/:idUpdate an album
DELETE/api/library/albums/:idDelete an album
GET/api/library/tracksList album tracks
GET/api/library/playback-queueBuild the playback queue
GET/api/library/stream/:songIdStream a library song
GET/api/library/file-stream/:albumId/:trackIdStream an album track file
GET/api/library/rootfolderList Lidarr root-folder paths
GET/api/library/lookup/:mbidCheck whether an artist is in the library
POST/api/library/lookup/batchCheck multiple artists
POST/api/library/albums/lookup/batchCheck multiple albums
GET/api/library/recentList 20 recently added artists
GET/api/library/recent-releasesList recent missing releases
GET/api/library/downloadsList download jobs
GET/api/library/downloads/statusGet statuses for the required albumIds query
GET/api/library/downloads/status/allGet all download statuses
POST/api/library/downloads/albumMonitor an album and optionally run the configured search
POST/api/library/downloads/album/searchTrigger a Lidarr album search
MethodPathPurpose
GET/api/artists/:mbidArtist details and releases
GET/api/artists/:mbid/overridesGet metadata-provider overrides
PUT/api/artists/:mbid/overridesSet metadata-provider overrides
GET/api/artists/:mbid/similarSimilar artists
GET/api/artists/:mbid/videoFind a video for a named artist and track
GET/api/artists/:mbid/coverArtist image metadata
GET/api/artists/:mbid/previewDeezer top tracks and preview URLs
GET/api/artists/:mbid/streamStream progressive artist metadata with SSE
POST/api/artists/:mbid/appears-onFind releases that include an artist
POST/api/artists/release-groups/ratingsBatch release ratings
POST/api/artists/release-groups/coversBatch release covers
GET/api/artists/release-group/:mbidRelease-group details
GET/api/artists/release-group/:mbid/coverRelease-group cover metadata
GET/api/artists/release-group/:mbid/tracksRelease-group tracks

GET /api/artists intentionally returns 404. Use /api/search or an artist detail route instead.

MethodPathPurpose
GET/api/searchSearch artists, albums, or tags
GET/api/search/unifiedUnified search suggestions or results
GET/api/requestsList current artist and album requests
DELETE/api/requests/:mbidRemove an artist request
DELETE/api/requests/album/:albumIdRemove an album request

GET /api/search requires q. Its optional scope is artist (default), album, or tag. The route also accepts limit and offset. Album searches accept releaseTypes and sort. GET /api/requests accepts refresh=true.

MethodPathPurpose
GET/api/discoverDiscovery sections
GET/api/discover/relatedRelated recommendations
GET/api/discover/similarCached discovery tags, genres, and seed artists
GET/api/discover/filteredFiltered recommendations
GET/api/discover/tagsDiscovery tags
GET/api/discover/by-tagRecommendations for a tag
GET/api/discover/nearby-showsNearby events
GET/api/discover/artwork/:presetIdDiscovery artwork
GET/api/discover/feedbackDiscovery feedback
POST/api/discover/feedbackRecord discovery feedback
DELETE/api/discover/feedback/:idDelete discovery feedback
POST/api/discover/feedback/resetReset discovery feedback
GET/api/discover/preferencesDiscovery preferences
POST/api/discover/preferencesUpdate discovery preferences
POST/api/discover/preferences/resetReset discovery preferences
POST/api/discover/playlists/adoptCreate a flow from a discovery preset
POST/api/discover/playlists/adopt-playlistCreate a static playlist from a discovery preset
POST/api/discover/refreshRefresh discovery data
POST/api/discover/clearClear image and metadata-provider caches
POST/api/discover/clear-discoveryClear the discovery cache

The canonical prefix is /api/playlists. The legacy /api/weekly-flow prefix redirects to it with status 308.

MethodPathPurpose
GET/api/playlists/statusFlow worker and playlist status
GET/api/playlists/jobsList flow jobs
GET/api/playlists/jobs/:flowIdList jobs for a flow or static playlist
POST/api/playlists/start/:flowIdRun a flow
POST/api/playlists/flowsCreate a flow
PUT/api/playlists/flows/:flowIdUpdate a flow
DELETE/api/playlists/flows/:flowIdDelete a flow
PUT/api/playlists/flows/:flowId/enabledEnable or disable a flow
POST/api/playlists/flows/:flowId/static-playlistSave completed flow tracks as a static playlist
POST/api/playlists/flows/:flowId/tracks/:jobId/researchResearch a flow track again
GET/api/playlists/flows/:flowId/lidarr-import-listCreate or read the Lidarr feed token and item count
GET/api/playlists/artwork/:playlistIdGet playlist artwork
PUT/api/playlists/artwork/:playlistIdUpload playlist artwork
DELETE/api/playlists/artwork/:playlistIdDelete playlist artwork
POST/api/playlists/artwork/:playlistId/generateGenerate playlist artwork
GET/api/playlists/stream/:jobIdStream a playlist track
GET/api/playlists/staging-stream/:jobIdStream a staged track
POST/api/playlists/shared-playlistsCreate a shared playlist
POST/api/playlists/shared-playlists/importImport a shared playlist
PUT/api/playlists/shared-playlists/:playlistIdUpdate a shared playlist
DELETE/api/playlists/shared-playlists/:playlistIdDelete a shared playlist
POST/api/playlists/shared-playlists/:playlistId/tracksAdd a shared-playlist track
DELETE/api/playlists/shared-playlists/:playlistId/tracks/:jobIdDelete a shared-playlist track
POST/api/playlists/shared-playlists/:playlistId/tracks/:jobId/researchResearch a shared-playlist track
POST/api/playlists/shared-playlists/:playlistId/research-missingResearch all missing tracks
POST/api/playlists/shared-playlists/:playlistId/syncSync a shared playlist
PUT/api/playlists/playlists/:playlistId/retry-cyclePause or resume retries for a static playlist
POST/api/playlists/jobs/:jobId/approveApprove a flow job
POST/api/playlists/jobs/:jobId/denyDeny a flow job
DELETE/api/playlists/jobs/completedDelete completed jobs
DELETE/api/playlists/jobs/allDelete all jobs
GET/api/playlists/worker/settingsGet worker settings
PUT/api/playlists/worker/settingsUpdate worker settings
POST/api/playlists/worker/startStart the worker
POST/api/playlists/worker/stopStop the worker
POST/api/playlists/resetReset selected flow playlists
POST/api/playlists/playlist/:playlistType/createEnsure configured smart-playlist files exist

The repeated playlists segment in /api/playlists/playlists/:playlistId/retry-cycle is the current route.

MethodPathPurpose
GET/api/playlists/import/spotify/statusSpotify connection status
POST/api/playlists/import/spotify/oauth/startStart Spotify OAuth
POST/api/playlists/import/spotify/oauth/completeComplete Spotify OAuth
DELETE/api/playlists/import/spotifyDisconnect Spotify
GET/api/playlists/import/spotify/playlistsList Spotify playlists
POST/api/playlists/import/spotify/previewPreview a Spotify import
POST/api/playlists/import/spotifyImport Spotify playlists
MethodPathPurpose
GET/api/feeds/lidarr/flows/:flowId.jsonToken-authenticated Lidarr-compatible flow feed
MethodPathPurpose
GET/api/usersList users
POST/api/usersCreate a user
PATCH/api/users/:idUpdate a user
DELETE/api/users/:idDelete a user
GET/api/users/me/listening-historyGet listening-history settings for the current user
GET/api/users/me/lidarr-preferencesCurrent user’s Lidarr preferences
PATCH/api/users/me/lidarr-preferencesUpdate current user’s Lidarr preferences
GET/api/users/me/discover-layoutCurrent user’s discovery layout
PATCH/api/users/me/discover-layoutUpdate current user’s discovery layout
POST/api/users/me/passwordChange current user’s password

Every route in this section requires an administrator.

MethodPathPurpose
GET/api/settingsRead settings
POST/api/settingsUpdate settings
GET/api/settings/storage-healthRun or return the storage health check
GET/api/settings/tasksList scheduled maintenance tasks
POST/api/settings/tasks/clear-staleClear stale task runs
GET/api/settings/lidarr/profilesList Lidarr quality profiles
GET/api/settings/lidarr/metadata-profilesList Lidarr metadata profiles
GET/api/settings/lidarr/root-foldersList Lidarr root folders
GET/api/settings/lidarr/tagsList Lidarr tags
GET/api/settings/lidarr/test-library-accessTest Lidarr library access
GET/api/settings/lidarr/testTest Lidarr configuration
POST/api/settings/lidarr/apply-community-guideApply recommended Lidarr settings
POST/api/settings/slskd/testTest slskd
POST/api/settings/prowlarr/testTest Prowlarr
GET/api/settings/prowlarr/indexersList Prowlarr Usenet indexers
POST/api/settings/nzbget/testTest NZBGet
POST/api/settings/sabnzbd/testTest SABnzbd
POST/api/settings/ytdlp/testTest yt-dlp
POST/api/settings/gotify/testTest Gotify
POST/api/settings/plex/auth/pinStart Plex authentication
POST/api/settings/plex/auth/checkCheck Plex authentication
POST/api/settings/plex/resourcesList Plex resources
POST/api/settings/plex/testTest Plex
POST/api/settings/plex/syncSynchronize Plex
POST/api/settings/navidrome/testTest Navidrome credentials

These routes accept requests only until onboarding is complete. During initial setup, Aurral does not require a credential for these routes.

MethodPathPurpose
GET/api/onboarding/lidarr/profilesList Lidarr quality profiles
GET/api/onboarding/lidarr/metadata-profilesList Lidarr metadata profiles
GET/api/onboarding/lidarr/testTest Lidarr credentials
POST/api/onboarding/navidrome/testTest Navidrome credentials
POST/api/onboarding/completeComplete onboarding
MethodPathPurpose
GET/api/filesystem/browseBrowse server directories
POST/api/filesystem/ensureCreate or validate a server directory
GET/api/image-proxyFetch a legacy proxied image
GET/api/image-proxy/:cacheKeyFetch a cached proxied image

Image-proxy routes are public. Before onboarding, filesystem routes do not require authentication. After onboarding, Aurral requires an administrator credential for filesystem routes. Aurral accepts the instance API key. Do not expose an Aurral server directly to the public internet. Some /api routes do not require an API key.