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.
Authorization
apiKey Workspace API key created in Workspace settings → API keys. Scopes on the key bound what it can read and write.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
curl -X PUT "https://example.com/v1/me/push-devices" \ -H "Content-Type: application/json" \ -d '{ "installationId": "7a1bf939-4d70-4439-9ced-a3dbbce12bd7", "token": "string", "platform": "ios", "appId": "string", "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8" }'{ "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}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.
Revoke a device's push registration
Marks the caller's active registration for one installation revoked so it stops receiving push notifications, and reports whether a row was actually revoked. Naturally idempotent: a second call reports `revoked: false`. Requires a Clerk session with a synced profile.