---
source_url: https://www.pubnub.com/docs/integrations/mobile-push-notifications/check-push-device-registration
title: Check push device registration
updated_at: 2026-09-30T07:20:08.000Z
---

# Check push device registration

## Documentation index

To discover more PubNub resources:

1. Fetch [PubNub's llms.txt](https://www.pubnub.com/llms-full.txt) for a list of available pages in Markdown format.
2. Identify relevant URLs from that index.
3. Fetch the target pages.

Do not assume a path exists, always check the index first.

This guide shows you how to confirm whether a specific device token is still registered on the channels you expect. It uses a REST call, part of [Mobile Push Notifications](https://www.pubnub.com/docs/integrations/mobile-push-notifications/overview.md). Firebase Cloud Messaging (FCM) and Apple Push Notification service (APNs) registrations use different endpoints, so send the request that matches how the device registered, over HTTPS.

## Check an FCM device registration

Send a GET request to the v1 devices endpoint with `type=fcm`:

```bash
curl 'https://ps.pndsn.com/v1/push/sub-key/{sub_key}/devices/{device_token}?type=fcm&uuid={user_id}'
```

* `{sub_key}`: your app's subscribe key.
* `{device_token}`: the FCM registration token you want to check.
* `{user_id}`: the User ID making the request.

If Access Manager is enabled on the keyset, also add the parameters in [Authorize the request](#authorize-the-request).

## Check an APNs2 device registration

Devices registered with the `apns2` push type use the v2 `devices-apns2` endpoint, not the v1 devices endpoint. Send a GET request with the APNs environment and topic:

```bash
curl 'https://ps.pndsn.com/v2/push/sub-key/{sub_key}/devices-apns2/{device_token}?environment={environment}&topic={topic}&uuid={user_id}'
```

* `{sub_key}`: your app's subscribe key.
* `{device_token}`: the APNs device token you want to check.
* `{environment}`: `development` or `production`. Use the same value the app used when it registered the device. A build installed by Xcode gets a development device token, and a TestFlight or App Store build gets a production one.
* `{topic}`: the app's bundle identifier, for example `com.yourcompany.yourapp`. Use the same value the app used when it registered the device.
* `{user_id}`: the User ID making the request.

If Access Manager is enabled on the keyset, also add the parameters in [Authorize the request](#authorize-the-request).

## Authorize the request

If [Access Manager](https://www.pubnub.com/docs/security/access-control/overview.md) is enabled on the keyset, add a token to either request with the `auth` query parameter:

```bash
curl 'https://ps.pndsn.com/v2/push/sub-key/{sub_key}/devices-apns2/{device_token}?environment={environment}&topic={topic}&uuid={user_id}&auth={token}'
```

`{token}` is an Access Manager token your server granted for this User ID. Listing a device's channels doesn't need a channel permission, but PubNub still checks that the token is valid and belongs to this User ID. An invalid token returns `403`. Append `&auth={token}` to the FCM request the same way. A server that holds the secret key can instead sign the request with the `signature` and `timestamp` parameters. See [Initialize a server SDK with a secret key](https://www.pubnub.com/docs/security/access-control/initialize-server-sdk.md). Keep the secret key on your server.

## Read the response

Both endpoints return a list of the channels the device is registered on for that push type:

```json
["channel1", "channel2", "channel3"]
```

If the device is registered on many channels, the response is paginated. Pass `start` with the last channel from the previous response, and `count` for the page size.

If the list contains the channels you expect, the device is correctly registered and push delivery issues lie elsewhere, for example in the payload. See [Check the FCM payload](https://www.pubnub.com/docs/integrations/mobile-push-notifications/check-fcm-payload.md) if you're sending through FCM.

If the APNs2 list is empty, first confirm that `environment` and `topic` match the values the app registered with. If they match, or the FCM list is empty, the device token is likely invalid or no longer registered. APNs or FCM may have marked the token invalid, and PubNub unregistered it from every channel. This call only confirms the device's current registration state. To find out why the token became invalid, see [Debug push notification messages](https://www.pubnub.com/docs/integrations/mobile-push-notifications/debug-push-notification-messages.md) or [Forward push errors and device removals to your endpoint](https://www.pubnub.com/docs/integrations/mobile-push-notifications/set-up-push-webhooks.md).

## Related tasks

* [Debug push notification messages](https://www.pubnub.com/docs/integrations/mobile-push-notifications/debug-push-notification-messages.md). Find out why a device was unregistered or a push failed to send.
* [Forward push errors and device removals to your endpoint](https://www.pubnub.com/docs/integrations/mobile-push-notifications/set-up-push-webhooks.md). Send push errors and device-removal events to your endpoint.
* [Check the FCM payload](https://www.pubnub.com/docs/integrations/mobile-push-notifications/check-fcm-payload.md). Confirm your FCM message uses the correct `data` or `notification` keys.
* [Send push notifications on iOS](https://www.pubnub.com/docs/integrations/mobile-push-notifications/send-push-notifications-ios.md). Configure APNs credentials and register a device.
* [Send push notifications on Android](https://www.pubnub.com/docs/integrations/mobile-push-notifications/send-push-notifications-android.md). Configure FCM credentials and register a device.
* [Mobile push notifications](https://www.pubnub.com/docs/integrations/mobile-push-notifications/overview.md). How Mobile Push Notifications bridges pub/sub with APNs and FCM.
* [API limits](https://www.pubnub.com/docs/architecture/limits.md#mobile-push). Push credential and payload size limits.

Last updated at: 2026-09-30T07:20:08.000Z
