Notifications#
Prowlarr supports pushing notifications to external applications and services.
These are not only for Prowlarr to communicate with the outside world, they can also be useful for monitoring since the user can be alerted, by a service of their choice, when some kind of event (or problem) occurs.
Configuration#
Notification connections are configured using the following syntax.
prowlarr:
settings:
notifications:
delete_unmanaged: false # Optional
definitions:
Email: # Name of notification connection in Prowlarr.
type: "email" # Required
notification_triggers: # When to send notifications.
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: "prowlarr"
password: "fake-password"
from_address: "prowlarr@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_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 Prowlarr gets updated to a new version.
Apprise#
Receive media update and health alert push notifications via an Apprise server.
type: Literal['apprise'] = 'apprise'
class-attribute
instance-attribute
#
Type value associated with this kind of connection.
base_url: AnyHttpUrl
instance-attribute
#
Apprise server base URL, including http[s]://
and port if needed.
configuration_key: Optional[SecretStr] = None
class-attribute
instance-attribute
#
Configuration key for the Persistent Storage Solution.
Leave empty if Stateless URLs are used.
stateless_urls: Set[AnyHttpUrl] = set()
class-attribute
instance-attribute
#
One or more URLs where notifications should be sent to.
Leave undefined or empty if Persistent Storage is used.
apprise_tags: Set[NonEmptyStr] = set()
class-attribute
instance-attribute
#
Optionally notify only targets with the defined tags.
auth_username: Optional[str] = None
class-attribute
instance-attribute
#
Username for authenticating with Apprise, if required.
auth_password: Optional[SecretStr] = None
class-attribute
instance-attribute
#
Password for authenticating with Apprise, if required.
Boxcar#
Custom Script#
Discord#
Send media update and health alert messages to a Discord server.
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.
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: EmailUseEncryption = EmailUseEncryption.always
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 enforce encryption.
Note
Disabling encryption is available in Prowlarr v1.13 and above.
If this option is set to never
on an older version, it will have the same
effect as setting it to preferred
.
Values:
always
/true
- Enforce encryptionpreferred
- Prefer encryption, but allow unencryptednever
/false
- Disable encryption
Changed in version 0.5.3: Added support for the always
, preferred
and never
values.
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: NameEmail
instance-attribute
#
Email address to send the mail as.
RFC-5322 formatted mailbox addresses are also supported,
e.g. Prowlarr Notifications <prowlarr@example.com>
.
recipient_addresses: Annotated[List[NameEmail], 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.
cc_addresses: Annotated[List[NameEmail], Field(unique_items=True)] = []
class-attribute
instance-attribute
#
Optional list of email addresses to copy (CC) the mail to.
bcc_addresses: Annotated[List[NameEmail], Field(unique_items=True)] = []
class-attribute
instance-attribute
#
Optional list of email addresses to blind copy (BCC) the mail to.
Gotify#
Send media update and health alert push notifications via a Gotify server.
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.
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
Mailgun#
Send media update and health alert emails via the Mailgun delivery service.
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: NameEmail
instance-attribute
#
Email address to send the mail as.
RFC-5322 formatted mailbox addresses are also supported,
e.g. Sonarr Notifications <sonarr@example.com>
.
sender_domain: NonEmptyStr
instance-attribute
#
The domain from which the mail will be sent.
recipient_addresses: Annotated[List[NameEmail], Field(min_items=1, unique_items=True)]
instance-attribute
#
The recipient email addresses of the notification mail.
At least one recipient address is required.
Notifiarr#
ntfy#
Send media update and health alert emails via the ntfy.sh notification service, or a self-hosted server using the same software.
type: Literal['ntfy'] = 'ntfy'
class-attribute
instance-attribute
#
Type value associated with this kind of connection.
server_url: Optional[AnyHttpUrl] = None
class-attribute
instance-attribute
#
Custom ntfy server URL.
Leave blank, set to null
or undefined to use the public server (https://ntfy.sh
).
username: Optional[str] = None
class-attribute
instance-attribute
#
Username to use to authenticate, if required.
password: Optional[SecretStr] = None
class-attribute
instance-attribute
#
Password to use to authenticate, if required.
priority: NtfyshPriority = NtfyshPriority.default
class-attribute
instance-attribute
#
Values:
min
low
default
high
max
topics: Set[NonEmptyStr] = set()
class-attribute
instance-attribute
#
List of Topics to send notifications to.
ntfy_tags: Set[NonEmptyStr] = set()
class-attribute
instance-attribute
#
Optional list of tags or emojis to use.
click_url: Optional[AnyHttpUrl] = None
class-attribute
instance-attribute
#
Optional link for when the user clicks the notification.
Prowl#
Send media update and health alert push notifications to a Prowl client.
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.
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.
type: Literal['pushover'] = 'pushover'
class-attribute
instance-attribute
#
Type value associated with this kind of connection.
user_key: Password
instance-attribute
#
User key to use to authenticate with your Pushover account.
api_key: Password
instance-attribute
#
API key assigned to Prowlarr 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.
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: NameEmail
instance-attribute
#
Email address to send the mail as.
RFC-5322 formatted mailbox addresses are also supported,
e.g. Prowlarr Notifications <prowlarr@example.com>
.
recipient_addresses: Annotated[List[NameEmail], Field(min_items=1, unique_items=True)]
instance-attribute
#
The recipient email addresses of the notification mail.
At least one recipient address is required.
Slack#
Send media update and health alert messages to a Slack channel.
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.
Telegram#
Send media update and health alert messages to a Telegram chat room.
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 Prowlarr 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.
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.
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.
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.