caronc/apprise
Apprise - Push Notifications that work with just about every platform! - caronc/apprise
17.5k stars · 668 forks
README
ap·prise / verb To inform or tell (someone). To make one aware of something.
Apprise allows you to send a notification to almost all of the most popular notification services available to us today such as: Telegram, Discord, Slack, Amazon SNS, Gotify, etc.
One notification library to rule them all. A common and intuitive notification syntax. Supports the handling of images and attachments (to the notification services that will accept them). It's incredibly lightweight. Amazing response times because all messages sent asynchronously.
Developers who wish to provide a notification service no longer need to research each and every one out there. They no longer need to try to adapt to the new ones that comeout thereafter. They just need to include this one library and then they can immediately gain access to almost all of the notifications services available to us today. System Administrators and DevOps who wish to send a notification now no longer need to find the right tool for the job. Everything is already wrapped and supported within the apprise command line tool (CLI) that ships with this product.
Visit the Official Documentation site for more information on Apprise. How It Works Apprise provides one consistent URL format and notification interface for your apps, automation, and infrastructure. Use the CLI or core library directly, or relay through Apprise API, to deliver notifications to a very large amount of supported services.
Table of Contents
Supported Notifications
Productivity Based Notifications SMS Notifications Desktop Notifications Email Notifications Custom Notifications
Installation Command Line Usage
Configuration Files File Attachments Loading Custom Notifications/Hooks Environment Variables
Developer API Usage
Configuration Files File Attachments Loading Custom Notifications/Hooks
Persistent Storage More Supported Links and Documentation
Supported Notifications The section identifies all of the services supported by this library. Check out the wiki for more information on the supported modules here. Productivity Based Notifications 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. Click on any of the services listed below to get more details on how you can configure Apprise to access them. If you're having trouble constructing your own URL; try our Apprise URL Builder out.
Notification Service Service ID Default Port Example Syntax
Apprise API apprise:// or apprises:// (TCP) 80 or 443 apprise://hostname/Tokenapprise://:password@hostname/Tokenapprise://user:password@hostname/Token
AWS SES ses:// (TCP) 443 ses://user@domain/AccessKeyID/AccessSecretKey/RegionNameses://user@domain/AccessKeyID/AccessSecretKey/RegionName/email1/email2/emailN
Bark bark:// (TCP) 80 or 443 bark://hostnamebark://hostname/device_keybark://hostname/device_key1/device_key2/device_keyNbarks://hostnamebarks://hostname/device_keybarks://hostname/device_key1/device_key2/device_keyN
Blink(1) blink1:// USB blink1://blink1://serial/
BlueSky bluesky:// (TCP) 443 bluesky://Handle:AppPwbluesky://Handle:AppPw/TargetHandlebluesky://Handle:AppPw/TargetHandle1/TargetHandle2/TargetHandleN
Brevo brevo:// (TCP) 443 brevo://APIToken:FromEmail/brevo://APIToken:FromEmail/ToEmailbrevo://APIToken:FromEmail/ToEmail1/ToEmail2/ToEmailN/
Chanify chantify:// (TCP) 443 chantify://token
Amazon Chime chime:// (TCP) 443 chime://WebhookID/Token
Delta Chat deltachat:// or deltachats:// (TCP) 25 or 587 deltachat://user:pass@smtp.example.com/friend@example.orgdeltachats://user:pass@smtp.example.com/friend1@example.org/friend2@example.org
Discord discord:// (TCP) 443 discord://webhook_id/webhook_tokendiscord://avatar@webhook_id/webhook_token
Dot. dot:// (TCP) 443 dot://apikey@device_id/text/dot://apikey@device_id/image/Note: device_id is the Quote/0 hardware serial
Emby emby:// or embys:// (TCP) 8096 emby://user@hostname/emby://user:password@hostname
Enigma2 enigma2:// or enigma2s:// (TCP) 80 or 443 enigma2://hostname
Evolution API evolution:// or evolutions:// (TCP) 80 or 443 evolution://apikey@hostname/instance/ToPhoneNoevolution://apikey@hostname:port/instance/ToPhoneNoevolution://apikey@hostname/instance/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/
FCM fcm:// (TCP) 443 fcm://project@apikey/DEVICE_IDfcm://project@apikey/#TOPICfcm://project@apikey/DEVICE_ID1/#topic1/#topic2/DEVICE_ID2/
Feishu feishu:// (TCP) 443 feishu://token
Flock flock:// (TCP) 443 flock://tokenflock://botname@tokenflock://app_token/u:useridflock://app_token/g:channel_idflock://app_token/u:userid/g:channel_id
Flowtriq flowtriq:// or flowtriqs:// (TCP) 80 or 443 flowtriq://apikey@hostname/webhook/pathflowtriqs://apikey@hostname/webhook/path
Google Chat gchat:// (TCP) 443 gchat://workspace/key/token
Gotify gotify:// or gotifys:// (TCP) 80 or 443 gotify://hostname/tokengotifys://hostname/token?priority=high
GroupMe groupme:// (TCP) 443 groupme://bot_idgroupme://bot_id/access_token
Growl growl:// (UDP) 23053 growl://hostnamegrowl://hostname:portnogrowl://password@hostnamegrowl://password@hostname:portNote: 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
Guilded guilded:// (TCP) 443 guilded://webhook_id/webhook_tokenguilded://avatar@webhook_id/webhook_token
Home Assistant hassio:// or hassios:// (TCP) 8123 or 443 hassio://hostname/accesstokenhassio://user@hostname/accesstokenhassio://user:password@hostname:port/accesstokenhassio://hostname/optional/path/accesstoken
HumHub humhub:// or humhubs:// (TCP) 80 or 443 humhubs://token@hostname/container_idhumhubs://user:password@hostname/container_idhumhubs://token@hostname/id1/id2/id3
IFTTT ifttt:// (TCP) 443 ifttt://webhooksID/Eventifttt://webhooksID/Event1/Event2/EventNifttt://webhooksID/Event1/?+Key=Valueifttt://webhooksID/Event1/?-Key=value1
IRC irc:// or ircs:// (TCP) 6667 or 6697 ircs://user:pass@irc.server/@user ircs://user:pass@irc.server/#channel?join=true&mode=nickservircs://user:pass@znc.server/@user1/@user2/@user3/#channel1
Jellyfin jellyfin:// or jellyfins:// (TCP) 8096 jellyfin://user@hostname/jellyfins://user:password@hostname
Jira jira:// (TCP) 443 jira://APIKeyjira://APIKey/@UserIDjira://APIKey/#Teamjira://APIKey/*Schedulejira://APIKey/^Escalation
Join join:// (TCP) 443 join://apikey/devicejoin://apikey/device1/device2/deviceN/join://apikey/groupjoin://apikey/groupA/groupB/groupNjoin://apikey/DeviceA/groupA/groupN/DeviceN/
KODI kodi:// or kodis:// (TCP) 8080 or 443 kodi://hostnamekodi://user@hostnamekodi://user:password@hostname:port
Kook kook:// (TCP) 443 kook://token/channel_idkook://token/channel1/channel2kook://token/@user_idkook://webhook_key?mode=webhook
Kumulos kumulos:// (TCP) 443 kumulos://apikey/serverkey
LaMetric Time lametric:// (TCP) 443 lametric://apikey@device_ipaddrlametric://apikey@hostname:portlametric://client_id@client_secret
Lark lark:// (TCP) 443 lark://BotToken
Lauther lauther:// (TCP) 443 lauther://Token
Line line:// (TCP) 443 line://Token@Userline://Token/User1/User2/UserN
Mailgun mailgun:// (TCP) 443 mailgun://user@hostname/apikeymailgun://user@hostname/apikey/emailmailgun://user@hostname/apikey/email1/email2/emailNmailgun://user@hostname/apikey/?name="From%20User"
MailerSend mailersend:// (TCP) 443 mailersend://APIToken:FromEmail/mailersend://APIToken:FromEmail/ToEmailmailersend://APIToken:FromEmail/ToEmail1/ToEmail2/ToEmailN/
Mastodon mastodon:// or mastodons:// (TCP) 80 or 443 mastodon://access_key@hostnamemastodon://access_key@hostname/@usermastodon://access_key@hostname/@user1/@user2/@userN
Matrix matrix:// or matrixs:// (TCP) 80 or 443 matrix://hostnamematrix://user@hostnamematrixs://user:pass@hostname:port/#room_aliasmatrixs://user:pass@hostname:port/!room_idmatrixs://user:pass@hostname:port/#room_alias/!room_id/#room2matrixs://token@hostname:port/?webhook=matrixmatrix://user:token@hostname/?webhook=slack&format=markdown
Mattermost mmost:// or mmosts:// (TCP) 8065 mmost://hostname/authkeymmost://hostname:80/authkeymmost://user@hostname:80/authkeymmost://hostname/authkey?channel=channelmmosts://hostname/authkeymmosts://user@hostname/authkey
Microsoft Power Automate / Workflows (MSTeams) workflows:// (TCP) 443 workflows://WorkflowID/Signature/
Misskey misskey:// or misskeys:// (TCP) 80 or 443 misskey://access_token@hostname
MQTT mqtt:// or mqtts:// (TCP) 1883 or 8883 mqtt://hostname/topicmqtt://user@hostname/topicmqtts://user:pass@hostname:9883/topic
Nextcloud ncloud:// or nclouds:// (TCP) 80 or 443 ncloud://adminuser:pass@host/Usernclouds://adminuser:pass@host/User1/User2/UserN
NextcloudTalk nctalk:// or nctalks:// (TCP) 80 or 443 nctalk://user:pass@host/RoomIdnctalks://user:pass@host/RoomId1/RoomId2/RoomIdN
Notica notica:// (TCP) 443 notica://Token/
Notifiarr notifiarr:// (TCP) 443 notifiarr://apikey/#channelnotifiarr://apikey/#channel1/#channel2/#channeln
Notifico notifico:// or notificos:// (TCP) 80 or 443 notifico://ProjectID/MessageHook/notifico://host/ProjectID/MessageHook/notificos://host/ProjectID/MessageHook/
ntfy ntfy:// (TCP) 80 or 443 ntfy://topic/ntfys://topic/
Octopush octopush:// (TCP) 443 octopush://APILogin/APIKey/TargetPhoneNooctopush://Sender:APILogin/APIKey/TargetPhoneNooctopush://Sender:APILogin/APIKey/TargetPhoneNo1/TargetPhoneNo2/TargetPhoneNoN
Office 365 o365:// (TCP) 443 o365://TenantID:AccountEmail/ClientID/ClientSecreto365://TenantID:AccountEmail/ClientID/ClientSecret/TargetEmailo365://TenantID:AccountEmail/ClientID/ClientSecret/TargetEmail1/TargetEmail2/TargetEmailN
OneSignal onesignal:// (TCP) 443 onesignal://AppID@APIKey/PlayerIDonesignal://TemplateID:AppID@APIKey/UserIDonesignal://AppID@APIKey/#IncludeSegmentonesignal://AppID@APIKey/Email
Opsgenie opsgenie:// (TCP) 443 opsgenie://APIKeyopsgenie://APIKey/UserIDopsgenie://APIKey/#Teamopsgenie://APIKey/*Scheduleopsgenie://APIKey/^Escalation
PagerDuty pagerduty:// (TCP) 443 pagerduty://IntegrationKey@ApiKeypagerduty://IntegrationKey@ApiKey/Source/Component
PagerTree pagertree:// (TCP) 443 pagertree://integration_id
ParsePlatform parsep:// or parseps:// (TCP) 80 or 443 parsep://AppID:MasterKey@Hostnameparseps://AppID:MasterKey@Hostname
Pingram pingram:// (TCP) 443 pingram://ApiKey/Targetpingram://ApiKey/Target1/Target2/TargetNpingram://MessageType@ApiKey/Target
Pinglet pinglet:// or pinglets:// (TCP) 80 or 443 pinglets://apikey@hostname/namespace/topicpinglets://apikey@hostname:port/namespace/topic
Postmark postmark:// (TCP) 443 postmark://APIToken:FromEmail/postmark://APIToken:FromEmail/ToEmailpostmark://APIToken:FromEmail/ToEmail1/ToEmail2/ToEmailN/
Prowl prowl:// (TCP) 443 prowl://apikeyprowl://apikey/providerkey
PushBullet pbul:// (TCP) 443 pbul://accesstokenpbul://accesstoken/#channelpbul://accesstoken/A_DEVICE_IDpbul://accesstoken/email@address.compbul://accesstoken/#channel/#channel2/email@address.net/DEVICE
Pushjet pjet:// or pjets:// (TCP) 80 or 443 pjet://hostname/secretpjet://hostname:port/secretpjets://secret@hostname/secretpjets://hostname:port/secret
Push (Techulus) push:// (TCP) 443 push://apikey/
Pushed pushed:// (TCP) 443 pushed://appkey/appsecret/pushed://appkey/appsecret/#ChannelAliaspushed://appkey/appsecret/#ChannelAlias1/#ChannelAlias2/#ChannelAliasNpushed://appkey/appsecret/@UserPushedIDpushed://appkey/appsecret/@UserPushedID1/@UserPushedID2/@UserPushedIDN
PushMe pushme:// (TCP) 443 pushme://Token/
Pushover pover:// (TCP) 443 pover://user@tokenpover://user@token/DEVICEpover://user@token/DEVICE1/DEVICE2/DEVICENNote: you must specify both your user_id and token
Pushplus pushplus:// (TCP) 443 pushplus://Token
PushSafer psafer:// or psafers:// (TCP) 80 or 443 psafer://privatekeypsafers://privatekey/DEVICEpsafer://privatekey/DEVICE1/DEVICE2/DEVICEN
PushWard pushward:// (TCP) 443 pushward://hlk_apikeypushward://hlk_apikey?level=critical&volume=0.8
Pushy pushy:// (TCP) 443 pushy://apikey/DEVICEpushy://apikey/DEVICE1/DEVICE2/DEVICENpushy://apikey/TOPICpushy://apikey/TOPIC1/TOPIC2/TOPICN
PushDeer pushdeer:// or pushdeers:// (TCP) 80 or 443 pushdeer://pushKeypushdeer://hostname/pushKeypushdeer://hostname:port/pushKey
QQ Push qq:// (TCP) 443 qq://Token
Reddit reddit:// (TCP) 443 reddit://user:password@app_id/app_secret/subredditreddit://user:password@app_id/app_secret/sub1/sub2/subN
Resend resend:// (TCP) 443 resend://APIToken:FromEmail/resend://APIToken:FromEmail/ToEmailresend://APIToken:FromEmail/ToEmail1/ToEmail2/ToEmailN/
Revolt revolt:// (TCP) 443 revolt://bottoken/ChannelIDrevolt://bottoken/ChannelID1/ChannelID2/ChannelIDN
Rocket.Chat rocket:// or rockets:// (TCP) 80 or 443 rocket://user:password@hostname/RoomID/Channelrockets://user:password@hostname:443/#Channel1/#Channel1/RoomIDrocket://user:password@hostname/#Channelrocket://webhook@hostnamerockets://webhook@hostname/@User/#Channel
RSyslog rsyslog:// (UDP) 514 rsyslog://hostnamersyslog://hostname/Facility
Ryver ryver:// (TCP) 443 ryver://Organization/Tokenryver://botname@Organization/Token
SendGrid sendgrid:// (TCP) 443 sendgrid://APIToken:FromEmail/sendgrid://APIToken:FromEmail/ToEmailsendgrid://APIToken:FromEmail/ToEmail1/ToEmail2/ToEmailN/
SendPulse sendpulse:// (TCP) 443 sendpulse://user@host/ClientId/ClientSecretsendpulse://user@host/ClientId/clientSecret/ToEmailsendpulse://user@host/ClientId/ClientSecret/ToEmail1/ToEmail2/ToEmailN/
ServerChan schan:// (TCP) 443 schan://sendkey/
Session Open Group Server session:// or sessions:// (TCP) 80 or 443 sessions://public_key:seed@hostname/roomsessions://public_key:seed@hostname/room1/room2sessions://public_key:seed@hostname:port/roomsession://public_key:seed@hostname/room
Signal API signal:// or signals:// (TCP) 80 or 443 signal://hostname:port/FromPhoneNosignal://hostname:port/FromPhoneNo/ToPhoneNosignal://hostname:port/FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/
Signalgrid signalgrid:// (TCP) 443 signalgrid://CLIENT_KEY/CHANNELsignalgrid://CLIENT_KEY/CHANNEL1/CHANNEL2signalgrid://CLIENT_KEY/CHANNEL?critical=true
SIGNL4 signl4:// (TCP) 80 or 443 signl4://hostname
SimplePush spush:// (TCP) 443 spush://apikeyspush://salt:password@apikeyspush://apikey?event=Apprise
Slack slack:// (TCP) 443 slack://TokenA/TokenB/TokenC/slack://TokenA/TokenB/TokenC/Channelslack://botname@TokenA/TokenB/TokenC/Channelslack://user@TokenA/TokenB/TokenC/Channel1/Channel2/ChannelN
SMTP2Go smtp2go:// (TCP) 443 smtp2go://user@hostname/apikeysmtp2go://user@hostname/apikey/emailsmtp2go://user@hostname/apikey/email1/email2/emailNsmtp2go://user@hostname/apikey/?name="From%20User"
SparkPost sparkpost:// (TCP) 443 sparkpost://user@hostname/apikeysparkpost://user@hostname/apikey/emailsparkpost://user@hostname/apikey/email1/email2/emailNsparkpost://user@hostname/apikey/?name="From%20User"
Spike.sh spike:// (TCP) 443 spike://Token
Splunk splunk:// or victorops:/ (TCP) 443 splunk://route_key@apikeysplunk://route_key@apikey/entity_id
Spug Push spugpush:// (TCP) 443 spugpush://Token
Stackfield stackfield:// (TCP) 443 stackfield://WebhookToken
Streamlabs strmlabs:// (TCP) 443 strmlabs://AccessToken/strmlabs://AccessToken/?name=name&identifier=identifier&amount=0¤cy=USD
Synology Chat synology:// or synologys:// (TCP) 80 or 443 synology://hostname/tokensynology://hostname:port/token
Syslog syslog:// n/a syslog://syslog://Facility
Telegram tgram:// (TCP) 443 tgram://bottoken/ChatIDtgram://bottoken/ChatID1/ChatID2/ChatIDN
Twitter twitter:// (TCP) 443 twitter://CKey/CSecret/AKey/ASecrettwitter://user@CKey/CSecret/AKey/ASecrettwitter://CKey/CSecret/AKey/ASecret/User1/User2/User2twitter://CKey/CSecret/AKey/ASecret?mode=tweet
Twist twist:// (TCP) 443 twist://pasword:logintwist://password:login/#channeltwist://password:login/#team:channeltwist://password:login/#team:channel1/channel2/#team3:channel
Vapid (WebPush) vapid:// (TCP) 443 vapid://subscriber/targetvapid://subscriber/target?subfile=path&keyfile=path
Viber viber:// (TCP) 443 viber://token/target
Webex Teams (Cisco) wxteams:// (TCP) 443 wxteams://Token
WeChat (WeCom) wechat:// (TCP) 443 wechat://CorpID:AppSecret@AgentID/@allwechat://CorpID:AppSecret@AgentID/UserID
WeCom Bot wecombot:// (TCP) 443 wecombot://BotKey
WhatsApp whatsapp:// (TCP) 443 whatsapp://AccessToken@FromPhoneID/ToPhoneNowhatsapp://Template:AccessToken@FromPhoneID/ToPhoneNo
WPUSH wpush:// (TCP) 443 wpush://APIKeywpush://APIKey/Topic1/Topic2/TopicN
WxPusher wxpusher:// (TCP) 443 wxpusher://AppToken@UserID1/UserID2/UserIDNwxpusher://AppToken@Topic1/Topic2/Topic3wxpusher://AppToken@UserID1/Topic1/
XBMC xbmc:// or xbmcs:// (TCP) 8080 or 443 xbmc://hostnamexbmc://user@hostnamexbmc://user:password@hostname:port
XMPP xmpp:// or xmpps:// (TCP) 5222 or 5223 xmpp://user:pass@hostnamexmpps://user:pass@hostname/jidxmpps://user:pass@hostname/jid1/jid2@example.ca
YouLMK youlmk:// (TCP) 443 youlmk://ylk_tokenyoulmk://k_keyyoulmk://ylk_token?priority=criticalyoulmk://ylk_token?failure=critical&url=https://example.com/runs/1
Zoom zoom:// (TCP) 443 zoom://WebhookID/Token
Zulip Chat zulip:// (TCP) 443 zulip://botname@Organization/Tokenzulip://botname@Organization/Token/Streamzulip://botname@Organization/Token/Email
SMS Notifications SMS Notifications for the most part do not have a both a title and body. They consist of a single body which is usually no more then 160 characters in length. When using Apprise, the title and body are therefore combined into a single message prior to their transmission.
Notification Service Service ID Default Port Example Syntax
46elks 46elks:// (TCP) 443 46elks://user:password@FromPhoneNo46elks://user:password@FromPhoneNo/ToPhoneNo46elks://user:password@FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/
800.com eight00com:// (TCP) 443 eight00com://Token@FromPhoneNoeight00com://Token@FromPhoneNo/ToPhoneNoeight00com://Token@FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/
Africas Talking atalk:// (TCP) 443 atalk://AppUser@ApiKey/ToPhoneNoatalk://AppUser@ApiKey/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/
Automated Packet Reporting System (APRS) aprs:// (TCP) 10152 aprs://user:pass@callsignaprs://user:pass@callsign1/callsign2/callsignN
AWS SNS sns:// (TCP) 443 sns://AccessKeyID/AccessSecretKey/RegionName/+PhoneNosns://AccessKeyID/AccessSecretKey/RegionName/+PhoneNo1/+PhoneNo2/+PhoneNoNsns://AccessKeyID/AccessSecretKey/RegionName/Topicsns://AccessKeyID/AccessSecretKey/RegionName/Topic1/Topic2/TopicN
BulkSMS bulksms:// (TCP) 443 bulksms://user:password@ToPhoneNobulksms://User:Password@ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/
BulkVS bulkvs:// (TCP) 443 bulkvs://user:password@FromPhoneNobulkvs://user:password@FromPhoneNo/ToPhoneNobulkvs://user:password@FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/
Burst SMS burstsms:// (TCP) 443 burstsms://ApiKey:ApiSecret@FromPhoneNo/ToPhoneNoburstsms://ApiKey:ApiSecret@FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/
Clickatell clickatell:// (TCP) 443 clickatell://ApiKey/ToPhoneNoclickatell://FromPhoneNo@ApiKey/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN
ClickSend clicksend:// (TCP) 443 clicksend://user:pass@PhoneNoclicksend://user:pass@ToPhoneNo1/ToPhoneNo2/ToPhoneNoN
DAPNET dapnet:// (TCP) 80 dapnet://user:pass@callsigndapnet://user:pass@callsign1/callsign2/callsignN
D7 Networks d7sms:// (TCP) 443 d7sms://token@PhoneNod7sms://token@ToPhoneNo1/ToPhoneNo2/ToPhoneNoN
DingTalk dingtalk:// (TCP) 443 dingtalk://token/dingtalk://token/ToPhoneNodingtalk://token/ToPhoneNo1/ToPhoneNo2/ToPhoneNo1/
Exotel exotel:// (TCP) 443 exotel://sid:token@FromPhoneNoexotel://sid:token@FromPhoneNo/ToPhoneNoexotel://sid:token@FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN
Free-Mobile freemobile:// (TCP) 443 freemobile://user@password/
httpSMS httpsms:// (TCP) 443 httpsms://ApiKey@FromPhoneNohttpsms://ApiKey@FromPhoneNo/ToPhoneNohttpsms://ApiKey@FromPhoneNo
