2017-12-03 08:00:23 +01:00
![Apprise Logo ](http://repo.nuxref.com/pub/img/logo-apprise.png )
2017-11-25 22:51:46 +01:00
< hr / >
**ap·prise** / *verb* < br />
To inform or tell (someone). To make one aware of something.
< hr / >
*Apprise* allows you to take advantage of *just about* every notification service available to us today. Send a notification to almost all of the most popular services out there today (such as Telegram, Slack, Twitter, etc). The ones that don't exist can be adapted and supported too!
2017-12-03 08:00:23 +01:00
[![Build Status ](https://travis-ci.org/caronc/apprise.svg?branch=master )](https://travis-ci.org/caronc/apprise)
[![CodeCov Status ](https://codecov.io/github/caronc/apprise/branch/master/graph/badge.svg )](https://codecov.io/github/caronc/apprise)
2017-11-29 05:25:25 +01:00
[![Paypal ](http://repo.nuxref.com/pub/img/paypaldonate.svg )](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick& hosted_button_id=MHANV39UZNQ5E)
[![Patreon ](http://repo.nuxref.com/pub/img/patreondonate.svg )](https://www.patreon.com/lead2gold)
2017-11-25 22:51:46 +01:00
## Supported Notifications
The section identifies all of the services supported by this script.
### Popular Notification Services
The table below identifies the services this tool supports and some example service urls you need to use in order to take advantage of it.
| Notification Service | Service ID | Default Port | Example Syntax |
| -------------------- | ---------- | ------------ | -------------- |
2017-12-11 03:28:00 +01:00
| [Boxcar ](https://github.com/caronc/apprise/wiki/Notify_boxcar ) | boxcar:// | (TCP) 443 | boxcar://hostname< br /> boxcar://hostname/@tag< br /> boxcar://hostname/device_token< br /> boxcar://hostname/device_token1/device_token2/device_tokenN< br /> boxcar://hostname/@tag/@tag2/device_token
2018-02-26 01:59:37 +01:00
| [Discord ](https://github.com/caronc/apprise/wiki/Notify_discord ) | discord:// | (TCP) 443 | discord://webhook_id/webhook_token< br /> discord://avatar@webhook_id/webhook_token
2018-03-05 03:06:41 +01:00
| [Emby ](https://github.com/caronc/apprise/wiki/Notify_emby ) | emby:// or embys:// | (TCP) 8096 | emby://user@hostname/< br /> emby://user:password@hostname
2017-11-25 22:51:46 +01:00
| [Faast ](https://github.com/caronc/apprise/wiki/Notify_faast ) | faast:// | (TCP) 443 | faast://authorizationtoken
2018-02-26 02:47:07 +01:00
| [Growl ](https://github.com/caronc/apprise/wiki/Notify_growl ) | growl:// | (UDP) 23053 | growl://hostname< br /> growl://hostname:portno< br /> growl://password@hostname< br /> growl://password@hostname:port</ br > **Note**: you can also use the get parameter _version_ which can allow the growl request to behave using the older v1.x protocol. An example would look like: growl://hostname?version=1
2018-03-09 02:20:51 +01:00
| [IFTTT ](https://github.com/caronc/apprise/wiki/Notify_ifttt ) | ifttt:// | (TCP) 443 | ifttt://webhooksID/EventToTrigger< br /> ifttt://webhooksID/EventToTrigger/Value1/Value2/Value3< br /> ifttt://webhooksID/EventToTrigger/?Value3=NewEntry& Value2=AnotherValue
2017-11-25 22:51:46 +01:00
| [Join ](https://github.com/caronc/apprise/wiki/Notify_join ) | join:// | (TCP) 443 | join://apikey/device< br /> join://apikey/device1/device2/deviceN/< br /> join://apikey/group< br /> join://apikey/groupA/groupB/groupN< br /> join://apikey/DeviceA/groupA/groupN/DeviceN/
| [KODI ](https://github.com/caronc/apprise/wiki/Notify_kodi ) | kodi:// or kodis:// | (TCP) 8080 or 443 | kodi://hostname< br /> kodi://user@hostname< br /> kodi://user:password@hostname:port
| [Mattermost ](https://github.com/caronc/apprise/wiki/Notify_mattermost ) | mmost:// | (TCP) 8065 | mmost://hostname/authkey< br /> mmost://hostname:80/authkey< br /> mmost://user@hostname:80/authkey< br /> mmost://hostname/authkey?channel=channel< br /> mmosts://hostname/authkey< br /> mmosts://user@hostname/authkey< br />
| [Prowl ](https://github.com/caronc/apprise/wiki/Notify_prowl ) | prowl:// | (TCP) 443 | prowl://apikey< br /> prowl://apikey/providerkey
| [Pushalot ](https://github.com/caronc/apprise/wiki/Notify_pushalot ) | palot:// | (TCP) 443 | palot://authorizationtoken
| [PushBullet ](https://github.com/caronc/apprise/wiki/Notify_pushbullet ) | pbul:// | (TCP) 443 | pbul://accesstoken< br /> pbul://accesstoken/#channel< br /> pbul://accesstoken/A_DEVICE_ID< br /> pbul://accesstoken/email@address.com< br /> pbul://accesstoken/#channel/#channel2/email@address.net/DEVICE
| [Pushjet ](https://github.com/caronc/apprise/wiki/Notify_pushjet ) | pjet:// | (TCP) 80 | pjet://secret< br /> pjet://secret@hostname< br /> pjet://secret@hostname:port< br /> pjets://secret@hostname< br /> pjets://secret@hostname:port< br />< i > Note: if no hostname defined https://api.pushjet.io will be used
| [Pushover ](https://github.com/caronc/apprise/wiki/Notify_pushover ) | pover:// | (TCP) 443 | pover://user@token< br /> pover://user@token/DEVICE< br /> pover://user@token/DEVICE1/DEVICE2/DEVICEN< br /> _Note: you must specify both your user_id and token_
| [Rocket.Chat ](https://github.com/caronc/apprise/wiki/Notify_rocketchat ) | rocket:// or rockets:// | (TCP) 80 or 443 | rocket://user:password@hostname/RoomID/Channel< br /> rockets://user:password@hostname:443/Channel1/Channel1/RoomID< br /> rocket://user:password@hostname/Channel
| [Slack ](https://github.com/caronc/apprise/wiki/Notify_slack ) | slack:// | (TCP) 443 | slack://TokenA/TokenB/TokenC/Channel< br /> slack://botname@TokenA/TokenB/TokenC/Channel< br /> slack://user@TokenA/TokenB/TokenC/Channel1/Channel2/ChannelN
2018-03-08 02:27:16 +01:00
| [Stride ](https://github.com/caronc/apprise/wiki/Notify_stride ) | stride:// | (TCP) 443 | stride://auth_token/cloud_id/convo_id
2017-11-25 22:51:46 +01:00
| [Super Toasty ](https://github.com/caronc/apprise/wiki/Notify_toasty ) | toasty:// | (TCP) 80 | toasty://user@DEVICE< br /> toasty://user@DEVICE1/DEVICE2/DEVICEN< br /> _Note: you must specify both your user_id and at least 1 device!_
| [Telegram ](https://github.com/caronc/apprise/wiki/Notify_telegram ) | tgram:// | (TCP) 443 | tgram://bottoken/ChatID< br /> tgram://bottoken/ChatID1/ChatID2/ChatIDN
| [Twitter ](https://github.com/caronc/apprise/wiki/Notify_twitter ) | tweet:// | (TCP) 443 | tweet://user@CKey/CSecret/AKey/ASecret
| [XBMC ](https://github.com/caronc/apprise/wiki/Notify_xbmc ) | xbmc:// or xbmcs:// | (TCP) 8080 or 443 | xbmc://hostname< br /> xbmc://user@hostname< br /> xbmc://user:password@hostname:port
2018-07-01 18:40:56 +02:00
| [Windows Notification ](https://github.com/caronc/apprise/wiki/Notify_windows ) | windows:// | n/a | windows://
2017-11-25 22:51:46 +01:00
### Email Support
| Service ID | Default Port | Example Syntax |
| ---------- | ------------ | -------------- |
| [mailto:// ](https://github.com/caronc/apprise/wiki/Notify_email ) | (TCP) 25 | mailto://userid:pass@domain.com< br /> mailto://domain.com?user=userid& pass=password< br /> mailto://domain.com:2525?user=userid& pass=password< br /> mailto://user@gmail.com& pass=password< br /> mailto://userid:password@example.com?smtp=mail.example.com& from=noreply@example.com& name=no%20reply
| [mailtos// ](https://github.com/caronc/apprise/wiki/Notify_email ) | (TCP) 587 | mailtos://userid:pass@domain.com< br /> mailtos://domain.com?user=userid& pass=password< br /> mailtos://domain.com:465?user=userid& pass=password< br /> mailtos://user@hotmail.com& pass=password< br /> mailtos://userid:password@example.com?smtp=mail.example.com& from=noreply@example.com& name=no%20reply
Apprise have some email services built right into it (such as hotmail, gmail, etc) that greatly simplify the mailto:// service. See more details [here ](https://github.com/caronc/apprise/wiki/Notify_email ).
### Custom Notifications
| Post Method | Service ID | Default Port | Example Syntax |
| -------------------- | ---------- | ------------ | -------------- |
| [JSON ](https://github.com/caronc/apprise/wiki/Notify_Custom_JSON ) | json:// or jsons:// | (TCP) 80 or 443 | json://hostname< br /> json://user@hostname< br /> json://user:password@hostname:port< br /> json://hostname/a/path/to/post/to
| [XML ](https://github.com/caronc/apprise/wiki/Notify_Custom_XML ) | xml:// or xmls:// | (TCP) 80 or 443 | xml://hostname< br /> xml://user@hostname< br /> xml://user:password@hostname:port< br /> xml://hostname/a/path/to/post/to
2017-11-30 01:51:18 +01:00
## Installation
The easiest way is to install from pypi:
```bash
pip install apprise
```
## Command Line
2018-03-14 00:26:51 +01:00
A small command line tool is also provided with this package called *apprise* . If you know the server url's you wish to notify, you can simply provide them all on the command line and send your notifications that way:
2017-11-30 01:51:18 +01:00
```bash
# Send a notification to as many servers as you want to specify
2018-03-14 00:26:51 +01:00
apprise -t 'my title' -b 'my notification body' \
2017-11-30 01:51:18 +01:00
'mailto://myemail:mypass@gmail.com' \
'pbul://o.gn5kj6nfhv736I7jC3cj3QLRiyhgl98b'
# If you don't specify a --body (-b) then stdin is used allowing
# you to use the tool as part of your every day administration:
2018-03-14 00:26:51 +01:00
cat /proc/cpuinfo | apprise -t 'cpu info' \
2017-11-30 01:51:18 +01:00
'mailto://myemail:mypass@gmail.com'
```
## Developers
To send a notification from within your python application, just do the following:
```python
import apprise
# create an Apprise instance
2017-12-03 08:00:23 +01:00
apobj = apprise.Apprise()
2017-11-30 01:51:18 +01:00
# Add all of the notification services by their server url.
# A sample email notification
apobj.add('mailto://myemail:mypass@gmail.com')
# A sample pushbullet notification
apobj.add('pbul://o.gn5kj6nfhv736I7jC3cj3QLRiyhgl98b')
# Then notify these services any time you desire. The below would
# notify all of the services loaded into our Apprise object.
apobj.notify(
title='my notification title',
body='what a great notification service!',
)
```