# PushChannel The `PushChannel` object lets a device subscribe to and unsubscribe from push notifications published on a channel, and list the push subscriptions on that channel. Access it via `channel.push`. #### Javascript ``` const pushChannel = channel.push; ``` ## Subscribe this device `pushChannel.subscribeDevice(): Promise` Subscribe the local device to the channel's push notifications. ### Javascript ``` await channel.push.subscribeDevice(); ``` ### Returns `Promise` Returns a promise. The promise is fulfilled when the subscription has been created, or rejected with an [`ErrorInfo`](https://ably.com/docs/pub-sub/api/javascript/rest/rest-client.md#errorinfo) object. ## Subscribe all devices with this clientId `pushChannel.subscribeClient(): Promise` [Subscribe all devices associated with this client's `clientId`](https://ably.com/docs/push/publish.md#sub-channels) to the channel's push notifications. ### Javascript ``` await channel.push.subscribeClient(); ``` ### Returns `Promise` Returns a promise. The promise is fulfilled when the subscription has been created, or rejected with an [`ErrorInfo`](https://ably.com/docs/pub-sub/api/javascript/rest/rest-client.md#errorinfo) object. ## Unsubscribe this device `pushChannel.unsubscribeDevice(): Promise` Unsubscribe the local device from the channel's push notifications. ### Javascript ``` await channel.push.unsubscribeDevice(); ``` ### Returns `Promise` Returns a promise. The promise is fulfilled when the subscription has been removed, or rejected with an [`ErrorInfo`](https://ably.com/docs/pub-sub/api/javascript/rest/rest-client.md#errorinfo) object. ## Unsubscribe all devices with this clientId `pushChannel.unsubscribeClient(): Promise` [Unsubscribe all devices associated with this client's `clientId`](https://ably.com/docs/push/publish.md#sub-channels) from the channel's push notifications. ### Javascript ``` await channel.push.unsubscribeClient(); ``` ### Returns `Promise` Returns a promise. The promise is fulfilled when the subscriptions have been removed, or rejected with an [`ErrorInfo`](https://ably.com/docs/pub-sub/api/javascript/rest/rest-client.md#errorinfo) object. ## List subscriptions on this channel `pushChannel.listSubscriptions(params?: Record): Promise>` Lists push subscriptions on the channel by querying the REST API's [list channel subscriptions endpoint](https://ably.com/docs/api/rest-api.md#list-channel-subscriptions). These subscriptions can be a list of client (`clientId`) subscriptions, device (`deviceId`) subscriptions, or a combination of both. This method requires clients to have the [Push Admin capability](https://ably.com/docs/push.md#push-admin). ### Javascript ``` const subscriptions = await channel.push.listSubscriptions({ deviceId: '' }); ``` ### Parameters The `listSubscriptions()` method takes the following parameters: | Parameter | Required | Description | Type | | --- | --- | --- | --- | | params | Optional | An object containing key-value pairs to filter subscriptions by. Can contain `clientId`, `deviceId`, or a combination of both, and a `limit` on the number of subscriptions returned (up to 1,000). | `Record` |
### Returns `Promise>` Returns a promise. The promise is fulfilled with a [`PaginatedResult`](https://ably.com/docs/pub-sub/api/javascript/rest/rest-client.md#PaginatedResult) containing an array of `PushChannelSubscription` objects, which supports pagination using its `next` and `first` methods, or rejected with an [`ErrorInfo`](https://ably.com/docs/pub-sub/api/javascript/rest/rest-client.md#errorinfo) object. | Property | Description | Type | | --- | --- | --- | | channel | The channel that this push notification subscription is associated with. | String | | deviceId | The device with this identifier is linked to this channel subscription. When present, `clientId` is never present. | String or Undefined | | clientId | Devices with this [client identifier](https://ably.com/docs/auth/identified-clients.md) are included in this channel subscription. When present, `deviceId` is never present. | String or Undefined |
## Related Topics - [Push](https://ably.com/docs/pub-sub/api/javascript/rest/push.md): API reference for the Push interface in the Ably Pub/Sub JavaScript REST SDK. - [PushAdmin](https://ably.com/docs/pub-sub/api/javascript/rest/push-admin.md): API reference for the Push admin (PushAdmin) interface in the Ably Pub/Sub JavaScript REST SDK. ## Documentation Index To discover additional Ably documentation: 1. Fetch [llms.txt](https://ably.com/llms.txt) for the canonical list of available pages. 2. Identify relevant URLs from that index. 3. Fetch target pages as needed. Avoid using assumed or outdated documentation paths.