MyAccountService
Chatto exposes this service below /api/connect.
Shared message and enum definitions are documented in Shared Types And Enums.
MyAccountService
Section titled “MyAccountService”Self-service account, profile, avatar, display preference, presence, custom-status, external identity, and account lifecycle commands for the authenticated user.
UpdateProfile
Section titled “UpdateProfile”Updates the authenticated user’s login and/or display name.
POST /api/connect/chatto.api.v1.MyAccountService/UpdateProfileInput: UpdateProfileRequest
Section titled “Input: UpdateProfileRequest”Request to update the authenticated user’s profile. At least one field must be present.
| Field | Type | Description |
|---|---|---|
display_name | optional string | New display name, when changing it. Empty clears the explicit display name. The server also rejects control and confusing invisible characters. |
login | optional string | New login identifier, when changing it. The server accepts ASCII letters, digits, period, underscore, and hyphen, starting with a letter or digit. |
Result: UpdateProfileResponse
Section titled “Result: UpdateProfileResponse”Result of a profile update.
| Field | Type | Description |
|---|---|---|
user | User | Updated user profile. |
UploadAvatar
Section titled “UploadAvatar”Uploads and sets the authenticated user’s avatar.
POST /api/connect/chatto.api.v1.MyAccountService/UploadAvatarInput: UploadAvatarRequest
Section titled “Input: UploadAvatarRequest”Request to upload and set the authenticated user’s avatar.
| Field | Type | Description |
|---|---|---|
image | ImageUpload | Image payload. The server validates, resizes, and stores a WebP avatar. |
Result: UploadAvatarResponse
Section titled “Result: UploadAvatarResponse”Result of uploading the authenticated user’s avatar.
| Field | Type | Description |
|---|---|---|
user | User | Updated user profile. |
DeleteAvatar
Section titled “DeleteAvatar”Deletes the authenticated user’s avatar. The call is idempotent.
POST /api/connect/chatto.api.v1.MyAccountService/DeleteAvatarInput: DeleteAvatarRequest
Section titled “Input: DeleteAvatarRequest”Request to delete the authenticated user’s avatar.
Result: DeleteAvatarResponse
Section titled “Result: DeleteAvatarResponse”Result of deleting the authenticated user’s avatar.
| Field | Type | Description |
|---|---|---|
user | User | Updated user profile. |
UpdatePassword
Section titled “UpdatePassword”Updates or adds the authenticated user’s password.
POST /api/connect/chatto.api.v1.MyAccountService/UpdatePasswordInput: UpdatePasswordRequest
Section titled “Input: UpdatePasswordRequest”Request to update or add the authenticated user’s password.
| Field | Type | Description |
|---|---|---|
password | string | New password. The server applies the same password policy as registration and password reset. |
current_password | string | Current password. Required when the account already has a password; omitted when adding the first password to a passwordless account. |
Result: UpdatePasswordResponse
Section titled “Result: UpdatePasswordResponse”Result of updating or adding the authenticated account password.
| Field | Type | Description |
|---|---|---|
user | User | Current authenticated user profile after the password update. |
UpdateSettings
Section titled “UpdateSettings”Updates the authenticated user’s display preferences.
POST /api/connect/chatto.api.v1.MyAccountService/UpdateSettingsInput: UpdateSettingsRequest
Section titled “Input: UpdateSettingsRequest”Request to update the authenticated user’s display preferences. Omitted fields are left unchanged. An empty timezone clears the explicit timezone.
| Field | Type | Description |
|---|---|---|
timezone | optional string | IANA timezone override. Empty clears the override. |
time_format | optional TimeFormat | Preferred time format. |
Result: UpdateSettingsResponse
Section titled “Result: UpdateSettingsResponse”Result of updating display preferences.
| Field | Type | Description |
|---|---|---|
settings | UserSettings | Stored settings after merging the request. |
ListExternalIdentities
Section titled “ListExternalIdentities”Lists configured external identity providers and identities linked to the authenticated account.
POST /api/connect/chatto.api.v1.MyAccountService/ListExternalIdentitiesInput: ListExternalIdentitiesRequest
Section titled “Input: ListExternalIdentitiesRequest”Request to list configured and linked external identities for the current user.
Result: ListExternalIdentitiesResponse
Section titled “Result: ListExternalIdentitiesResponse”Finite snapshot of configured providers and linked external identities.
| Field | Type | Description |
|---|---|---|
providers | repeated ExternalIdentityProvider | Configured providers the user may link. |
linked_identities | repeated LinkedExternalIdentity | Provider identities already linked to the authenticated user. |
StartExternalIdentityLink
Section titled “StartExternalIdentityLink”Creates a short-lived browser handoff URL for linking a provider identity to the authenticated account. The provider callback completes through chatto.auth.v1.ExternalIdentityAuthService.ConfirmExternalIdentityLink.
POST /api/connect/chatto.api.v1.MyAccountService/StartExternalIdentityLinkInput: StartExternalIdentityLinkRequest
Section titled “Input: StartExternalIdentityLinkRequest”Request to start linking a configured provider to the current user.
| Field | Type | Description |
|---|---|---|
provider_id | string | Provider ID to link. |
redirect_path | string | Internal path to return to after confirmation. |
current_password | string | Current password proof for accounts with a password when the active runtime credential is no longer fresh. |
Result: StartExternalIdentityLinkResponse
Section titled “Result: StartExternalIdentityLinkResponse”Result of preparing an external identity link flow.
| Field | Type | Description |
|---|---|---|
start_url | string | Browser URL that starts provider authorization on the target server origin. |
DisconnectExternalIdentity
Section titled “DisconnectExternalIdentity”Disconnects a provider identity from the authenticated account.
POST /api/connect/chatto.api.v1.MyAccountService/DisconnectExternalIdentityInput: DisconnectExternalIdentityRequest
Section titled “Input: DisconnectExternalIdentityRequest”Request to disconnect a linked provider identity from the authenticated user.
| Field | Type | Description |
|---|---|---|
subject_hash | string | Stable one-way subject hash of the linked identity to disconnect. |
current_password | string | Current password proof for accounts with a password when the active runtime credential is no longer fresh. |
Result: DisconnectExternalIdentityResponse
Section titled “Result: DisconnectExternalIdentityResponse”Result of disconnecting a provider identity.
| Field | Type | Description |
|---|---|---|
disconnected | bool | True when the identity was disconnected. |
UpdatePresence
Section titled “UpdatePresence”Updates the current user’s live presence status. This state is transient: clients should refresh it periodically while visible, and should stop calling this RPC when the user chooses to appear offline.
POST /api/connect/chatto.api.v1.MyAccountService/UpdatePresenceInput: UpdatePresenceRequest
Section titled “Input: UpdatePresenceRequest”Request to update the current user’s live presence status.
| Field | Type | Description |
|---|---|---|
status | PresenceStatus | Live status to store for the authenticated user. Offline is rejected. |
user_selected | bool | True when this update comes from a deliberate user selection rather than automatic idle/refresh updates. Automatic updates do not overwrite an active manually selected Away or Do Not Disturb status from another client. |
Result: UpdatePresenceResponse
Section titled “Result: UpdatePresenceResponse”Result of updating live presence.
| Field | Type | Description |
|---|---|---|
status | PresenceStatus | Reportable status accepted and stored by the server. |
UpdateCustomStatus
Section titled “UpdateCustomStatus”Updates or replaces the current user’s custom status. Emoji and text are required, and expires_at must be omitted or in the future.
POST /api/connect/chatto.api.v1.MyAccountService/UpdateCustomStatusInput: UpdateCustomStatusRequest
Section titled “Input: UpdateCustomStatusRequest”Request to update or replace the current user’s custom status.
| Field | Type | Description |
|---|---|---|
emoji | string | Short emoji marker displayed with the status. |
text | string | User-written status text. |
expires_at | google.protobuf.Timestamp | Optional future time after which clients should stop showing the status. |
Result: UpdateCustomStatusResponse
Section titled “Result: UpdateCustomStatusResponse”Result of updating the current user’s custom status.
| Field | Type | Description |
|---|---|---|
status | CustomUserStatus | Stored custom status after validation and normalization. |
DeleteCustomStatus
Section titled “DeleteCustomStatus”Deletes the current user’s custom status. The call is idempotent and returns the resulting empty status state.
POST /api/connect/chatto.api.v1.MyAccountService/DeleteCustomStatusInput: DeleteCustomStatusRequest
Section titled “Input: DeleteCustomStatusRequest”Request to delete the current user’s custom status.
Result: DeleteCustomStatusResponse
Section titled “Result: DeleteCustomStatusResponse”Result of deleting the current user’s custom status.
| Field | Type | Description |
|---|---|---|
status | CustomUserStatus | Current custom status after the operation. Usually absent after a clear. |
RequestAccountDeletion
Section titled “RequestAccountDeletion”Issues a short-lived token used to confirm self-deletion.
POST /api/connect/chatto.api.v1.MyAccountService/RequestAccountDeletionInput: RequestAccountDeletionRequest
Section titled “Input: RequestAccountDeletionRequest”Request a short-lived confirmation token for deleting the authenticated account.
Result: RequestAccountDeletionResponse
Section titled “Result: RequestAccountDeletionResponse”Result of issuing an account deletion confirmation token.
| Field | Type | Description |
|---|---|---|
confirmation_token | string | Confirmation token. Clients must pass this to DeleteMyAccount. |
DeleteMyAccount
Section titled “DeleteMyAccount”Permanently deletes the authenticated account after token validation.
POST /api/connect/chatto.api.v1.MyAccountService/DeleteMyAccountInput: DeleteMyAccountRequest
Section titled “Input: DeleteMyAccountRequest”Request to permanently delete the authenticated account.
| Field | Type | Description |
|---|---|---|
confirmation_token | string | Confirmation token obtained from RequestAccountDeletion. |
Result: DeleteMyAccountResponse
Section titled “Result: DeleteMyAccountResponse”Result of deleting the authenticated account.
| Field | Type | Description |
|---|---|---|
deleted | bool | True when the account was deleted. |