Profile
The Profile API manages the authenticated user's profile information and additional email addresses.
Base path: /api/profile
All endpoints require authentication.
Get Profile
Retrieve the current user's profile.
GET /api/profileResponse 200 OK:
{
"id": "user-uuid",
"email": "you@example.com",
"displayName": "Your Name",
"createdAt": "2026-01-15T08:00:00Z",
"lastLoginAt": "2026-04-03T14:00:00Z",
"additionalAddresses": [
{
"id": "address-uuid",
"address": "alias@example.com",
"isVerified": true,
"addedAt": "2026-02-10T12:00:00Z"
}
]
}curl example:
curl -s "http://localhost:8080/api/profile" \
-H "Authorization: Bearer YOUR_TOKEN" | jqUpdate Profile
Update the user's display name.
PUT /api/profileRequest body:
{
"displayName": "New Display Name"
}Response 204 No Content
curl example:
curl -s -X PUT "http://localhost:8080/api/profile" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"displayName": "Jane Doe"}'Add Additional Address
Register an additional email address for the user's account. A verification token is generated upon creation.
POST /api/profile/addressesRequest body:
{
"address": "newalias@example.com"
}Response 201 Created:
{
"id": "new-address-uuid",
"address": "newalias@example.com",
"isVerified": false,
"addedAt": "2026-04-03T15:00:00Z"
}curl example:
curl -s -X POST "http://localhost:8080/api/profile/addresses" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"address": "newalias@example.com"}' | jqRemove Additional Address
Remove an additional email address from the account.
DELETE /api/profile/addresses/{addressId}Response 204 No Content
Send Verification Email
Send a verification email to an additional address.
POST /api/profile/addresses/{addressId}/send-verificationNot Implemented
This endpoint currently returns 501 Not Implemented. Verification is planned for a future release.
Verify Address
Verify an additional email address with a verification token.
POST /api/profile/addresses/{addressId}/verifyNot Implemented
This endpoint currently returns 501 Not Implemented. Verification is planned for a future release.