Device Tokens API
Device tokens are used for push notifications via the Expo Push API. The mobile app registers its Expo push token on launch and deactivates it on logout.
POST /device_tokens
Register or update a device push token. If the token already exists for this user, it is reactivated.
Auth required: Yes
Request body:
json
{
"token": "ExponentPushToken[xxxxxx]",
"platform": "ios"
}| Field | Type | Description |
|---|---|---|
token | string | Expo push token |
platform | string | ios or android |
Response (200):
json
{
"device_token": {
"id": 1,
"token": "ExponentPushToken[xxxxxx]",
"platform": "ios",
"active": true
}
}bash
curl -X POST http://localhost:3000/api/v1/device_tokens \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"token":"ExponentPushToken[xxxxxx]","platform":"ios"}'DELETE /device_tokens
Deactivate a device push token. Called on logout to stop sending push notifications to this device.
Auth required: Yes
Request body:
json
{
"token": "ExponentPushToken[xxxxxx]"
}Response (200):
json
{
"message": "Token deactivated"
}Errors:
| Status | Cause |
|---|---|
| 404 | Token not found for this user |
TIP
Tokens are soft-deleted (set active: false) rather than destroyed. This prevents issues if the same token is re-registered later.
bash
curl -X DELETE http://localhost:3000/api/v1/device_tokens \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"token":"ExponentPushToken[xxxxxx]"}'