Push notifications to devices and browsers via Pushbullet

3.3.0 2016-05-22 12:42 UTC



A PHP library for the Pushbullet API allowing you to send all supported push notification types, manage contacts, send SMS messages, create/delete channels, and manage channel subscriptions.

For more information, you can refer to these links:



Create a composer.json file in your project root:

    "require": {
        "ivkos/pushbullet": "3.*"

Run php composer.phar install to download the library and its dependencies.

Quick Documentation

Add this line to include Composer packages:

require 'vendor/autoload.php';

Initialize Pushbullet with your API key:

// Get your access token here: https://www.pushbullet.com/account
$pb = new Pushbullet\Pushbullet('YOUR_ACCESS_TOKEN');

If you use PHP for Windows it may be necessary to point cURL to a CA certificate bundle, or disable SSL certificate verification altogether:

Pushbullet\Connection::setCurlCallback(function ($curl) {
	// Get a CA certificate bundle here:
    // https://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt
    curl_setopt($curl, CURLOPT_CAINFO, 'C:/path/to/ca-bundle.crt');

	// Not recommended! Makes communication vulnerable to MITM attacks:
    // curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);


To list all active devices on your account:


Returns an array of Device objects.

You can target a particular device by using its iden or nickname:

$pb->device("Galaxy S4")->getPhonebook();

Returns an array of PhonebookEntry objects with names and phone numbers.

To target all available devices for pushing:

$pb->allDevices()->pushAddress("Google HQ", "1600 Amphitheatre Parkway");

This will send the address to all devices, and return a Push object.

Push Notifications

You can use push* methods for Contact, Channel and Device objects. Every push* method returns a Push object. If an object cannot be pushed to, a NotPushableException will be thrown.



  • Title
  • Body
$pb->device("Galaxy S4")->pushNote("Hello world!", "Lorem ipsum...");



  • Title
  • URL
  • Body
$pb->device("Galaxy S4")->pushLink("ivkos on GitHub", "https://github.com/ivkos", "Look at my page!");



  • Name - the place's name.
  • Address - the place's address or a map search query.
$pb->device("Galaxy S4")->pushAddress("Google HQ", "1600 Amphitheatre Parkway");



  • Title
  • Array of items in the list
$pb->device("Galaxy S4")->pushList("Shopping List", [



  • File path
  • MIME type (optional) - if null, MIME type will be magically guessed
  • Title (optional)
  • Body (optional)
  • Alternative file name (optional) - push the file as if it had this file name
$pb->device("Galaxy S4")->pushFile(
	"Look at this photo!",
	"I think it's pretty cool",

SMS Messaging

You can send SMS messages only from supported devices. If an attempt is made to send an SMS message from a device doesn't support it, a NoSmsException will be thrown.

$pb->device("Galaxy S4")->sendSms("+359123", "Hello there!");

Send an SMS text to all people in a device's phonebook:

$people = $pb->device("Galaxy S4")->getPhonebook();

foreach ($people as $person) {
	$person->sendSms("Happy New Year!");

Channel Management

Get a list of channel subscriptions:


Returns an array of Channel objects with subscription information.

To subscribe or unsubscribe from channels:


Subscribing to a channel will return a Channel object with subscription information.

Get a list of channels created by the current user:


Returns an array of Channel objects.

Contact Management

Contacts are people you can send push notification to. They are not to be confused with entries in a device's phonebook.

To list contacts on your account:


Returns an array of Contact objects.

To create a contact:

$pb->createContact("John Doe", "johndoe@example.com");

Returns a Contact object for the newly created contact.

You can target a particular contact by its email or name:

$pb->contact("johndoe@example.com")->pushNote("Hey John!", "Where are you?");

To delete a contact:


To change a contact's name:


Returns a Contact object with an updated name.

For more detailed documentation, please refer to the PHPDoc in the source files.