Pushpad Logo Pushpad

Web Push Notifications Service

Pushpad is the easiest way to add push notifications to your website or web app.

Desktop notification b906920265bdebf69b816f8d9bbfab306f1e5c41bb3f06836e4134dd659e4299

With web push notifications you can reach your users even when your website is not open.

Users don't need to install any app or plugin, since everything relies on browser's built-in features: W3C Push API for Chrome and Firefox, Apple Push Notification service for Safari.

Pushpad express subscription page 7da70b4394fb821254a095e1d7c0c34c04a29ca0133607ce15f3f650277854fe

Pushpad Express

The easiest solution to create a channel to send push notifications to your users. You don't even need programming skills. When you create a new project you can setup your own subdomain on Pushpad and you get a link. Share it with your users to let them subscribe to your notifications.

Get started

Pushpad pro prompt and code f600e70ffcab4852e95e6e9c9fa3f93b46013f8152bd987d70eae94f69a7c81c

Pushpad Pro

A customizable solution made for developers and large projects who want to add push notifications to a website or web app. Choose Pushpad Pro if you are looking for a Backend as a Service and you want to subscribe users to push notifications directly on your website using the Javascript SDK.

Get started

Sending push notifications

You can send notifications manually from the control panel. You can also automate notification sending with the REST API or using one of the libraries. Pushpad also offers RSS feed integration.

Send new notification with browser frame b5bcce47ad5af33a48b14ae10f8affd428085ccd693a002701c67cc83a007984
notification = Pushpad::Notification.new({
  body: "Hello world!",
  title: "Website Name",
  target_url: "http://example.com"
})

# deliver to a user
notification.deliver_to user

# deliver to a group of users
notification.deliver_to users

# deliver to some users only if they have a given preference
# e.g. only users who have opted in for global announcements will be reached
notification.deliver_to users, tags: ['global-announcements']

# deliver to segments
notification.broadcast tags: ['segment1', 'segment2']

# deliver to everyone
notification.broadcast
$notification = new Pushpad\Notification(array(
  'body' => "Hello world!",
  'title' => "Website Name",
  'target_url' => "http://example.com"
));

# deliver to a user
$notification->deliver_to($user_id);

# deliver to a group of users
$notification->deliver_to($user_ids);

# deliver to some users only if they have a given preference
# e.g. only users who have opted in for global announcements will be reached
$notification->deliver_to($users, ["tags" => ["global-announcements"]]);

# deliver to segments
$notification->broadcast(["tags" => ["segment1", "segment2"]]);

# deliver to everyone
$notification->broadcast();
var pushpad = require('pushpad');

var project = new pushpad.Pushpad({
  authToken: AUTH_TOKEN,
  projectId: PROJECT_ID
});

var notification = new pushpad.Notification({
  project: project,
  body: 'Hello world!',
  title: 'Website Name',
  targetUrl: 'http://example.com'
});

// deliver to a user
notification.deliverTo(user1, function(err, result) { /*...*/ });

// deliver to a group of users
notification.deliverTo([user1, user2, user3], function(err, result) { /*...*/ });

// deliver to some users only if they have a given preference
// e.g. only users who have opted in for global announcements will be reached
notification.deliverTo(users, { tags: ['global-announcements'] }, function (err, result) { /*...*/ });

// deliver to segments
notification.broadcast({ tags: ['segment1', 'segment2'] }, function (err, result) { /*...*/ });

// deliver to everyone
notification.broadcast(function(err, result) { /*...*/ });
import pushpad

project = pushpad.Pushpad(auth_token='5374d7dfeffa2eb49965624ba7596a09', project_id=123)

notification = pushpad.Notification(
    project,
    body="Hello world!",
    title="Website Name",
    target_url="http://example.com"
)

# deliver to a user
notification.deliver_to(user_id)

# deliver to a group of users
notification.deliver_to((user1_id, user2_id, user3_id))

# deliver to some users only if they have a given preference
# e.g. only users who have opted in for global announcements will be reached
notification.deliver_to((user1_id, user2_id, user3_id), tags=['global-announcements'])

# deliver to segments
notification.broadcast(tags=['segment1', 'segment2'])

# deliver to everyone
notification.broadcast()
String authToken = "5374d7dfeffa2eb49965624ba7596a09";
String projectId = "123";
Pushpad pushpad = new Pushpad(authToken, projectId);

Notification notification = pushpad.buildNotification("Website Name", "Hello world!", "http://example.com");

try {
  // deliver to a user
  notification.deliverTo("user_id");

  // deliver to a group of users
  String[] users = {"user1_id", "user2_id", "user3_id"};
  notification.deliverTo(users);

  // deliver to some users only if they have a given preference
  // e.g. only users who have opted in for global announcements will be reached
  String[] tags1 = {"global-announcements"};
  notification.deliverTo(users, tags1);

  // deliver to segments
  String[] tags2 = {"segment1", "segment2"};
  notification.broadcast(tags2);

  // deliver to everyone
  notification.broadcast();
} catch (DeliveryException e) {
  e.printStackTrace();
}
curl -H 'Authorization: Token token="AUTH_TOKEN"' \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -X POST 'https://pushpad.xyz/projects/PROJECT_ID/notifications' \
  -d '{
    "notification": {
      "body": "Hello world!",
      "title": "Website Name",
      "target_url": "http://example.com"
    },
    "uids": ["user1_id", "user2_id", "user3_id"],
    "tags": ["segment1", "segment2"]
  }'

Analytics

See how many people subscribe to your notifications, the number of clicks and the delivery status for each notification.

Privacy

We respect the privacy of your business and we don't collect or resell data about your users for marketing purposes other than yours.

Wordpress plugin metabox 1abd8e2acdf72a14b5bb26a30498fe17e658d6ce0b2bd67011ff0219061bf065

Wordpress integration

Push notifications re-engage your users by notifying them when you publish something new on your blog.

Get started

Sign up now to get 10,000 notifications/mo for free forever!

Supported Browsers

Pushpad currently works with all browsers that support push notifications.