App\Http\Controllers\Api\V1\Profile\PushTokenController::store()api.v1.profile.push-token.storeAuthorization: Bearer {token}PUT/api/v1/profile/push-tokenapplication/json{
"provider": "expo",
"token": "ExponentPushToken[xxxxxxxxxxxxxxxxxxxxxx]",
"platform": "ios",
"app_version": "1.2.3"
}| Field | Type | Required | Validation | Description |
|---|---|---|---|---|
provider | string | Yes | required|enum | Push provider. Only expo is accepted |
token | string | Yes | required|string|max:255, plus regex when provider is expo | Expo token, in the form ExponentPushToken[...] or ExpoPushToken[...] |
platform | string | Yes | required|enum | ios or android |
app_version | string | No | nullable|string|max:32 | Version of the app that registered the token |
App\Http\Requests\Api\V1\Profile\StorePushTokenRequest.200 OK{
"success": true,
"status": "success",
"message": "OK",
"data": {
"provider": "expo",
"platform": "ios",
"app_version": "1.2.3",
"updated_at": "2026-10-14T09:30:00.000000Z"
}
}app_version is null when it was not sent.401 Unauthorizedmessage is one of Unauthenticated, Invalid token, Token expired.403 Forbidden{
"success": false,
"status": "error",
"message": "Account suspended"
}422 Unprocessable Entity - validation{
"success": false,
"status": "error",
"message": "Validation failed",
"errors": {
"token": ["The token field format is invalid."],
"platform": ["The selected platform is invalid."]
}
}DELETE /api/v1/profile/push-token to stop notifications without logging out.data.type that tells the app what happened. The values the app can receive:data.type | Extra fields | Meaning |
|---|---|---|
certification_issued | log_code | A certification was issued to the diver. log_code is the certification identifier used by the diver routes certifications/{log_code}/... |
docs/api/profile/PUT_push_token.mdcurl --location --request PUT 'https://test.diveraid.com/api/v1/profile/push-token' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"provider": "expo",
"token": "string",
"platform": "ios",
"app_version": "string"
}'{
"status": "success",
"message": "string",
"data": {
"provider": "expo",
"platform": "ios",
"app_version": "string",
"updated_at": "2019-08-24T14:15:22.123Z"
}
}