Tsarr Documentation - v2.11.0
    Preparing search index...

    Class SonarrClient

    Sonarr API client for TV show management

    const sonarr = new SonarrClient({
    baseUrl: 'http://localhost:8989',
    apiKey: 'your-api-key'
    });

    const series = await sonarr.getSeries();

    Hierarchy

    • ServarrBaseClient
      • SonarrClient
    Index

    Constructors

    Methods

    getTags addTag getTag updateTag deleteTag getTagDetails getTagDetailById getNotifications getNotification addNotification updateNotification deleteNotification getNotificationSchema testNotification testAllNotifications getDownloadClients getDownloadClient addDownloadClient updateDownloadClient deleteDownloadClient getDownloadClientSchema testDownloadClient testAllDownloadClients getIndexers getIndexer addIndexer updateIndexer deleteIndexer getIndexerSchema testIndexer testAllIndexers restartSystem shutdownSystem getSystemBackups deleteSystemBackup restoreSystemBackup uploadSystemBackup getLogFiles getLogFileByName runCommand getCommands getHostConfig getHostConfigById updateHostConfig getUiConfig getUiConfigById updateUiConfig updateConfig getSystemStatus getHealth getApi getSeries getSeriesById addSeries updateSeries deleteSeries getSeriesFolder searchSeries getRootFolders addRootFolder deleteRootFolder getLogs getUpdates getUpdateSettings getUpdateSetting getNamingConfig getNamingConfigById updateNamingConfig getNamingConfigExamples getMediaManagementConfig getMediaManagementConfigById updateMediaManagementConfig getDiskSpace getEpisodes getEpisode updateEpisode getEpisodeFiles getEpisodeFile updateEpisodeFile deleteEpisodeFile updateEpisodeFilesEditor deleteEpisodeFilesBulk updateEpisodeFilesBulk getQualityProfiles getQualityProfile addQualityProfile updateQualityProfile deleteQualityProfile getQualityProfileSchema getCustomFormats getCustomFormat addCustomFormat updateCustomFormat deleteCustomFormat updateCustomFormatsBulk deleteCustomFormatsBulk getCustomFormatSchema updateDownloadClientsBulk deleteDownloadClientsBulk getImportLists getImportList addImportList updateImportList deleteImportList getImportListSchema testImportList testAllImportLists getHistory getHistorySince getSeriesHistory markHistoryItemFailed getCalendar getCalendarFeed getQueue removeQueueItem removeQueueItemsBulk grabQueueItem grabQueueItemsBulk getQueueDetails getQueueStatus getBlocklist removeBlocklistItem removeBlocklistItemsBulk getWantedMissing getWantedCutoff parseEpisodeInfo getManualImport reprocessManualImport processManualImport applyManualImport getCommand

    Constructors

    Methods

    • Returns Promise<any>

    • Parameters

      • tag: { id?: number; label?: string | null }

      Returns Promise<any>

    • Parameters

      • id: number

      Returns Promise<any>

    • Parameters

      • id: string | number
      • tag: { id?: number; label?: string | null }

      Returns Promise<any>

    • Parameters

      • id: number

      Returns Promise<any>

    • Returns Promise<any>

    • Parameters

      • id: number

      Returns Promise<any>

    • Returns Promise<any>

    • Parameters

      • id: number

      Returns Promise<any>

    • Parameters

      • notification: Record<string, unknown>

      Returns Promise<any>

    • Parameters

      • id: string | number
      • notification: Record<string, unknown>

      Returns Promise<any>

    • Parameters

      • id: number

      Returns Promise<any>

    • Returns Promise<any>

    • Parameters

      • notification: Record<string, unknown>

      Returns Promise<any>

    • Returns Promise<any>

    • Returns Promise<any>

    • Parameters

      • id: number

      Returns Promise<any>

    • Parameters

      • client: Record<string, unknown>

      Returns Promise<any>

    • Parameters

      • id: string | number
      • client: Record<string, unknown>

      Returns Promise<any>

    • Parameters

      • id: number

      Returns Promise<any>

    • Returns Promise<any>

    • Parameters

      • client: Record<string, unknown>

      Returns Promise<any>

    • Returns Promise<any>

    • Returns Promise<any>

    • Parameters

      • id: number

      Returns Promise<any>

    • Parameters

      • indexer: Record<string, unknown>

      Returns Promise<any>

    • Parameters

      • id: string | number
      • indexer: Record<string, unknown>

      Returns Promise<any>

    • Parameters

      • id: number

      Returns Promise<any>

    • Returns Promise<any>

    • Parameters

      • indexer: Record<string, unknown>

      Returns Promise<any>

    • Returns Promise<any>

    • Returns Promise<any>

    • Returns Promise<any>

    • Returns Promise<any>

    • Parameters

      • id: number

      Returns Promise<any>

    • Parameters

      • id: number

      Returns Promise<any>

    • Returns Promise<any>

    • Returns Promise<any>

    • Parameters

      • filename: string

      Returns Promise<any>

    • Parameters

      • command: Record<string, unknown>

      Returns Promise<any>

    • Returns Promise<any>

    • Returns Promise<any>

    • Parameters

      • id: number

      Returns Promise<any>

    • Parameters

      • id: string | number
      • config: Record<string, unknown>

      Returns Promise<any>

    • Returns Promise<any>

    • Parameters

      • id: number

      Returns Promise<any>

    • Parameters

      • id: string | number
      • config: Record<string, unknown>

      Returns Promise<any>

    • Parameters

      Returns {
          baseUrl: string;
          apiKey: string;
          timeout?: number;
          retry?: RetryOptions;
          headers?: Record<string, string>;
      }

      • baseUrl: string
      • apiKey: string
      • Optionaltimeout?: number

        Request timeout in milliseconds (default: 30000)

      • Optionalretry?: RetryOptions

        Retry configuration for transient failures

      • Optionalheaders?: Record<string, string>
    • Returns Promise<
          (
              | { data: unknown; error: undefined }
              | { data: undefined; error: unknown }
          ) & { request?: Request; response?: Response },
      >

    • Returns Promise<
          (
              | { data: unknown; error: undefined }
              | { data: undefined; error: unknown }
          ) & { request?: Request; response?: Response },
      >

    • Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: unknown; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Get all TV series in the library

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: Sonarr.SeriesResource[]; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Get a specific series by ID

      Parameters

      • id: number

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: Sonarr.SeriesResource; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Add a new series to the library

      Parameters

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: Sonarr.SeriesResource; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Update an existing series

      Parameters

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: Sonarr.SeriesResource; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Delete a series

      Parameters

      • id: number
      • Optionaloptions: { deleteFiles?: boolean; addImportListExclusion?: boolean }

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: unknown; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Get series folder information

      Parameters

      • id: number

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: unknown; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Search for TV series using TVDB database

      Parameters

      • term: string

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: Sonarr.SeriesResource[]; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Get all configured root folders

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: Sonarr.RootFolderResource[]; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Add a new root folder

      Parameters

      • path: string

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: Sonarr.RootFolderResource; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Delete a root folder by ID

      Parameters

      • id: number

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: unknown; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Get system logs with optional filtering

      Parameters

      • Optionalpage: number
      • OptionalpageSize: number
      • OptionalsortKey: string
      • OptionalsortDirection: string
      • Optionallevel: string

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: Sonarr.LogResourcePagingResource; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Get available updates

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: Sonarr.UpdateResource[]; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Get update settings

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: Sonarr.UpdateResource[]; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Get a specific update setting

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: Sonarr.UpdateResource[]; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Get naming configuration settings

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: Sonarr.NamingConfigResource; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Get naming configuration by ID

      Parameters

      • id: number

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: Sonarr.NamingConfigResource; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Get naming configuration examples

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: unknown; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Get media management configuration settings

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: Sonarr.MediaManagementConfigResource; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Get media management configuration by ID

      Parameters

      • id: number

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: Sonarr.MediaManagementConfigResource; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Get disk space information

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: Sonarr.DiskSpaceResource[]; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Get all episodes

      Parameters

      • OptionalseriesId: number
      • OptionalepisodeIds: number[]

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: EpisodeResource[]; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Get a specific episode by ID

      Parameters

      • id: number

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: EpisodeResource; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Update an episode

      Parameters

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: EpisodeResource; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Get episode files for a series or by specific IDs

      Parameters

      • OptionalseriesId: number
      • OptionalepisodeFileIds: number[]

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: EpisodeFileResource[]; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Get a specific episode file by ID

      Parameters

      • id: number

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: EpisodeFileResource; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Update an episode file

      Parameters

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: EpisodeFileResource; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Delete an episode file from disk

      Parameters

      • id: number

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: unknown; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Bulk update episode files using the editor endpoint

      Parameters

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: unknown; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Bulk delete episode files

      Parameters

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: unknown; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Bulk update episode files

      Parameters

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: unknown; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Get all quality profiles

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: Sonarr.QualityProfileResource[]; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Get a specific quality profile by ID

      Parameters

      • id: number

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: Sonarr.QualityProfileResource; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Delete a quality profile

      Parameters

      • id: number

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: unknown; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Get quality profile schema

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: Sonarr.QualityProfileResource; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Get all custom formats

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: Sonarr.CustomFormatResource[]; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Get a specific custom format by ID

      Parameters

      • id: number

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: Sonarr.CustomFormatResource; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Delete a custom format

      Parameters

      • id: number

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: unknown; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Bulk delete custom formats

      Parameters

      • ids: number[]

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: unknown; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Get custom format schema

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: unknown; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Bulk delete download clients

      Parameters

      • ids: number[]

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: unknown; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Get all import lists

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: Sonarr.ImportListResource[]; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Get a specific import list by ID

      Parameters

      • id: number

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: Sonarr.ImportListResource; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Update an existing import list

      Parameters

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: Sonarr.ImportListResource; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Delete an import list

      Parameters

      • id: number

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: unknown; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Get import list schema

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: Sonarr.ImportListResource[]; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Test an import list configuration

      Parameters

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: unknown; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Test all import lists

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: unknown; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Get activity history

      Parameters

      • Optionalpage: number
      • OptionalpageSize: number
      • OptionalsortKey: string
      • OptionalsortDirection: string
      • OptionalseriesId: number
      • OptionaldownloadId: string

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: Sonarr.HistoryResourcePagingResource; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Get history since a specific date

      Parameters

      • date: string
      • OptionalseriesId: number

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: Sonarr.HistoryResource[]; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Get history for a specific series

      Parameters

      • seriesId: number
      • OptionalseasonNumber: number
      • OptionaleventType: any

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: Sonarr.HistoryResource[]; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Mark a failed download as failed in history

      Parameters

      • id: number

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: unknown; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Get upcoming TV show releases in calendar format

      Parameters

      • OptionalstartDate: string
      • OptionalendDate: string
      • Optionalunmonitored: boolean

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: EpisodeResource[]; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Get calendar feed in iCal format

      Parameters

      • OptionalpastDays: number
      • OptionalfutureDays: number
      • Optionaltags: string

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: unknown; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Get download queue

      Parameters

      • Optionalpage: number
      • OptionalpageSize: number
      • OptionalsortKey: string
      • OptionalsortDirection: string
      • OptionalincludeUnknownSeriesItems: boolean
      • OptionalseriesId: number

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: Sonarr.QueueResourcePagingResource; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Remove an item from the download queue

      Parameters

      • id: number
      • OptionalremoveFromClient: boolean
      • Optionalblocklist: boolean

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: unknown; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Bulk remove items from the download queue

      Parameters

      • ids: number[]
      • OptionalremoveFromClient: boolean
      • Optionalblocklist: boolean

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: unknown; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Force grab a queue item

      Parameters

      • id: number

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: unknown; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Force grab multiple queue items

      Parameters

      • ids: number[]

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: unknown; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Get detailed queue information

      Parameters

      • OptionalseriesId: number
      • OptionalincludeUnknownSeriesItems: boolean

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: Sonarr.QueueResource[]; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Get queue status summary

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: Sonarr.QueueStatusResource; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Get blocked releases

      Parameters

      • Optionalpage: number
      • OptionalpageSize: number
      • OptionalsortKey: string
      • OptionalsortDirection: string

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: Sonarr.BlocklistResourcePagingResource; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Remove a release from the blocklist

      Parameters

      • id: number

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: unknown; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Bulk remove releases from the blocklist

      Parameters

      • ids: number[]

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: unknown; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Get missing episodes

      Parameters

      • Optionalpage: number
      • OptionalpageSize: number
      • OptionalsortKey: string
      • OptionalsortDirection: string

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: EpisodeResourcePagingResource; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Get episodes below quality cutoff

      Parameters

      • Optionalpage: number
      • OptionalpageSize: number
      • OptionalsortKey: string
      • OptionalsortDirection: string

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: EpisodeResourcePagingResource; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Parse episode information from release names

      Parameters

      • title: string

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: Sonarr.ParseResource; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Get manual import candidates for a folder or download

      Parameters

      • options: {
            folder?: string;
            downloadId?: string;
            seriesId?: number;
            filterExistingFiles?: boolean;
        } = {}

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: Sonarr.ManualImportResource[]; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Reprocess manual import candidates to refresh quality/match metadata. Does NOT perform the actual import — use applyManualImport for that.

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: unknown; error: undefined }
          ) & { request?: Request; response?: Response },
      >

    • Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: unknown; error: undefined }
          ) & { request?: Request; response?: Response },
      >

      Use reprocessManualImport. This method only reprocesses candidates; it does not perform the import.

    • Execute a manual import via the command queue. Returns the command resource.

      Parameters

      • files: SonarrManualImportFilePayload[]
      • importMode: "auto" | "copy" | "move" = 'auto'

      Returns Promise<any>

    • Get command by ID

      Parameters

      • id: number

      Returns Promise<
          (
              | { data: undefined; error: unknown }
              | { data: Sonarr.CommandResource; error: undefined }
          ) & { request?: Request; response?: Response },
      >