Connect#
Sonarr supports configuring connections to external applications and services.
These are not only for Sonarr to communicate with the outside world, they can also be useful for monitoring since the user can be alerted by a variety of possible service when some kind of event (or problem) occurs in Sonarr.
Configuring connections#
Connections are configured using the following syntax.
sonarr:
  settings:
    connect:
      delete_unmanaged: false # Optional
      definitions:
        Email: # Name of connection in Sonarr.
          type: "email" # Required
          notification_triggers: # When to send notifications.
            on_grab: true
            on_import: true
            on_upgrade: true
            on_rename: false # Not supported by email notifications.
            on_series_delete: true
            on_episode_file_delete: true
            on_episode_file_delete_for_upgrade: true
            on_health_issue: true
            include_health_warnings: false # Do not send on just warnings.
            on_application_update: true
          tags: # Tags can also be assigned to connections.
            - "example"
          # Connection-specific parameters.
          server: "smtp.example.com"
          port: 465
          use_encryption: true
          username: "sonarr"
          password: "fake-password"
          from_address: "sonarr@example.com"
          recipient_addresses:
            - "admin@example.com"
        # Add additional connections here.
A type attribute must be defined so Buildarr knows what type of connection to make.
Each connection has a unique value for type documented below.
The triggers enabled on a connection are defined under notification_triggers.
Tags can be assigned to connections, to only allow notifications relating
to media under those tags.
The delete_unmanaged flag on the outer connect block can be set
to remove connections not defined in Buildarr.
Take care when using this option, as it can remove connections
automatically managed by other applications.
The following notification triggers can be enabled. Some connection types only allow a subset of these to be enabled, check the documentation the specific connection type for more information.
          on_grab: bool = False
  
  
      class-attribute
      instance-attribute
  
#
  Be notified when episodes are available for download and has been sent to a download client.
          on_import: bool = False
  
  
      class-attribute
      instance-attribute
  
#
  Be notified when episodes are successfully imported. (Formerly known as On Download)
          on_upgrade: bool = False
  
  
      class-attribute
      instance-attribute
  
#
  Be notified when episodes are upgraded to a better quality.
          on_rename: bool = False
  
  
      class-attribute
      instance-attribute
  
#
  Be notified when episodes are renamed.
          on_series_delete: bool = False
  
  
      class-attribute
      instance-attribute
  
#
  Be notified when series are deleted.
          on_episode_file_delete: bool = False
  
  
      class-attribute
      instance-attribute
  
#
  Be notified when episodes files are deleted.
          on_episode_file_delete_for_upgrade: bool = False
  
  
      class-attribute
      instance-attribute
  
#
  Be notified when episode files are deleted for upgrades.
          on_health_issue: bool = False
  
  
      class-attribute
      instance-attribute
  
#
  Be notified on health check failures.
          include_health_warnings: bool = False
  
  
      class-attribute
      instance-attribute
  
#
  Be notified on health warnings in addition to errors.
Requires on_health_issue to be enabled to have any effect.
          on_application_update: bool = False
  
  
      class-attribute
      instance-attribute
  
#
  Be notified when Sonarr gets updated to a new version.
Boxcar#
Receive media update and health alert push notifications via Boxcar.
Supported notification triggers: All except on_rename
Custom Script#
Execute a local script on the Sonarr instance when events occur.
Supported notification triggers: All
Discord#
Send media update and health alert messages to a Discord server.
Supported notification triggers: All
          type: Literal['discord'] = 'discord'
  
  
      class-attribute
      instance-attribute
  
#
  Type value associated with this kind of connection.
          webhook_url: AnyHttpUrl
  
  
      instance-attribute
  
#
  Discord server webhook URL.
          username: Optional[str] = None
  
  
      class-attribute
      instance-attribute
  
#
  The username to post as.
If unset, blank or set to None, use the default username set to the webhook URL.
          avatar: Optional[str] = None
  
  
      class-attribute
      instance-attribute
  
#
  Change the avatar that is used for messages from this connection.
If unset, blank or set to None, use the default avatar for the user.
          host: Optional[str] = None
  
  
      class-attribute
      instance-attribute
  
#
  Override the host name that shows for this notification.
If unset, blank or set to None, use the machine name.
          on_grab_fields: Set[OnGrabField] = {OnGrabField.overview, OnGrabField.rating, OnGrabField.genres, OnGrabField.quality, OnGrabField.size, OnGrabField.links, OnGrabField.release, OnGrabField.poster, OnGrabField.fanart}
  
  
      class-attribute
      instance-attribute
  
#
  Set the fields that are passed in for this 'on grab' notification. By default, all fields are passed in.
Values:
- overview
- rating
- genres
- quality
- group
- size
- links
- release
- poster
- fanart
Example:
...
  connect:
    definitions:
      Discord:
        type: "discord"
        webhook_url: "https://..."
        on_grab_fields:
          - "overview"
          - "quality"
          - "release"
          on_import_fields: Set[OnImportField] = {OnImportField.overview, OnImportField.rating, OnImportField.genres, OnImportField.quality, OnImportField.codecs, OnImportField.group, OnImportField.size, OnImportField.languages, OnImportField.subtitles, OnImportField.links, OnImportField.release, OnImportField.poster, OnImportField.fanart}
  
  
      class-attribute
      instance-attribute
  
#
  Set the fields that are passed in for this 'on import' notification. By default, all fields are passed in.
Values:
- overview
- rating
- genres
- quality
- codecs
- group
- size
- languages
- subtitles
- links
- release
- poster
- fanart
Example:
...
  connect:
    definitions:
      Discord:
        type: "discord"
        webhook_url: "https://..."
        on_import_fields:
          - "overview"
          - "quality"
          - "release"
Email#
Send media update and health alert messages to an email address.
Supported notification triggers: All except on_rename
          type: Literal['email'] = 'email'
  
  
      class-attribute
      instance-attribute
  
#
  Type value associated with this kind of connection.
          server: NonEmptyStr
  
  
      instance-attribute
  
#
  Hostname or IP address of the SMTP server to send outbound mail to.
          port: Port = 587
  
  
      class-attribute
      instance-attribute
  
#
  The port number on the SMTP server to use to submit mail.
The default is to use STARTTLS on the standard SMTP submission port.
          use_encryption: bool = True
  
  
      class-attribute
      instance-attribute
  
#
  Whether or not to use encryption when sending mail to the SMTP server.
If the port number is set to 465, SMTPS (implicit TLS) will be used. Any other port number will result in STARTTLS being used.
The default is to enable encryption.
          username: NonEmptyStr
  
  
      instance-attribute
  
#
  SMTP username of the account to send the mail from.
          password: Password
  
  
      instance-attribute
  
#
  SMTP password of the account to send the mail from.
          from_address: EmailStr
  
  
      instance-attribute
  
#
  Email address to send the mail as.
Changed in version 0.5.3: Disallow RFC-5322 formatted mailbox addresses
(e.g. Sonarr Notifications <sonarr@example.com>), as they are not
supported by Sonarr V3 (the currently supported version).
          recipient_addresses: Annotated[List[EmailStr], Field(min_items=1, unique_items=True)]
  
  
      instance-attribute
  
#
  List of email addresses to directly address the mail to.
At least one address must be provided.
Changed in version 0.5.3: Disallow RFC-5322 formatted mailbox addresses
(e.g. Sonarr Notifications <sonarr@example.com>), as they are not
supported by Sonarr V3 (the currently supported version).
          cc_addresses: Annotated[List[EmailStr], Field(unique_items=True)] = []
  
  
      class-attribute
      instance-attribute
  
#
  Optional list of email addresses to copy (CC) the mail to.
Changed in version 0.5.3: Disallow RFC-5322 formatted mailbox addresses
(e.g. Sonarr Notifications <sonarr@example.com>), as they are not
supported by Sonarr V3 (the currently supported version).
          bcc_addresses: Annotated[List[EmailStr], Field(unique_items=True)] = []
  
  
      class-attribute
      instance-attribute
  
#
  Optional list of email addresses to blind copy (BCC) the mail to.
Changed in version 0.5.3: Disallow RFC-5322 formatted mailbox addresses
(e.g. Sonarr Notifications <sonarr@example.com>), as they are not
supported by Sonarr V3 (the currently supported version).
Emby#
Send media update and health alert notifications to an Emby server.
Supported notification triggers: All
          type: Literal['emby'] = 'emby'
  
  
      class-attribute
      instance-attribute
  
#
  Type value associated with this kind of connection.
          host: NonEmptyStr
  
  
      instance-attribute
  
#
  Emby server hostname or IP address.
          port: Port = 8096
  
  
      class-attribute
      instance-attribute
  
#
  Emby server port.
          use_ssl: bool = False
  
  
      class-attribute
      instance-attribute
  
#
  Use HTTPS to connect to Emby, instead of HTTP.
          api_key: Password
  
  
      instance-attribute
  
#
  API key to authenticate with Emby.
          send_notifications: bool = False
  
  
      class-attribute
      instance-attribute
  
#
  Have MediaBrowser send notifications to configured providers.
          update_library: bool = False
  
  
      class-attribute
      instance-attribute
  
#
  Update the Emby library on import, rename, or delete.
Gotify#
Send media update and health alert push notifications via a Gotify server.
Supported notification triggers: All except on_rename
          type: Literal['gotify'] = 'gotify'
  
  
      class-attribute
      instance-attribute
  
#
  Type value associated with this kind of connection.
          server: AnyHttpUrl
  
  
      instance-attribute
  
#
  Gotify server URL. (e.g. http://gotify.example.com:1234)
          app_token: Password
  
  
      instance-attribute
  
#
  App token to use to authenticate with Gotify.
          priority: GotifyPriority = GotifyPriority.normal
  
  
      class-attribute
      instance-attribute
  
#
  Gotify notification priority.
Values:
- min
- low
- normal
- high
Join#
Send media update and health alert push notifications via Join.
Supported notification triggers: All except on_rename
          type: Literal['join'] = 'join'
  
  
      class-attribute
      instance-attribute
  
#
  Type value associated with this kind of connection.
          api_key: Password
  
  
      instance-attribute
  
#
  API key to use to authenticate with Join.
          device_names: Set[NonEmptyStr] = set()
  
  
      class-attribute
      instance-attribute
  
#
  List of full or partial device names you'd like to send notifications to.
If unset or empty, all devices will receive notifications.
          priority: JoinPriority = JoinPriority.normal
  
  
      class-attribute
      instance-attribute
  
#
  Join push notification priority.
Values:
- silent
- quiet
- normal
- high
- emergency
Kodi (XBMC)#
Send media update and health alert notifications to a Kodi (XBMC) instance.
Supported notification triggers: All
          type: Literal['kodi', 'xbmc'] = 'kodi'
  
  
      class-attribute
      instance-attribute
  
#
  Type values associated with this kind of connection. (Use either one)
          host: NonEmptyStr
  
  
      instance-attribute
  
#
  Kodi hostname or IP address.
          port: Port = 8080
  
  
      class-attribute
      instance-attribute
  
#
  Kodi API port.
          use_ssl: bool = False
  
  
      class-attribute
      instance-attribute
  
#
  Connect to Kodi over HTTPS instead of HTTP.
          username: NonEmptyStr
  
  
      instance-attribute
  
#
  Username to use to login to Kodi.
          password: Password
  
  
      instance-attribute
  
#
  Password to use to login to Kodi.
          gui_notification: bool = False
  
  
      class-attribute
      instance-attribute
  
#
  Enable showing notifications from Sonarr in the Kodi GUI.
          display_time: int = Field(5, ge=0)
  
  
      class-attribute
      instance-attribute
  
#
  How long the notification will be displayed for (in seconds).
          update_library: bool = False
  
  
      class-attribute
      instance-attribute
  
#
  Update the Kodi library on import/rename.
          clean_library: bool = False
  
  
      class-attribute
      instance-attribute
  
#
  Clean the Kodi library after update.
          always_update: bool = False
  
  
      class-attribute
      instance-attribute
  
#
  Update the Kodi library even when a video is playing.
Mailgun#
Send media update and health alert emails via the Mailgun delivery service.
Supported notification triggers: All except on_rename
          type: Literal['mailgun'] = 'mailgun'
  
  
      class-attribute
      instance-attribute
  
#
  Type value associated with this kind of connection.
          api_key: Password
  
  
      instance-attribute
  
#
  API key to use to authenticate with Mailgun.
          use_eu_endpoint: bool = False
  
  
      class-attribute
      instance-attribute
  
#
  Send mail via the EU endpoint instead of the US one.
          from_address: EmailStr
  
  
      instance-attribute
  
#
  Email address to send the mail as.
Changed in version 0.5.3: Disallow RFC-5322 formatted mailbox addresses
(e.g. Sonarr Notifications <sonarr@example.com>), as they are not
supported by Sonarr V3 (the currently supported version).
          sender_domain: NonEmptyStr
  
  
      instance-attribute
  
#
  The domain from which the mail will be sent.
          recipient_addresses: Annotated[List[EmailStr], Field(min_items=1, unique_items=True)]
  
  
      instance-attribute
  
#
  The recipient email addresses of the notification mail.
At least one recipient address is required.
Changed in version 0.5.3: Disallow RFC-5322 formatted mailbox addresses
(e.g. Sonarr Notifications <sonarr@example.com>), as they are not
supported by Sonarr V3 (the currently supported version).
Plex Home Theater#
Send media update notifications to a Plex Home Theater instance.
Supported notification triggers: on_grab, on_import, on_upgrade only
          type: Literal['plex-home-theater'] = 'plex-home-theater'
  
  
      class-attribute
      instance-attribute
  
#
  Type value associated with this kind of connection.
          host: NonEmptyStr
  
  
      instance-attribute
  
#
  Plex Home Theater hostname or IP address.
          port: Port = 3005
  
  
      class-attribute
      instance-attribute
  
#
  Plex Home Theater API port.
          use_ssl: bool = False
  
  
      class-attribute
      instance-attribute
  
#
  Connect to Plex Home Theater over HTTPS instead of HTTP.
          username: NonEmptyStr
  
  
      instance-attribute
  
#
  Username to use to login to Plex Home Theater.
          password: Password
  
  
      instance-attribute
  
#
  Password to use to login to Plex Home Theater.
          gui_notification: bool = False
  
  
      class-attribute
      instance-attribute
  
#
  Enable showing notifications from Sonarr in the Plex Home Theater GUI.
          display_time: int = Field(5, ge=0)
  
  
      class-attribute
      instance-attribute
  
#
  How long the notification will be displayed for (in seconds).
          update_library: bool = False
  
  
      class-attribute
      instance-attribute
  
#
  Update the Plex Home Theater library on import/rename.
          clean_library: bool = False
  
  
      class-attribute
      instance-attribute
  
#
  Clean the Plex Home Theater library after update.
          always_update: bool = False
  
  
      class-attribute
      instance-attribute
  
#
  Update the Plex Home THeater library even when a video is playing.
Plex Media Center#
Send media update notifications to a Plex Media Center instance.
Supported notification triggers: on_grab, on_import, on_upgrade only
          type: Literal['plex-media-center'] = 'plex-media-center'
  
  
      class-attribute
      instance-attribute
  
#
  Type value associated with this kind of connection.
          host: NonEmptyStr
  
  
      instance-attribute
  
#
  Plex Media Center hostname or IP address.
          port: Port = 3000
  
  
      class-attribute
      instance-attribute
  
#
  Plex Media Center API port.
          username: NonEmptyStr
  
  
      instance-attribute
  
#
  Username to use to login to Plex Media Center.
          password: Password
  
  
      instance-attribute
  
#
  Password to use to login to Plex Media Center.
Plex Media Server#
Send media update notifications to a Plex Media Server instance.
Supported notification triggers: All except on_grab, on_health_issue
and on_application_update
          type: Literal['plex-media-server'] = 'plex-media-server'
  
  
      class-attribute
      instance-attribute
  
#
  Type value associated with this kind of connection.
          host: NonEmptyStr
  
  
      instance-attribute
  
#
  Plex Media Server hostname or IP address.
          port: Port = 32400
  
  
      class-attribute
      instance-attribute
  
#
  Plex Media Server API port.
          use_ssl: bool = False
  
  
      class-attribute
      instance-attribute
  
#
  Connect to Plex Media Server over HTTPS instead of HTTP.
          auth_token: Password
  
  
      instance-attribute
  
#
  Plex authentication token.
If unsure on where to find this token, follow this guide from Plex.tv.
          update_library: bool = True
  
  
      class-attribute
      instance-attribute
  
#
  Update the Plex Media Server library on import, rename or delete.
Prowl#
Send media update and health alert push notifications to a Prowl client.
Supported notification triggers: All except on_rename
          type: Literal['prowl'] = 'prowl'
  
  
      class-attribute
      instance-attribute
  
#
  Type value associated with this kind of connection.
          api_key: Password
  
  
      instance-attribute
  
#
  API key to use when authenticating with Prowl.
          priority: ProwlPriority = ProwlPriority.normal
  
  
      class-attribute
      instance-attribute
  
#
  Prowl push notification priority.
Values:
- verylow
- low
- normal
- high
- emergency
Pushbullet#
Send media update and health alert push notifications to 1 or more Pushbullet devices.
Supported notification triggers: All except on_rename
          type: Literal['pushbullet'] = 'pushbullet'
  
  
      class-attribute
      instance-attribute
  
#
  Type value associated with this kind of connection.
          api_key: Password
  
  
      instance-attribute
  
#
  API key to use when authenticating with Pushbullet.
          device_ids: List[NonEmptyStr] = []
  
  
      class-attribute
      instance-attribute
  
#
  List of device IDs to send notifications to.
If unset or empty, send to all devices.
          channel_tags: List[NonEmptyStr] = []
  
  
      class-attribute
      instance-attribute
  
#
  List of Channel Tags to send notifications to.
          sender_id: Optional[str] = None
  
  
      class-attribute
      instance-attribute
  
#
  The device ID to send notifications from
(device_iden in the device's URL on pushbullet.com).
Leave unset, blank or set to None to send from yourself.
Pushover#
Send media update and health alert push notifications to 1 or more Pushover devices.
Supported notification triggers: All except on_rename
          type: Literal['pushover'] = 'pushover'
  
  
      class-attribute
      instance-attribute
  
#
  Type value associated with this kind of connection.
          user_key: Annotated[SecretStr, Field(min_length=30, max_length=30)]
  
  
      instance-attribute
  
#
  User key to use to authenticate with your Pushover account.
          api_key: Annotated[SecretStr, Field(min_length=30, max_length=30)]
  
  
      instance-attribute
  
#
  API key assigned to Sonarr in Pushover.
          devices: Set[NonEmptyStr] = set()
  
  
      class-attribute
      instance-attribute
  
#
  List of device names to send notifications to.
If unset or empty, send to all devices.
          priority: PushoverPriority = PushoverPriority.normal
  
  
      class-attribute
      instance-attribute
  
#
  Pushover push notification priority.
Values:
- silent
- quiet
- normal
- high
- emergency
          retry: Union[Literal[0], PushoverRetry] = 0
  
  
      class-attribute
      instance-attribute
  
#
  Interval to retry emergency alerts, in seconds.
Minimum 30 seconds. Set to 0 to disable retrying emergency alerts.
          expire: int = Field(0, ge=0, le=86400)
  
  
      class-attribute
      instance-attribute
  
#
  Threshold for retrying emergency alerts, in seconds.
If retry is set, this should be set to a higher value.
Maximum 86400 seconds (1 day).
          sound: Optional[str] = None
  
  
      class-attribute
      instance-attribute
  
#
  Notification sound to use on devices.
Leave unset, blank or set to None to use the default.
SendGrid#
Send media update and health alert emails via the SendGrid delivery service.
Supported notification triggers: All except on_rename
          type: Literal['sendgrid'] = 'sendgrid'
  
  
      class-attribute
      instance-attribute
  
#
  Type value associated with this kind of connection.
          api_key: Password
  
  
      instance-attribute
  
#
  API key to use to authenticate with SendGrid.
          from_address: EmailStr
  
  
      instance-attribute
  
#
  Email address to send the mail as.
Changed in version 0.5.3: Disallow RFC-5322 formatted mailbox addresses
(e.g. Sonarr Notifications <sonarr@example.com>), as they are not
supported by Sonarr V3 (the currently supported version).
          recipient_addresses: Annotated[List[EmailStr], Field(min_items=1, unique_items=True)]
  
  
      instance-attribute
  
#
  The recipient email addresses of the notification mail.
At least one recipient address is required.
Changed in version 0.5.3: Disallow RFC-5322 formatted mailbox addresses
(e.g. Sonarr Notifications <sonarr@example.com>), as they are not
supported by Sonarr V3 (the currently supported version).
Slack#
Send media update and health alert messages to a Slack channel.
Supported notification triggers: All
          type: Literal['slack'] = 'slack'
  
  
      class-attribute
      instance-attribute
  
#
  Type value associated with this kind of connection.
          webhook_url: AnyHttpUrl
  
  
      instance-attribute
  
#
  Webhook URL for the Slack channel to send to.
          username: NonEmptyStr
  
  
      instance-attribute
  
#
  Username to post as.
          icon: Optional[str] = None
  
  
      class-attribute
      instance-attribute
  
#
  The icon that is used for messages from this integration (emoji or URL).
If unset, blank or set to None, use the default for the user.
          channel: Optional[str] = None
  
  
      class-attribute
      instance-attribute
  
#
  If set, overrides the default channel in the webhook.
Synology Indexer#
Send media update notifications to the local Synology Indexer.
Supported notification triggers: All except on_grab, on_health_issue
and on_application_update
Telegram#
Send media update and health alert messages to a Telegram chat room.
Supported notification triggers: All
          type: Literal['telegram'] = 'telegram'
  
  
      class-attribute
      instance-attribute
  
#
  Type value associated with this kind of connection.
          bot_token: Password
  
  
      instance-attribute
  
#
  The bot token assigned to the Sonarr instance.
          chat_id: NonEmptyStr
  
  
      instance-attribute
  
#
  The ID of the chat room to send messages to.
You must start a conversation with the bot or add it to your group to receive messages.
          send_silently: bool = False
  
  
      class-attribute
      instance-attribute
  
#
  Sends the message silently. Users will receive a notification with no sound.
Trakt#
Send media update and health alert messages to the Trakt media tracker.
Note
Sonarr directly authenticates with Trakt to generate tokens for it to use. At the moment, the easiest way to generate the tokens for Buildarr is to do it using the GUI within Sonarr, and use the following shell command to retrieve the generated configuration.
$ curl -X "GET" "<sonarr-url>/api/v3/notification" -H "X-Api-Key: <api-key>"
Supported notification triggers: All except on_grab, on_rename,
on_health_issue and on_application_update
          type: Literal['trakt'] = 'trakt'
  
  
      class-attribute
      instance-attribute
  
#
  Type value associated with this kind of connection.
          access_token: Password
  
  
      instance-attribute
  
#
  Access token for Sonarr from Trakt.
          refresh_token: Password
  
  
      instance-attribute
  
#
  Refresh token for Sonarr from Trakt.
          expires: datetime
  
  
      instance-attribute
  
#
  Expiry date-time of the access token, preferably in ISO-8601 format and in UTC.
Example: 2023-05-10T15:34:08.117451Z
          auth_user: TraktAuthUser
  
  
      instance-attribute
  
#
  The username being authenticated in Trakt.
Twitter#
Send media update and health alert messages via Twitter.
Twitter requires you to create an application for their API to generate the necessary keys and secrets. If unsure how to proceed, refer to these guides from Twitter and WikiArr.
Access tokens can be obtained using the prodecure documented here.
Supported notification triggers: All except on_rename
          type: Literal['twitter'] = 'twitter'
  
  
      class-attribute
      instance-attribute
  
#
  Type value associated with this kind of connection.
          consumer_key: Password
  
  
      instance-attribute
  
#
  Consumer key from a Twitter application.
          consumer_secret: Password
  
  
      instance-attribute
  
#
  Consumer key from a Twitter application.
          access_token: Password
  
  
      instance-attribute
  
#
  Access token for a Twitter user.
          access_token_secret: Password
  
  
      instance-attribute
  
#
  Access token secret for a Twitter user.
          mention: NonEmptyStr
  
  
      instance-attribute
  
#
  Mention this user in sent tweets.
          direct_message: bool = True
  
  
      class-attribute
      instance-attribute
  
#
  Send a direct message instead of a public message.
Webhook#
Send media update and health alert notifications to a webhook API.
Supported notification triggers: All
          type: Literal['webhook'] = 'webhook'
  
  
      class-attribute
      instance-attribute
  
#
  Type value associated with this kind of connection.
          method: WebhookMethod = WebhookMethod.POST
  
  
      class-attribute
      instance-attribute
  
#
  HTTP request method type to use.
Values:
- POST
- PUT
          username: NonEmptyStr
  
  
      instance-attribute
  
#
  Webhook API username.
          password: Password
  
  
      instance-attribute
  
#
  Webhook API password.