Pushover¶
URL Format¶
pushover://shoutrrr:apiToken@userKey/?devices=device1[,device2, ...]
URL Fields¶
- Token - API Token/Key (Required)
URL part:pushover://:token@user/ - User - User Key (Required)
URL part:pushover://:token@user/
Query/Param Props¶
Props can be either supplied using the params argument or through the URL using
?key=value&key=value etc.
-
devices - The devices to send to, or empty for all of the user's devices Default: empty
-
encryptionkey - 256-bit AES key as 64 hex characters for end-to-end encryption Default: empty Aliases:
key -
priority - Message priority from -2 (lowest) to 1 (high) Default:
0 -
timestamp - Unix time in seconds to show instead of when Pushover received the message Default:
0 -
title - Notification title, optionally set by the sender Default: empty
Getting the keys from Pushover¶
At your Pushover dashboard you can view your userKey in the top right.

The Name column of the device list is what is used to refer to your devices (device1 etc.)

At the bottom of the same page there are links your applications, where you can find your apiToken

The apiToken is displayed at the top of the application page.

Optional parameters¶
You can optionally specify the title and priority parameters in the URL:
pushover://shoutrrr:token@userKey/?devices=device&title=Custom+Title&priority=1
Note
Only supply priority values between -1 and 1, since 2 requires additional parameters that are not supported yet.
Message time¶
Pushover shows and orders messages by the time its servers received them, so messages sent close together can appear out of order.
The timestamp param sets the time to show instead, as a Unix time in seconds, such as the time the event happened.
It is usually set for each send, as in params["timestamp"] = strconv.FormatInt(time.Now().Unix(), 10), but the URL can also set it.
The timestamp must not be negative, and 0 leaves the time to Pushover.
End-to-end encryption does not cover it, so it is always sent as is.
Message level¶
A sender can set a message level with the level param, as Params.SetLevel does.
When neither the URL nor the send params set priority, the level picks the priority:
| Level | Priority |
|---|---|
| Debug | -1 (low) |
| Info | 0 (normal) |
| Warning | 0 (normal) |
| Error | 1 (high) |
High priority bypasses quiet hours, so only errors use it.
A priority in the URL or the send params takes precedence over the level, even when it is set to the default.
End-to-end encryption¶
Pushover end-to-end encryption encrypts message and title on the client before they are sent.
Generate a 256-bit key and configure the same value in the Pushover iOS or Android app:
openssl rand -hex 32
Then include it in the service URL:
pushover://shoutrrr:token@userKey/?encryptionkey=64-char-hex
key is accepted as an alias for encryptionkey.
A valid key enables encryption automatically.
An invalid key fails during URL verification, and encryption errors refuse to send rather than falling back to plaintext.
Encrypted fields are larger than the original text and still count toward Pushover's 1024-character field limit. Desktop clients cannot decrypt end-to-end encrypted messages.
Please refer to the Pushover API documentation for more information.