Introduction
The name Apprise (/əˈpraɪz/) is pronounced like “uh-prise”, similar to surprise or arise, with emphasis on the second syllable.
Apprise is a notification routing library that standardizes how messages are delivered to more than 100+ different services. It takes the complexity out of sending notifications.
It does not replace chat platforms, email providers, or alerting systems. Instead, it provides a single, consistent way to send notifications to them.
Whether you are a system administrator running scripts, a developer building an application, or a DevOps engineer managing distributed services, Apprise removes the need to learn and maintain dozens of vendor-specific APIs.
One Syntax to Rule Them All
Section titled “One Syntax to Rule Them All”At the core of Apprise is the Universal Notification URL.
Instead of learning a unique payload format for every service, you configure destinations using a single, predictable syntax:
service://credentials/direction/?parameter=valueIf you later decide to switch from one service to another, your application logic does not change. You simply update the URL configuration.
This makes notifications portable, maintainable, and easy to reason about.
The Four Pillars of Apprise
Section titled “The Four Pillars of Apprise”Apprise is more than a library. Its four tools work together to support applications, automation, shared servers, and mobile access.
1. The Python Library
Section titled “1. The Python Library”For Developers
At its core, Apprise is a lightweight Python library. You embed it directly into your application and send notifications in just a few lines of code.
import apprise
apobj = apprise.Apprise()
# Add a serviceapobj.add("tgram://credentials")
# Notification destinations are configured separatelyapobj.notify( body="Hello World", title="My Notification",)The same code works regardless of which notification services you configure.
2. The Command Line Interface (CLI)
Section titled “2. The Command Line Interface (CLI)”For system administrators and automation
Apprise ships with a powerful CLI that exposes the same functionality without requiring Python code. This is ideal for cron jobs, backup scripts, monitoring hooks, and CI/CD pipelines.
# e.g: Send a notification to Discordapprise -t "Backup Complete" -b "The server is safe" \ "discord://webhook_id/webhook_token"3. The API Server
Section titled “3. The API Server”For centralized and networked environments
Apprise is also available as a stateless, containerized API server. This allows you to operate a centralized “notification gateway” for multiple systems.
You can:
- Send notifications directly with each request (stateless)
- Store configurations server-side and reference them by key (stateful)
This is especially useful for microservices, shared infrastructure, and teams that want centralized control.
4. Apprise Mobile
Section titled “4. Apprise Mobile”For users on the go
Apprise Mobile is the Android interface for your self-hosted Apprise API. Use it to view saved servers, create notification URLs, and send notifications from your phone.
Key Features
Section titled “Key Features”- 155 supported services, from popular chat platforms to specialized gateways
- Format-aware delivery, including Markdown, HTML, and plain text
- Attachment support, automatically adapted to each service’s capabilities
- High performance, with parallel notification delivery
- Minimal dependencies, designed to stay lightweight
Which Approach Should I Use?
Section titled “Which Approach Should I Use?”| If you are… | Start with… |
|---|---|
| Building a Python application | The Python Library |
| Automating scripts or system tasks | The CLI Tool |
| Centralizing notifications across systems | The API Server |
| Using your API from your phone | Apprise Mobile |
Questions or Feedback?
Technical Issues
Having trouble with the code? Open an issue on GitHub: