Read the caller's push registration for an installation
Returns the caller's active push registration for one app installation — platform, app and project ids, a fingerprint of the token, and when it was last registered — or null when none is active. The raw Expo token is never returned. Requires a Clerk session with a synced profile; API keys are rejected.
Authorization
apiKey Workspace API key created in Workspace settings → API keys. Scopes on the key bound what it can read and write.
In: header
Path Parameters
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$uuidResponse Body
application/json
application/json
application/json
curl -X GET "https://example.com/v1/me/push-devices/497f6eca-6276-4993-bfeb-53cbbbba6f08"{ "data": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "installationId": "7a1bf939-4d70-4439-9ced-a3dbbce12bd7", "platform": "ios", "appId": "string", "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8", "tokenFingerprint": "string", "registeredAt": "string" }}{ "_tag": "ApiNotFound", "error": "not_found", "message": "That item does not exist, or this key cannot see it.", "status": 404}{ "_tag": "ApiNotFound", "error": "not_found", "message": "That item does not exist, or this key cannot see it.", "status": 404}Create or update a notification preference
Upserts one preference for the caller, keyed by channel plus its optional workspace, category, or kind override, so re-sending the same body is idempotent. A preference may override a category or a kind but not both, and an enabled channel needs a real cadence while a disabled one must use `never`. Scoping the preference to a `workspaceId` requires `workspace:read` there and accepts an `Idempotency-Key` header.
Register a device for push notifications
Stores the caller's Expo push token for an installation and activates it, first revoking any other active row holding the same installation id or token so a device can move between accounts. Naturally idempotent: re-registering the same installation refreshes the existing row rather than adding one. Requires a Clerk session with a synced profile, and the token must be a well-formed Expo push token.