Introduction
Apprise lets you send notifications to over 100 services using a single Python call or CLI command. Instead of integrating each service's SDK, you configure targets as simple URLs and Apprise handles the rest.
What Apprise Does
- Sends notifications to Slack, Discord, Telegram, email, SMS, and 100+ other services
- Uses a URL-based scheme so each target is a single connection string
- Supports attachments (images, files) where the downstream service allows
- Provides a Python API, CLI tool, and optional REST API (Apprise API) for web integration
- Loads notification targets from YAML, JSON, or plain-text configuration files
Architecture Overview
Apprise is a pure Python library with a plugin-based architecture. Each notification service is implemented as a plugin class that parses its URL scheme, authenticates, and sends the payload via the service's native API. The core engine iterates over configured targets, dispatches notifications concurrently, and collects delivery results. The optional Apprise API project wraps the library in a lightweight Flask/Django REST service for HTTP-based triggering.
Self-Hosting & Configuration
- Install via pip, or run the Apprise API container for a REST endpoint
- Define notification URLs in a YAML config file or pass them as CLI arguments
- Supports environment variable substitution in configuration files
- Docker Compose example ships with the Apprise API project for quick deployment
- Integrates with monitoring tools like Prometheus Alertmanager, Grafana, and Uptime Kuma
Key Features
- 100+ notification plugins maintained in a single repository
- URL-based configuration eliminates per-service boilerplate
- Batch and conditional notifications with tagging and filtering
- Persistent configuration via YAML/JSON with hot-reload support
- Attachment support for services that accept files or images
Comparison with Similar Tools
- ntfy — self-hosted pub/sub notification server; Apprise is a client-side aggregator for many services
- Gotify — self-hosted push server with Android app; Apprise can send to Gotify as one of many targets
- Shoutrrr — Go-based notification router with fewer supported services
- Pushover — commercial push service for a single platform; Apprise wraps Pushover and dozens more
- Alertmanager — Prometheus alerting router; Apprise complements it as a notification dispatcher
FAQ
Q: How do I add a new notification service? A: Apprise accepts community plugins. Implement the NotifyBase class with your service's URL parsing and send logic.
Q: Can I use Apprise in a Docker-based monitoring stack? A: Yes. Deploy Apprise API as a container and point your monitoring tools at its REST endpoint.
Q: Does Apprise support message formatting? A: Yes, it accepts plain text, Markdown, and HTML, and converts to whatever the target service supports.
Q: Is there rate limiting? A: Apprise respects each service's rate limits and will retry or back off as needed.