Skip to content


Post a message via Pushbullet


This function posts a message to Pushbullet. Different types of messages are supported: ‘note’, ‘link’, ‘address’, or ‘file’.


pbPost(type = c("note", "link", "file"), title = "", body = "",
  url = "", filetype = "text/plain", recipients, email, channel, deviceind,
  apikey = .getKey(), devices = .getDevices(), verbose = FALSE,
  debug = FALSE)


Argument Description
type The type of post: one of ‘note’, ‘link’, or ‘file’.
title The title of the note being posted.
body The body of the note or the (optional) body when the type is ‘link’.
url The URL of type is ‘link’, or the local path of a file to be sent if type is ‘file’.
filetype The MIME type for the file at url (if type is ‘file’) such as “text/plain” or “image/jpeg”, defaults to “text/plain”.
recipients A character or numeric vector indicating the devices this post should go to. If missing, the default device is looked up from an optional setting, and if none has been set the push is sent to all devices.
email An alternative way to specify a recipient is to specify an email address. If both recipients and email are present, recipients is used.
channel A channel tag used to specify the name of the channel as the recipient. If either recipients or email are present, they will take precedence over channel.
deviceind (Deprecated) The index (or a vector/list of indices) of the device(s) in the list of devices.
apikey The API key used to access the service. It can be supplied as an argument here, via the global option rpushbullet.key, or via the file ~/.rpushbullet.json which is read at package initialization (and, if found, also sets the global option).
devices The device to which this post is pushed. It can be supplied as an argument here, or via the file ~/.rpushbullet.json which is read at package initialization.
verbose Boolean switch to add additional output
debug Boolean switch to add even more debugging output


This function invokes the ‘pushes’ functionality of the Pushbullet API; see for more details.

When a ‘note’ is pushed, the recipient receives the title and body of the note. If a ‘link’ is pushed, the recipient's web browser is opened at the given URL. If an ‘address’ is pushed, the recipient's web browser is opened in map mode at the given address.

If ‘recipients’ argument is missing, the post is pushed to all devices in accordance with the API definition. If ‘recipients’ is text vector, it matched against the device names (from either the config file or a corresponding option). Lastly, if ‘recipients’ is a numeric vector, the post is pushed the corresponding elements in the devices vector.

In other words, the default of value of no specified recipients results in sending to all devices. If you want a particular subset of devices you have to specify it name or index. A default device can be set in the configuration file, or as a global option. If none is set, zero is used as a code to imply ‘all’ devices.

The earlier argument deviceind is now deprecated and will be removed in a later release.

In some cases servers may prefer the older ‘HTTP 1.1’ standard (as opposed to the newer ‘HTTP 2.0’ set by curl). Setting the option “rpushbullet.useHTTP11” to TRUE will enable use of ‘HTTP 1.1’.


A JSON result record is return invisibly


Dirk Eddelbuettel


## Not run: 
# A note
pbPost("note", "A Simple Test", "We think this should work.\nWe really do.")

# A URL -- should open browser
pbPost(type="link", title="Some title", body="Some URL",

# A file
pbPost(type="file", url=system.file("DESCRIPTION", package="RPushbullet"))

## End(Not run)