EndpointsUsers

Cancel a pending account deletion

Cancels a self-initiated deletion that's still inside the 30-day grace window. Restores the user's routes and clears the pending status. No-op if the user is not in a pending state.

POST
/users/me/cancel-deletion

Authorization

JWT-auth
headerAuthorizationBearer <token>

Response Body

application/json
  1. response
id*number
email*string
name*string
handle*string

Public address of the user's Profile (see CONTEXT.md 'Handle').

avatar?string
isEmailVerified*boolean
role*string
Value in"user""admin"
preferences?|null
idHash*string

Pseudonymous user identifier for client-side ProductEvent tracking. See ADR-0020.

deletionStatus*string

Deletion lifecycle. 'pending_hard_delete' means the user has requested self-deletion and is in the 30-day grace window before permanent erasure. The web app should redirect such users to a cancel screen.

Value in"active""pending_hard_delete"
deletionRequestedAt?|

When self-deletion was requested. Hard-delete fires 30 days after this timestamp.

hasPassword*boolean

Whether the user has an active email/password credential. Drives password-change UI affordances.

statistics*
curl -X POST 'https://api.routess.com/users/me/cancel-deletion'
{  "id": 1,  "email": "[email protected]",  "name": "Jane Doe",  "handle": "jane-doe",  "avatar": "https://example.com/avatar.jpg",  "isEmailVerified": true,  "role": "user",  "preferences": {    "units": "km",    "showPois": true,    "terrain3d": false,    "autoSnap": true,    "defaultActivity": "Cycling",    "selectedSports": [      "cycle",      "run"    ],    "sportSpeeds": {      "run": 10,      "cycle": 25,      "walk": 5    },    "mapStyle": "outdoors",    "overlays": {      "heatmap": true,      "contour": false,      "bike": true,      "surface": false,      "wind": false,      "hikingNodes": false,      "cyclingNodes": false    },    "defaultRouteVisibility": "private",    "routingDefaults": {      "cycle": {        "surfacePreference": "mixed",        "avoidFerries": true,        "avoidHighways": true      },      "run": {        "surfacePreference": "mixed",        "avoidFerries": true,        "avoidHighways": true      },      "walk": {        "surfacePreference": "mixed",        "avoidFerries": true,        "avoidHighways": true      }    }  },  "idHash": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",  "deletionStatus": "active",  "deletionRequestedAt": "2026-05-09T08:00:00.000Z",  "hasPassword": true,  "statistics": {    "totalRoutes": 12,    "totalDistance": 42350  }}