Behavior Notes
- Endpoint path:
PUT /auth/user/me - Core profile fields + optional
is_business/biz_*(requires ext-business; otherwise400 module_not_installed). - Does not accept acquisition or privacy fields — use onboarding complete or privacy routes.
- Session auth; surgical cache update after success.
- A new
emaildoes not writeusers.email. Flowless emails a confirmation link to the current address and another to the new address. Both links must be used, in either order. Response may includeemail_change_pending: { to, expires_at, awaiting: ["current", "new"] }. Confirm with email change. The current-inbox page can cancel. - Sending
two_factorreturns400 use_two_factor_toggle. Use POST /auth/two_factor/toggle.
Update User Profile
PUT
/auth/user/me
Update authenticated user profile. Core profile fields apply immediately. A new email value does not write users.email: it emails a confirmation link to the current address and another to the new address. Both must be used, in either order, at GET/POST /auth/email-change/verify. two_factor is rejected (use_two_factor_toggle); use POST /auth/two_factor/toggle. Does not accept acquisition or privacy fields — use POST /auth/user/me/onboarding/complete or /auth/user/me/privacy*.
Authorizations
SessionAuth
Session ID for authenticated requests
Type
API Key (header: X-Session-ID)
Request Body
application/json
JSON "name": "John", "last_name": "Doe", "email": "string", "user_name": "johndoe", "phone": "+1234567890", "dob": "1990-01-01", "gender": "string", "title": "string", "reference_id": "string", "recovery_email": "string", "tmz": "America/New_York", "metadata": { "additionalProperties": "string" }, "is_business": true, "biz_name": "string", "biz_country": "string", "biz_state": "string", "biz_position": "string", "biz_postal_code": "string"
{
}
Responses
Profile updated successfully. A new email is not applied until both confirmation links are used.
application/json
JSON "success": true, "data": { }, "email_change_pending": { "to": "string", "expires_at": "string", "awaiting": [ "string" ] }
{
}