/api/users/ and require a valid Bearer token.
All endpoints on this page require an
Authorization: Bearer <access_token> header. See Authentication for how to obtain a token.GET /api/users/me
Return the full profile of the currently authenticated user.UserResponse:
string
required
UUID of the user.
string
required
The user’s email address.
string
The user’s display name.
string
URL to the user’s profile picture.
boolean
required
Whether the account is active.
boolean
required
Whether the email address has been verified.
string
The OAuth provider used to create the account (
google, github), or null for password-based accounts.string
required
Current subscription status (e.g.,
free, active, cancelled).string
required
Current subscription tier (e.g.,
free, pro).string
required
ISO 8601 timestamp of account creation.
PATCH /api/users/me
Update the authenticated user’s profile. Only the fields you include in the request body are updated; omitted fields are left unchanged.string
A new display name for the user.
string
A new URL for the user’s profile picture.
UserResponse with updated fields:
POST /api/users/me/change-password
Change the password for the currently authenticated user. This endpoint is only available to accounts that were created with a password. OAuth-only accounts (social login only, no password set) must use the forgot-password flow to set an initial password.string
required
The user’s existing password.
string
required
The new password to set.
400 if the current password is incorrect, or if the account uses social login and has no password set.
POST /api/users/me/change-email
Request an email address change. The new address must not already be in use. After the change,is_verified is set to false and a new verification email is sent to the new address.
string
required
The new email address to associate with the account. Must be a valid email format.
string
required
The user’s current password to confirm the change. Required for password-based accounts.
GET /api/users/me/export
Export all personal data stored for the authenticated user as a downloadable JSON file. This endpoint is provided for GDPR compliance.Content-Disposition: attachment JSON file with the following fields:
string
UUID of the user.
string
Email address.
string
Display name.
string
Profile picture URL.
string
OAuth provider if applicable.
boolean
Email verification status.
string
Current subscription status.
string
Current subscription tier.
string
Account creation timestamp.
string
Last profile update timestamp.
string
Most recent login timestamp.
string
Timestamp of when this export was generated.
DELETE /api/users/me
Permanently delete the authenticated user’s account. This action is irreversible. For password-based accounts, you must supply the current password to confirm deletion. For OAuth-only accounts (no password), you must pass"confirm": "DELETE" instead.
string
The user’s current password. Required for password-based accounts.
string
Must be the exact string
"DELETE". Required for OAuth-only accounts that have no password.