Skip to content

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. Screenshot 1

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

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

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

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.