# Registering Push Devices

Once your app has enabled the push notifications, you can use the APIs to register user devices such as iPhones and Android phones.

<Admonition type="info">

Each chat user has a limit of  **25**  unique devices. Once this limit is reached, the oldest device will be removed and replaced by the new device.

</Admonition>

### Device Parameters

| name               | type    | description                                                                      | default | optional |
| ------------------ | ------- | -------------------------------------------------------------------------------- | ------- | -------- |
| user_id            | string  | The user ID for this device                                                      | -       |          |
| id                 | string  | The device ID.                                                                   | -       |          |
| push_provider      | string  | The push provider for this device. Either APN, Firebase, Huawei, or Xiaomi.      | -       |          |
| disabled           | boolean | Set if the device is disabled                                                    | -       | ✓        |
| disabled_reason    | string  | Explanation if the device is disabled                                            | -       | ✓        |
| push_provider_name | string  | The push provider name for this device if a multi-bundle configuration is added. | -       | ✓        |

### Register a Device

Registering a device associates it with a user and tells the push provider to send new message notifications to the device.

<Admonition type="info">

Register the user's device for remote push notifications once your user is successfully connected to Chat.

</Admonition>

<Admonition type="info">

Multi-bundle configurations require that you specify a push_provider_name when registering a device that corresponds to the name of the push configuration that you've set up in the dashboard or via the API.

</Admonition>

<Tabs>

```bash label="Bash"
stream chat:push:device:add \
  --device_id '2ffca4ad6599adc9b5202d15a5286d33c19547d472cd09de44219cda5ac30207'
  --user_id '42'
  --provider 'apn'
```

```ruby label="Ruby"
require 'getstream_ruby'
Models = GetStream::Generated::Models

client.common.create_device(Models::CreateDeviceRequest.new(
  id: '2ffca4ad6599adc9b5202d15a5286d33c19547d472cd09de44219cda5ac30207',
  push_provider: 'apn',
  user_id: '42'
))
```

</Tabs>

### Unregister a Device

Unregistering a device removes the device from the user and stops further new message notifications.

<Tabs>

```bash label="Bash"
stream chat:push:device:delete \
  --device_id '2ffca4ad6599adc9b5202d15a5286d33c19547d472cd09de44219cda5ac30207'
  --user_id '42'
```

```ruby label="Ruby"
require 'getstream_ruby'
Models = GetStream::Generated::Models

client.common.delete_device(
  '2ffca4ad6599adc9b5202d15a5286d33c19547d472cd09de44219cda5ac30207',
  '42'
)
```

</Tabs>

### List Devices

Provides a list of all devices associated with a user.

<Tabs>

```bash label="Bash"
stream chat:push:device:get --user_id '42'
```

```ruby label="Ruby"
require 'getstream_ruby'

client.common.list_devices(user_id)
```

</Tabs>


---

This page was last updated at 2026-08-07T20:38:03.012Z.

For the most recent version of this documentation, visit [https://getstream.io/chat/docs/ruby/push-devices/](https://getstream.io/chat/docs/ruby/push-devices/).