NEW in Beta! Mobile Push Notifications API Learn More »

Build Apps,
Not Infrastructure

We spend our time maintaining reliable and scalable realtime infrastructure so you can spend yours building awesome realtime features.

& 100k Developers

Since 2011, they’ve been using our Data Delivery Network to get their app data to their Web, Mobile, IOT devices

Each month we...

Send more than

160

Billion Messages
To more than

6.5

Billion
Connected Devices
With

99.98%

Uptime in the
last 6 months

We help SaaS Companies Easily Build Collaborative Features

Easy and works everywhere

  • Publish
  • PHP
  • Node
  • Ruby
  • ASP
  • Java
  • Python
  • Go
<?php $pusher->trigger('my-channel', 'my-event',
    array('message' => 'hello world'));
pusher.trigger('my-channel', 'my-event', {
  "message": "hello world"
});
Pusher.trigger('my-channel', 'my-event', {
  message: 'hello world'
});
pusher.Trigger('test_channel', 'my_event', new { message = "hello world" } );
pusher.trigger("my-channel", "my-event", Collections.singletonMap("message", "hello world"));
pusher['my-channel'].trigger('my-event', {
  'message': 'hello world'
})
data := map[string]string{"message": "hello world"}
client.Trigger("test_channel", "my_event", data)
  • Subscribe
  • JS
  • Android
  • iOS (Obj-C)
  • iOS (Swift)
var channel = pusher.subscribe('my-channel');
channel.bind('my-event', function(data) {
  alert('Received my-event with message: ' + data.message);
});
Channel channel = pusher.subscribe("my-channel");
channel.bind("my-event", new SubscriptionEventListener() {
  @Override
  public void onEvent(String channel, String event, String data) {
    System.put.println("Received event with data: " + data);
  }
});
PTPusherChannel *channel = [client subscribeToChannelNamed:@"my-channel"];
[channel bindToEventNamed:@"my-event" handleWithBlock:^(PTPusherEvent
*channelEvent) {
  NSString *message = [channelEvent.data objectForKey:@"text"];
  NSLog(@"message received: %@", message);
}];
let channel = pusher.subscribe("my-channel")

channel.bind("my-event", callback: { (data: AnyObject?) -> Void in
  print("Received event with data: (data)")
})

We <3 developers

With 30+ libraries, we make it easy for developers to build realtime features. Check out our dev center to discover tutorials and our API Documentation.

I'm a Developer

Powerful features to make your life easier

  • Pub/Sub Messaging
  • Live User List
  • Access Control

Flexible Pub/Sub Messaging

Instantly update browsers, mobiles and IOT devices
with our simple event-based API.

Live user lists (presence)

Presence channels enable you to show the online/offline status of your users in realtime, making the development of chat and collaborative apps a cinch.

Access control/authentication

We provide a secure mechanism for controlling who has access to given channels, seamlessly integrating with your existing authentication strategies.

Grow your business with
Pusher Enterprise

Our Enterprise packages are individually tailored to your requirements.

Contact Sales