Is it possible to retrieve Expo projectId from a push token via Expo API?
## Description
We would like to ask whether it is possible to retrieve the Expo project identifier (projectId / experienceId) from an Expo push token on the backend side, ideally via an Expo API endpoint.
We have a backend endpoint for storing push tokens (protected by authentication + bearer token). The endpoint is not public. However, during local development we have access to multiple builds via Xcode and dev credentials.
During testing, the app was accidentally run with credentials belonging to a different Expo project. The app still called the same backend endpoint, which caused our backend to store a push token that belonged to another project.
Later, when sending multicast notifications, we received the following error:
Expo error: Error: All push notification messages in the same request must be for the same project
code: 'PUSH_TOO_MANY_EXPERIENCE_IDS'
Debugging this was difficult because the backend currently has no way to determine which Expo project a token belongs to.
---
## Core question
Is there an Expo API endpoint or official mechanism to:
  • retrieve projectId / experienceId from a push token
  • verify which Expo project generated the token
  • validate tokens on the backend side before storing them
We are specifically looking for a server-side validation approach. We do not want to rely on validation inside the client application.
---
## Documentation gap
In the documentation:
we could not find information about whether:
  • the token contains decodable metadata
  • there is an API for validating tokens
  • there is an endpoint to retrieve project information from a token
  • tokens are cryptographically signed in a verifiable way
It’s possible we missed something — if there is an official recommended backend workflow, we would be happy to follow it.
---
## Why this matters (backend perspective)
From a backend architecture perspective, being able to retrieve project metadata from a push token would allow us to:
  • prevent mixing tokens from multiple Expo projects
  • enforce project isolation at the database level
  • automatically reject invalid or foreign tokens
  • safely support multi-environment setups (dev / staging / prod)
  • detect misconfigured builds early
  • avoid hard-to-debug multicast failures
Currently, the Expo push service clearly knows the project association internally (as shown by the multicast error), but this information is not accessible to backend systems.
---
## Legacy token problem
There is also an important migration scenario:
If older push tokens were stored
without
saving projectId alongside them, there is currently no way to recover that information retroactively.
If Expo internally knows which project a token belongs to (as implied by the error response), having a way to query this metadata would allow safe cleanup and migration of existing databases.
Without such a mechanism, the only option is destructive token reset or manual heuristics.
---
We would appreciate any guidance on:
  • an existing API we may have missed
  • a recommended backend validation workflow
  • or whether this is something planned for the future
Thanks!