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 Common errors
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 Warnings
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`
Imports
- AppriseWebhookHook
from airflow.providers.apprise.hooks.apprise import AppriseWebhookHook - AppriseWebhookOperator
from airflow.providers.apprise.operators.apprise import AppriseWebhookOperator
Quickstart
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',
)