G
YouTube TikTok Games
Skip to content

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 router. You describe each destination as a URL, hand Apprise a message, and it delivers to every destination you listed.

One message sent through Apprise fanning out to many notification services.

It does not replace your chat platform, email provider, or alerting system. It sits in front of them, so you only have to learn one way to send a message.

Whether you run cron jobs, manage containers, or build applications, Apprise saves you from learning and maintaining a different API for every service.

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=value

Switching services later means changing the URL, not your code or your scripts.

This makes notifications portable, maintainable, and easy to reason about.

Sources on the left send through the Apprise API or core library in the middle, which deliver to notification services on the right.
  • Something needs to send a message. A script, a webhook, the command line, the mobile app, or software that already speaks Apprise.
  • Apprise handles the delivery. You either import the Python library into your own code, or run the API server as a shared gateway that anything can post to.
  • The message goes out. A single request can reach one destination or every destination you have configured, in parallel.

Because the URL format is the same everywhere, a URL you test on the command line works unchanged in a script, in the API server, or on your phone.

From a script or the command line:

Terminal window
apprise -t "Backup Complete" -b "The server is safe" \
"discord://webhook_id/webhook_token"

Or from your own Python code:

import apprise
apobj = apprise.Apprise()
apobj.add("tgram://credentials")
apobj.notify(
body="Hello World",
title="My Notification",
)

Both send the same notification. Point them at a different service and only the URL changes.

  • 183 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
If you want to… Use…
Notify from cron jobs, scripts or CI The CLI
Send notifications from your own application The Python Library
Give many systems one shared notification gateway The API Server, stateless or with saved configurations
Send from your phone against your self-hosted server Apprise Mobile
Questions or Feedback?

Documentation

Notice a typo or an error?

Technical Issues

Having trouble with the code? Open an issue on GitHub:

Made with love from Canada