SnozeDevelopers
API referenceNotifications

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.

PUT
/v1/me/push-devices

Authorization

apiKey
headerAuthorizationBearer <snoze_sk_…>

Workspace API key created in Workspace settings → API keys. Scopes on the key bound what it can read and write.

Request Body

application/json
  1. body
installationId*string
Match^([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})$
Formatuuid
token*string
Match^(?:Expo|Exponent)PushToken\[[A-Za-z0-9_-]+\]$
Lengthlength <= 512
platform*string
Value in"ios""android"
appId*string
Length1 <= length <= 200
projectId*string
Match^([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})$
Formatuuid

Response Body

Success

application/json
  1. response
data*
Example Request
curl -X PUT 'https://api.snoze.dev/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"}'
Example Response
{  "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"  }}