# 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'
```

```cpp label="Unreal"
// register the device with APN (Apple only)
Client->AddDevice(TEXT("device-token"), EPushProvider::Apn);

// register the device with Firebase (Android only)
Client->AddDevice(TEXT("device-token"), EPushProvider::Firebase);
```

</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'
```

```cpp label="Unreal"
Client->RemoveDevice(TEXT("device-token"));
```

</Tabs>

### List Devices

Provides a list of all devices associated with a user.

<Tabs>

```cpp label="Unreal"
Client->ListDevices(
  [](const TArray<FDevice> Devices)
  {
    // Do something with Devices
  });
```

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

</Tabs>


---

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

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