Skip to main content

API reference

Download the OpenAPI JSON.

MethodEndpointSummaryAuth
GET/api/keysList API keysYes
POST/api/keysCreate API keyYes
DELETE/api/keys/{id}Delete API keyYes
GET/validateTokenValidate tokenYes
POST/auth/loginUser loginNo
POST/auth/logoutUser logoutYes
GET/auth/sessionsGet active sessionsYes
DELETE/auth/sessions/{id}Delete sessionYes
POST/auth/change-passwordChange passwordYes
GET/auth/validateValidate authenticationYes
POST/api/channels/searchSearch YouTube for channels by free textYes
GET/getchannelsGet channels listYes
POST/updatechannelsUpdate channelsYes
POST/addchannelinfoAdd channel infoYes
GET/getchannelinfo/{channelId}Get channel infoYes
GET/api/channels/{channelId}/tabsGet channel tabsYes
GET/api/channels/{channelId}/tab-statsGet per-tab download statsYes
PATCH/api/channels/{channelId}/tabs/{tabType}/auto-downloadUpdate tab auto-download settingYes
POST/api/channels/{channelId}/tabs/redetectForce re-detection of a channel's available tabsYes
GET/api/channels/{channelId}/settingsGet channel settingsYes
PUT/api/channels/{channelId}/settingsUpdate channel settingsYes
GET/api/channels/subfoldersGet all subfoldersYes
GET/api/channels/using-default-subfolderGet channels using default subfolderYes
GET/api/channels/using-global-file-structureGet channels using the global file structure settingYes
GET/api/channels/{channelId}/filter-previewPreview title filterYes
GET/getchannelvideos/{channelId}Get channel videosYes
POST/fetchallchannelvideos/{channelId}Fetch all channel videosYes
GET/api/channels/{channelId}/fetch-statusCheck if a fetch operation is in progress for a channelYes
GET/api/channels/{channelId}/download-all/previewPreview a channel download-all runYes
POST/api/channels/{channelId}/download-allDownload all videos for a channel tabYes
POST/api/channels/{channelId}/videos/{youtubeId}/ignoreIgnore a videoYes
POST/api/channels/{channelId}/videos/{youtubeId}/unignoreUnignore a videoYes
POST/api/channels/{channelId}/videos/bulk-ignoreBulk ignore videosYes
GET/getconfigGet application configurationYes
POST/updateconfigUpdate application configurationYes
POST/api/config/filename-previewRender a videoFilenamePrefix against a canned sample videoYes
GET/api/cookies/statusGet cookie file statusYes
POST/api/cookies/testTest the active cookie fileYes
POST/api/cookies/uploadUpload cookie fileYes
DELETE/api/cookiesDelete cookie fileYes
POST/api/notifications/testSend test notificationYes
POST/api/notifications/test-singleSend test notification to a single webhookYes
GET/storage-statusGet storage statusYes
GET/api/healthHealth check endpointNo
GET/api/db-statusDatabase status endpointNo
GET/getCurrentReleaseVersionGet current release versionNo
GET/api/ytdlp/latest-versionGet yt-dlp version informationYes
POST/api/ytdlp/updateUpdate yt-dlpYes
GET/api/jobs/video-activityGet queued and downloading video activityYes
GET/jobstatus/{jobId}Get job statusYes
GET/runningjobsGet running jobsYes
GET/api/jobs/current-activityGet current download activityYes
GET/api/jobs/download-pauseGet the storage download pause stateYes
POST/api/jobs/terminateTerminate current jobYes
GET/api/logs/downloadDownload the log filesYes
POST/api/maintenance/rescan-filesKick off a manual filesystem rescanYes
GET/api/maintenance/rescan-statusGet current rescan running state and last-run summaryYes
GET/api/mediaservers/watch-statusGet watch status sync stateYes
POST/api/mediaservers/watch-status/syncTrigger a watch status sync nowYes
GET/api/playlistsList subscribed playlistsYes
POST/api/playlistsSubscribe to a playlist, restoring a soft-deleted one if presentYes
GET/api/playlists/{playlistId}Get a playlist with download and sync countsYes
DELETE/api/playlists/{playlistId}Unsubscribe from a playlist (soft delete)Yes
PATCH/api/playlists/{playlistId}Update playlist flagsYes
POST/api/playlists/addplaylistinfoFetch YouTube playlist info for a URLYes
GET/api/playlists/{playlistId}/settingsGet per-playlist download settingsYes
PUT/api/playlists/{playlistId}/settingsUpdate per-playlist download settingsYes
GET/api/playlists/{playlistId}/videosList playlist videos with download and watch overlayYes
POST/api/playlists/{playlistId}/refreshRefresh playlist videos from YouTubeYes
POST/api/playlists/{playlistId}/syncTrigger media server playlist syncYes
GET/api/playlists/{playlistId}/download-previewPreview an explicit batch of existing playlist videosYes
POST/api/playlists/{playlistId}/followingStart or resume following new playlist entriesYes
POST/api/playlists/{playlistId}/download-batchQueue selected eligible existing videos without resetting followingYes
POST/api/playlists/{playlistId}/downloadQueue downloads for playlist videosYes
POST/api/playlists/{playlistId}/regenerate-m3uRegenerate the playlist M3U fileYes
POST/api/playlists/{playlistId}/videos/{ytId}/ignoreIgnore a playlist videoYes
POST/api/playlists/{playlistId}/videos/{ytId}/unignoreUn-ignore a playlist videoYes
GET/getplexlibrariesGet Plex librariesYes
GET/plex/server-identityGet Plex server identityYes
GET/refreshlibraryRefresh Plex libraryYes
GET/plex/auth-urlGet Plex auth URLNo
GET/plex/check-pin/{pinId}Check Plex PIN statusNo
GET/api/schedulesGet the live state and last run of every scheduled taskYes
POST/api/schedules/{key}/runRun a scheduled task nowYes
GET/setup/statusGet setup statusNo
POST/setup/create-authCreate initial authenticationNo
GET/api/subfoldersList subfolders with usageYes
POST/api/subfoldersCreate (register) a subfolderYes
DELETE/api/subfolders/{name}Delete a subfolderYes
POST/api/subscriptions/preview/takeoutPreview channels from a Google Takeout CSVYes
POST/api/subscriptions/preview/cookiesPreview channels by fetching subscriptions with cookiesYes
POST/api/subscriptions/importsStart importing selected channelsYes
GET/api/subscriptions/importsList recent import jobsYes
GET/api/subscriptions/imports/activeGet the currently active importYes
GET/api/subscriptions/imports/{jobId}Get details of a specific import jobYes
POST/api/subscriptions/imports/{jobId}/cancelCancel an active importYes
GET/api/videos/{youtubeId}/metadataGet extended video metadataYes
GET/api/videos/{youtubeId}/watch-statusGet per-media-server watch status for a videoYes
GET/api/videos/{youtubeId}/streamStream a downloaded video fileYes
POST/api/videos/searchSearch YouTube by free textYes
POST/api/videos/local-statusRead local metadata for up to 500 YouTube video IDsYes
GET/getVideosGet downloaded videosYes
POST/api/videos/ratingUpdate video ratingsYes
PATCH/api/videos/{id}/protectedToggle video protectionYes
DELETE/api/videosDelete videosYes
POST/api/auto-removal/dry-runAuto-removal dry runYes
POST/api/checkYoutubeVideoURLValidate YouTube video URLYes
POST/api/bulkEnrichVideosEnrich a batch of YouTube video IDs with title + channel nameYes
OPTIONS/api/videos/downloadCORS preflight for download endpointNo
POST/api/videos/downloadDownload a YouTube videoYes
POST/triggerspecificdownloadsDownload specific videosYes
POST/triggerchanneldownloadsTrigger channel downloadsYes
POST/testYoutubeApiKeyValidate a YouTube Data API v3 keyYes
POST/api/ytdlp/validate-argsValidate custom yt-dlp argumentsYes