Build Apps,
Not Infrastructure

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

Get Started
or Get in touch

& 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


Billion Messages
To more than


Connected Devices


Uptime in the
last 6 months

We help SaaS Companies Easily Build Collaborative Features

Easy and works everywhere

  • Go
  • Python
  • Java
  • ASP
  • Ruby
  • Node
  • PHP
data := map[string]string{"message": "hello world"}
client.Trigger("test_channel", "my_event", data)
pusher['my-channel'].trigger('my-event', {
  'message': 'hello world'
pusher.trigger("my-channel", "my-event", Collections.singletonMap("message", "hello world"));
pusher.Trigger('test_channel', 'my_event', new { message = "hello world" } );
Pusher.trigger('my-channel', 'my-event', {
  message: 'hello world'
pusher.trigger('my-channel', 'my-event', {
  "message": "hello world"
<?php $pusher->trigger('my-channel', 'my-event',
    array('message' => 'hello world'));
  • iOS (Swift)
  • iOS (Obj-C)
  • Android
  • JS
let channel = pusher.subscribe("my-channel")

channel.bind("my-event", callback: { (data: AnyObject?) -> Void in
  print("Received event with data: (data)")
PTPusherChannel *channel = [client subscribeToChannelNamed:@"my-channel"];
[channel bindToEventNamed:@"my-event" handleWithBlock:^(PTPusherEvent
*channelEvent) {
  NSString *message = [ objectForKey:@"text"];
  NSLog(@"message received: %@", message);
Channel channel = pusher.subscribe("my-channel");
channel.bind("my-event", new SubscriptionEventListener() {
  public void onEvent(String channel, String event, String data) {
    System.put.println("Received event with data: " + data);
var channel = pusher.subscribe('my-channel');
channel.bind('my-event', function(data) {
  alert('Received my-event with message: ' + data.message);

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.

Explore Our Docs

Powerful features to make your life easier

Flexible Pub/Sub Messaging

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

View Pub/Sub

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.

View Presence Channels

Access control/authentication

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

View Authentication

Grow your business with
Pusher Enterprise

Our Enterprise packages are individually tailored to your requirements.

Get in touch