Apprise

The Apprise integration connects Home Assistant to more than 140 notification services, including Amazon SNS, Discord, Telegram, Slack, Microsoft Teams, Twilio, and many more. A single Apprise configuration can route alerts to multiple services at once, so your automations stay simple and provider-independent.

Configuration

To use Apprise notifications, add the following to your configuration.yamlThe configuration.yaml file is the main configuration file for Home Assistant. It lists the integrations to be loaded and their specific configurations. In some cases, the configuration needs to be edited manually directly in the configuration.yaml file. Most integrations can be configured in the UI. [Learn more] file and restart Home Assistant. After changing the configuration.yamlThe configuration.yaml file is the main configuration file for Home Assistant. It lists the integrations to be loaded and their specific configurations. In some cases, the configuration needs to be edited manually directly in the configuration.yaml file. Most integrations can be configured in the UI. [Learn more] file, restart Home Assistant to apply the changes. The integration is now shown on the integrations page under Settings > Devices & services. Its entities are listed on the integration card itself and on the Entities tab.

Direct URL

The simplest setup. Add one or more Apprise URLs directly to your configuration. Visit the Apprise services directory to find the right URL format for your service:

notify:
  - name: NOTIFIER_NAME
    platform: apprise
    url: YOUR_APPRISE_URL

You can pass a list to notify multiple services at once:

notify:
  - name: NOTIFIER_NAME
    platform: apprise
    url:
      - YOUR_FIRST_URL
      - YOUR_SECOND_URL

Every service listed under url is always notified together on every action call. If you need to selectively notify different services depending on the situation, use the configuration file approach instead, which supports tag-based targeting.

Configuration file

To notify multiple services or use tag-based routing, store your service URLs in a separate file and reference it:

notify:
  - name: NOTIFIER_NAME
    platform: apprise
    config: /config/apprise.yml

Then create /config/apprise.yml and list your services:

# /config/apprise.yml
urls:
  - tgram://BOT_TOKEN/CHAT_ID:
      tag: telegram
  - mailtos://YOUR_USER:YOUR_PASSWORD@smtp.gmail.com:
      tag: email

Remote Apprise API

If you run a self-hosted Apprise API instance, you can point the config option directly to it. This is useful when you manage multiple Home Assistant installations and want to keep your notification services defined in one place:

notify:
  - name: NOTIFIER_NAME
    platform: apprise
    config: https://apprise.example.com/get/YOUR_PROFILE_KEY

You can also use url and config together in the same entry, and you can define as many services as you like in either option. For details on YAML and plain text configuration file formats, see the Apprise configuration documentation.

Configuration options

Configuration Variables

name string (Optional, default: notify)

The notifier will bind to the action notify.NAME.

url list (Optional)

One or more Apprise URLs pointing to notification services. Accepts a single URL string or a list of URL strings. All listed services are notified on every call.

config string (Optional)

A path or URL pointing to an Apprise configuration file or a remote Apprise API endpoint.

Sending a notification

Once Home Assistant restarts, use the notify service you defined to send notifications from an automation:

- action: notify.NOTIFIER_NAME
  data:
    title: "Motion detected"
    message: "Front door camera triggered."

Tag-based targeting

When you use a configuration file, you can assign tags to your services and use the target field to control who receives each message. By default, Apprise only notifies services that have no tags assigned. Use target to reach tagged services:

- action: notify.NOTIFIER_NAME
  data:
    message: "Security alert: front door opened."
    target: "security"

How multiple tags combine in target:

  • A list sends to every service tagged with any of the listed values (OR logic).
  • A space-separated string sends only to services that carry all of the listed tags (AND logic).
  • The reserved tag all notifies every service, whether tagged or not.
# OR logic: notify anything tagged "security" or "family"
- action: notify.NOTIFIER_NAME
  data:
    message: "Alert."
    target:
      - "security"
      - "family"
# AND logic: notify only services tagged BOTH "security" AND "family"
- action: notify.NOTIFIER_NAME
  data:
    message: "Alert."
    target: "security family"

Troubleshooting

If notifications are not sending, enable debug logging for the Apprise component in your configuration.yamlThe configuration.yaml file is the main configuration file for Home Assistant. It lists the integrations to be loaded and their specific configurations. In some cases, the configuration needs to be edited manually directly in the configuration.yaml file. Most integrations can be configured in the UI. [Learn more]:

logger:
  default: info
  logs:
    homeassistant.components.apprise: debug

After restarting, your Home Assistant logs will show which configuration files Apprise loads, how it resolves tags, and whether each notification dispatches successfully. This makes it easy to spot invalid URLs or connectivity issues.