Apache Airflow Provider for Apprise

raw JSON →
2.3.3 verified Fri May 01 auth: no python

Apache Airflow provider that integrates with Apprise to send notifications via a wide variety of services (Slack, Telegram, email, etc.). Current version 2.3.3, released March 2025. Supports Airflow >=2.8.0. Patch releases monthly.

pip install apache-airflow-providers-apprise
error No module named 'airflow.providers.apprise'
cause Provider package not installed or Airflow environment not restarted after installation.
fix
Run pip install apache-airflow-providers-apprise and restart the Airflow webserver and scheduler.
error AirflowException: Unknown connection type 'apprise'
cause Missing provider package or Airflow version too old (<2.8.0) which does not support provider-based connection types.
fix
Ensure Airflow >=2.8.0 and provider installed. Upgrade Airflow if needed.
error AttributeError: module 'airflow.providers.apprise.hooks.apprise' has no attribute 'AppriseWebhookHook'
cause Using wrong import path (e.g., from old contrib or incorrect casing).
fix
Use exactly: from airflow.providers.apprise.hooks.apprise import AppriseWebhookHook
breaking In provider version 1.x, import paths used `airflow.contrib.hooks.apprise_hook`. This was removed in 2.0. Update imports to `airflow.providers.apprise`.
fix Use `from airflow.providers.apprise.hooks.apprise import AppriseWebhookHook` instead of old contrib path.
gotcha The Airflow connection must have `conn_type='apprise'` and the host field should contain one or more Apprise URLs separated by newlines. If URLs are not valid, the hook silently fails.
fix Configure connection via Airflow UI or CLI: `airflow connections add apprise_default --conn-type apprise --conn-host 'slack://token-a/token-b/\njson://localhost/custom'`. Use double newline to separate URLs.
gotcha Operator field `apprise_conn_id` defaults to 'apprise_default'. If not set correctly, notifications will not send without error.
fix Explicitly set `apprise_conn_id` to match the connection ID you created.
deprecated The `tag` parameter was added in 2.3.0. In older versions, tags were not supported. If you rely on tagging, upgrade to >=2.3.0.
fix Upgrade package: `pip install apache-airflow-providers-apprise>=2.3.0`

Basic usage: define an AppriseWebhookOperator in a DAG. Requires an Airflow connection configured with Apprise URLs.

import os
from airflow.providers.apprise.operators.apprise import AppriseWebhookOperator
from airflow.models import DAG
from datetime import datetime

default_args = {
    'owner': 'airflow',
    'start_date': datetime(2024, 1, 1),
}
with DAG(dag_id='apprise_example', default_args=default_args, schedule=None, catchup=False):
    send_notification = AppriseWebhookOperator(
        task_id='send_notification',
        apprise_conn_id='apprise_default',
        message='Hello from Airflow!',
        title='Test',
        tag='alert',
    )