Skip to main content
The Users API gives authenticated users full control over their own profile and account data. You can retrieve and update your profile, change credentials, request a GDPR-compliant data export, and permanently delete your account. All endpoints are mounted under /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.
ResponseUserResponse:
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.
ResponseUserResponse 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.
Response:
Returns 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.
Response:

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.
The response is a 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.
Deleting an account is permanent. All user data is removed from the database immediately and cannot be recovered.
Response: