🏳️Pusher | Leader In Realtime Technologies

Website faviconpusher.com

Simple, scalable and reliable. Hosted realtime APIs loved by developers and trusted by giants. Build live dashboards, notifications, geotracking, chat and more.

[](/)

*   Products

    [*   Build scalable realtime features

        ](/channels/)[*   Programmatic push notifications

        ](/beams/)

*   Developers

    [*   #### Docs

        Read the docs to learn how to use our products

        ](https://pusher.com/docs)[*   #### Tutorials

        Explore our tutorials to build apps with Pusher products

        ](/tutorials/)[*   #### Support

        Reach out to our support team for help and advice

        ](https://docs.bird.com/pusher)[*   #### Glossary

        Get familiar with Pusher-specific terminology

        ](/glossary/)

*   [User stories](/user-stories/)

*   [Blog](/blog/)

*   Pricing

    [*   Build scalable realtime features

        ](/channels/pricing/)[*   Programmatic push notifications

        ](/beams/pricing/)

*   [Sign in](https://dashboard.pusher.com/)

*   [Sign up](https://dashboard.pusher.com/accounts/sign_up)

Powering realtime experiences for mobile and web

================================================

Bi-directional hosted APIs that are flexible, scalable and easy to use. We create and maintain complex messaging infrastructure so you can build the realtime features your users need, fast.

Bi-directional hosted APIs that are flexible, scalable and easy to use.

Get started today and find out what you can build with Pusher

[Use Cases](#use-cases)[Get your free account](https://dashboard.pusher.com/accounts/sign_up?utm_medium=Website&utm_source=Homepage_Signup_CTA&utm_campaign=Homepage_CTA)

PubsubNotifications

Publish

-------

PHPNodeRubyASPJavaPythonGo

    $pusher->trigger('my-channel', 'my-event', [

      'message' => 'hello world'

    ]);

PHPNodeRubyASPJavaPythonGo

    $pusher->trigger('my-channel', 'my-event', [

      'message' => 'hello world'

    ]);

    pusher.trigger('my-channel', 'my-event', {

      "message": "hello world"

    });

    pusher.trigger('my-channel', 'my-event', {

      message: 'hello world'

    })

    pusher.Trigger('my-channel', 'my-event', new {

      message = "hello world"

    });

    pusher.trigger("my-channel", "my-event", Collections.singletonMap("message", "hello world"));

    pusher.trigger('my-channel', 'my-event', {

      'message': 'hello world'

    })

    pusher.Trigger("my-channel", "my-event", map[string]string{

      "message": "hello world",

    })

Subscribe

---------

JSAndroidiOS (Swift)iOS (Obj-C)

    var channel = pusher.subscribe('my-channel');

    channel.bind('my-event', function(data) {

      alert('Received my-event with message: ' + data.message);

    });

JSAndroidiOS (Swift)iOS (Obj-C)

    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);

      }

    });

    let channel = pusher.subscribe("my-channel")channel.bind(eventName: "my-event", callback: { (optionalData: Any?) -> Void in

      if let data = optionalData {

          print("Received event with data: \(data)")

      }

    })

    PusherChannel *channel = [pusher subscribeWithChannelName:@"my-channel"];[channel bindWithEventName:@"my-event" callback:^void (NSDictionary *data) {

        NSString *message = data[@"message"];

        NSLog(@"message received: %@", message);

    }];

[Learn more](/channels/)

Publish API

-----------

Node.JSGoPythonJavaKotlinRuby

    const beamsClient = new PushNotifications({

      instanceId: 'YOUR_INSTANCE_ID_HERE',

      secretKey: 'YOUR_SECRET_KEY_HERE'

    });beamsClient.publishToInterests(['hello'], {

      apns: {

        aps: {

          alert: 'Hello!'

        }

      },

      fcm: {

        notification: {

          title: 'Hello',

          body: 'Hello, world!'

        }

      }

    }).then((publishResponse) => {

      console.log('Just published:', publishResponse.publishId);

    }).catch((error) => {

      console.error('Error:', error);

    });

Node.JSGoPythonJavaKotlinRuby

    const beamsClient = new PushNotifications({

      instanceId: 'YOUR_INSTANCE_ID_HERE',

      secretKey: 'YOUR_SECRET_KEY_HERE'

    });beamsClient.publishToInterests(['hello'], {

      apns: {

        aps: {

          alert: 'Hello!'

        }

      },

      fcm: {

        notification: {

          title: 'Hello',

          body: 'Hello, world!'

        }

      }

    }).then((publishResponse) => {

      console.log('Just published:', publishResponse.publishId);

    }).catch((error) => {

      console.error('Error:', error);

    });

    const (

      instanceId = "YOUR_INSTANCE_ID_HERE"

      secretKey  = "YOUR_SECRET_KEY_HERE"

    )beamsClient := pushnotifications.New(instanceId, secretKey)publishRequest := map[string]interface{}{

      "apns": map[string]interface{}{

        "aps": map[string]interface{}{

          "alert": map[string]interface{}{

            "title": "Hello",

            "body":  "Hello, world",

          },

        },

      },

      "fcm": map[string]interface{}{

        "notification": map[string]interface{}{

          "title": "Hello",

          "body":  "Hello, world",

        },

      },

    }pubId, err := beamsClient.PublishToInterests([]string{"hello"}, publishRequest)

    if err != nil {

      fmt.Println(err)

    } else {

      fmt.Println("Publish Id:", pubId)

    }

    beams_client = PushNotifications(

      instance_id='YOUR_INSTANCE_ID_HERE',

      secret_key='YOUR_SECRET_KEY_HERE',

    )response = beams_client.publish_to_interests(

      interests=['hello'],

      publish_body={

        'apns': {

          'aps': {

            'alert': 'Hello!',

          },

        },

        'fcm': {

          'notification': {

            'title': 'Hello',

            'body': 'Hello, world!',

          },

        },

      },

    )print(response['publishId'])

    String instanceId = "YOUR_INSTANCE_ID_HERE";

    String secretKey = "YOUR_SECRET_KEY_HERE";PushNotifications beamsClient = new PushNotifications(instanceId, secretKey);List<String> interests = Arrays.asList("donuts", "pizza");Map<String, Map> publishRequest = new HashMap();Map<String, String> alert = new HashMap();

    alert.put("alert", "hi");

    Map<String, Map> aps = new HashMap();

    aps.put("aps", alert);

    publishRequest.put("apns", aps);Map<String, String> fcmNotification = new HashMap();

    fcmNotification.put("title", "hello");

    fcmNotification.put("body", "Hello world");

    Map<String, Map> fcm = new HashMap();

    fcm.put("notification", fcmNotification);

    publishRequest.put("fcm", fcm);beamsClient.publishToInterests(interests, publishRequest);

    val instanceId = "YOUR_INSTANCE_ID_HERE"

    val secretKey = "YOUR_SECRET_KEY_HERE"val beamsClient = PushNotifications(instanceId, secretKey)val interests = listOf("donuts", "pizza")

    val publishRequest = hashMapOf(

      "apns" to hashMapOf("aps" to hashMapOf("alert" to "hi")),

      "fcm" to hashMapOf("notification" to hashMapOf("title" to "hello", "body" to "Hello world"))

    )beamsClient.publishToInterests(interests, publishRequest)

    Pusher::PushNotifications.configure do |config|

      config.instance_id = 'YOUR_INSTANCE_ID_HERE'

      config.secret_key = 'YOUR_SECRET_KEY_HERE'

    enddata = {

      apns: {

        aps: {

          alert: {

            title: 'Hello',

            body: 'Hello, world!'

          }

        }

      },

      fcm: {

        notification: {

          title: 'Hello',

          body: 'Hello, world!'

        }

      }

    }Pusher::PushNotifications.publishToInterests(interests: ['hello'], payload: data)

[Learn more](/beams/)

### Trusted by Giants. Loved by developers.

### What can you build with Pusher?

[

#### Realtime charts

From dashboards to stock charts, update data instantly

Read more

](/channels/)[

#### Notifications

Critical transactional information, delivered every time

Read more

](/beams/)[

#### Location tracking

From food delivery to order status, realtime updates at scale

Read more

](/channels/)[

#### In app chat

Bring delightful conversational experiences to all your users

Read more

](/channels/)

[Explore Channels use cases](/channels/use-cases/)[Explore Beams use cases](/beams/)

> “We deal with student data, which comes with serious privacy requirements. We wouldn’t be able to do what we do without Pusher.”

Nick Tyler

Director of Engineering, GoGuardian

> “In our time working together, Pusher has been one of our most reliable technology partners in that we haven't experienced any issues or downtime. The service has been flawless, and their team is super knowledgeable and has been great to work with.”

Connor Thielmann

VP of Business Operations, ServiceTitan

> “The developer experience for us was fantastic. When we’re working with Pusher not only do we have the trusted infrastructure partnership, we also have all of the documentation, the snippets, the client side library which has fallbacks and stuff. It makes life a lot easier.”

Jeremy Bowers

Director of Engineering, The Washington Post

> “We struggled with a lot of our infrastructure to handle a sudden spike in load. We’ve had to engineer a lot of complexity there to solve that. We haven’t had to do that with Pusher.”

Peter Hamilton

Head of Technology, Remind

### We have everything you need to get you set up

### Docs

Full reference of our APIs

[Learn more](https://pusher.com/docs)

### Tutorials

Tutorials to help you get started

[Learn more](https://pusher.com/tutorials)

### 40+ SDKs

Bring our APIs to any tech stack

[Learn more](https://pusher.com/docs/channels)

Start building with Pusher

--------------------------

[Sign up for free](https://dashboard.pusher.com/accounts/sign_up)[Contact sales](https://pusher.com/contact?origin=homepage)

Pusher is a member of the MessageBird team

==========================================

As of November 2020, we have become part of MessageBird. With the weight of the world's largest omnichannel communications platform behind us, the Pusher team remains focused on building developer-led features at scale.

[Find out more](https://messagebird.com/en/?utm_source=messagebird_pusher&utm_medium=homepage_button&utm_campaign=messagebird)

[](/)

Products

--------

*   [Channels](/channels/)

*   [Beams](/beams/)

Developers

----------

*   [Docs](https://pusher.com/docs)

*   [Tutorials](/tutorials/)

*   [Status](https://status.pusher.com/)

*   [Support](https://docs.bird.com/pusher)

*   [Sessions](https://www.youtube.com/channel/UCoyqucxoFXDFnh3khD0rjUg)

*   [Glossary](/glossary/)

Company

-------

*   [Contact Sales](/contact/?origin=footer)

*   [User stories](/user-stories/)

*   [Support](/legal/support/)

*   [Blog](/blog/)

*   [Careers Hiring](/careers/)

Legal

-----

*   [Terms & Conditions](http://www.messagebird.com/legal/terms-and-conditions)

*   [Cookie Policy](/legal/cookie-policy/)

*   [Privacy Policy](https://www.messagebird.com/en/legal/privacy)

*   [Contests](/legal/contests/)

*   [Quotas](/legal/quotas/)

*   [Security](/security/)

*   [Code of Conduct](/code-of-conduct/)

*   [](https://twitter.com/pusher)

*   [](https://www.youtube.com/channel/UCoyqucxoFXDFnh3khD0rjUg)

*   [](https://www.linkedin.com/company/pusher-app/)

*   [](https://github.com/pusher)

*   [](https://www.twitch.tv/pusherdev)

*   [](https://discord.gg/pEWjmP9uA7)

© 2025 Pusher Ltd. All rights reserved.  

Pusher Limited is a company registered in England and Wales (No. 07489873) whose registered office is at MessageBird UK Limited, 3 More London Riverside, 4th Floor, London, United Kingdom, SE1 2AQ.

By using the Pusher site, you agree with our use of cookies.

[Cookie Policy](/legal/cookie-policy)

AcceptSee details

word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word

mmMwWLliI0fiflO&1  

mmMwWLliI0fiflO&1  

mmMwWLliI0fiflO&1  

mmMwWLliI0fiflO&1  

mmMwWLliI0fiflO&1  

mmMwWLliI0fiflO&1  

mmMwWLliI0fiflO&1