# 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/realtime/realtime-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/realtime/realtime-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/realtime/realtime-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/realtime/realtime-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/realtime/realtime-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/realtime/realtime-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/realtime/push.md): API reference for the Push interface in the Ably Pub/Sub JavaScript Realtime SDK.
- [PushAdmin](https://ably.com/docs/pub-sub/api/javascript/realtime/push-admin.md): API reference for the Push admin (PushAdmin) interface in the Ably Pub/Sub JavaScript Realtime 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.