API Reference
Table of Contents
Section titled “Table of Contents”chat.proto
Section titled “chat.proto”AcceptDMInviteRequest
Section titled “AcceptDMInviteRequest”| Field | Type | Label | Description |
|---|---|---|---|
| invite_id | string |
AcceptDMInviteResponse
Section titled “AcceptDMInviteResponse”| Field | Type | Label | Description |
|---|---|---|---|
| token | string | ||
| host_server_url | string | ||
| guild_id | string |
AcknowledgeRequest
Section titled “AcknowledgeRequest”| Field | Type | Label | Description |
|---|---|---|---|
| event_id | uint64 |
AddServerRequest
Section titled “AddServerRequest”| Field | Type | Label | Description |
|---|---|---|---|
| server_url | string |
AssignRoleRequest
Section titled “AssignRoleRequest”| Field | Type | Label | Description |
|---|---|---|---|
| guild_id | string | ||
| user_id | string | ||
| role_id | string |
BanNotification
Section titled “BanNotification”| Field | Type | Label | Description |
|---|---|---|---|
| origin_server_id | string | ||
| banned_user_pubkey | string | ||
| guild_id | string | ||
| reason | string | ||
| evidence_hash | string | ||
| timestamp | uint64 | ||
| signature | bytes |
BanUserRequest
Section titled “BanUserRequest”| Field | Type | Label | Description |
|---|---|---|---|
| guild_id | string | ||
| user_id | string | ||
| reason | string |
BatchUpdateRolesRequest
Section titled “BatchUpdateRolesRequest”| Field | Type | Label | Description |
|---|---|---|---|
| guild_id | string | ||
| roles | Role | repeated |
Channel
Section titled “Channel”| Field | Type | Label | Description |
|---|---|---|---|
| id | string | ||
| guild_id | string | ||
| folder_id | string | ||
| name | string | ||
| position | int32 | ||
| latest_message_id | string | ||
| irc_name | string | ||
| is_thread | bool | ||
| parent_channel_id | string | ||
| root_message_id | string |
Component
Section titled “Component”| Field | Type | Label | Description |
|---|---|---|---|
| type | ComponentType | ||
| components | Component | repeated | For Action Row |
| style | int32 | For Button |
1=Primary, 2=Secondary, 3=Success, 4=Danger, 5=Link | | label | string | | | | emoji | string | | | | custom_id | string | | | | url | string | | | | disabled | bool | | | | options | SelectOption | repeated | For Select | | placeholder | string | | | | min_values | int32 | | | | max_values | int32 | | |
CreateChannelRequest
Section titled “CreateChannelRequest”| Field | Type | Label | Description |
|---|---|---|---|
| guild_id | string | ||
| folder_id | string | ||
| name | string | ||
| irc_name | string | optional |
CreateDMRequest
Section titled “CreateDMRequest”| Field | Type | Label | Description |
|---|---|---|---|
| target_user_id | string |
CreateDMResponse
Section titled “CreateDMResponse”| Field | Type | Label | Description |
|---|---|---|---|
| guild | Guild | ||
| token | string |
CreateFolderRequest
Section titled “CreateFolderRequest”| Field | Type | Label | Description |
|---|---|---|---|
| guild_id | string | ||
| parent_folder_id | string | ||
| name | string |
CreateGuildRequest
Section titled “CreateGuildRequest”| Field | Type | Label | Description |
|---|---|---|---|
| name | string | ||
| avatar_url | string | optional |
CreateGuildResponse
Section titled “CreateGuildResponse”| Field | Type | Label | Description |
|---|---|---|---|
| guild | Guild | ||
| token | string |
CreateRoleRequest
Section titled “CreateRoleRequest”| Field | Type | Label | Description |
|---|---|---|---|
| guild_id | string | ||
| name | string | ||
| color | string | ||
| position | int32 | ||
| permissions | string | repeated | |
| parent_role_ids | string | repeated |
CreateThreadRequest
Section titled “CreateThreadRequest”| Field | Type | Label | Description |
|---|---|---|---|
| parent_channel_id | string | ||
| root_message_id | string | ||
| name | string |
CreateWebhookRequest
Section titled “CreateWebhookRequest”| Field | Type | Label | Description |
|---|---|---|---|
| channel_id | string | ||
| name | string | ||
| avatar_url | string | optional |
DMInvite
Section titled “DMInvite”| Field | Type | Label | Description |
|---|---|---|---|
| token | string | ||
| invite_id | string | Unique ID for the invite record (uuid) | |
| inviter_id | string | ||
| guild_id | string | ||
| guild_name | string | ||
| host_server_url | string | ||
| timestamp | uint64 | ||
| signature | bytes | Inviter signature over (token | |
| status | string | ”pending”, “accepted”, “rejected” | |
| inviter_pubkey | string | ||
| device_cert | DeviceCert | ||
| target_user_id | string |
DeactivateInviteRequest
Section titled “DeactivateInviteRequest”| Field | Type | Label | Description |
|---|---|---|---|
| guild_id | string | ||
| token | string |
DeleteMessageRequest
Section titled “DeleteMessageRequest”| Field | Type | Label | Description |
|---|---|---|---|
| channel_id | string | ||
| message_id | string |
DeleteRoleRequest
Section titled “DeleteRoleRequest”| Field | Type | Label | Description |
|---|---|---|---|
| guild_id | string | ||
| role_id | string |
DeleteWebhookRequest
Section titled “DeleteWebhookRequest”| Field | Type | Label | Description |
|---|---|---|---|
| webhook_id | string |
DeliveryReceipt
Section titled “DeliveryReceipt”| Field | Type | Label | Description |
|---|---|---|---|
| message_id | string | ||
| channel_id | string | ||
| user_id | string | ||
| status | ReceiptType | ||
| timestamp | google.protobuf.Timestamp |
DeviceCert
Section titled “DeviceCert”| Field | Type | Label | Description |
|---|---|---|---|
| pubkey | string | ||
| device_id | string | ||
| issued_at | uint64 | ||
| expiry | uint64 | ||
| signature | string | Signed by K_id |
DeviceInfo
Section titled “DeviceInfo”| Field | Type | Label | Description |
|---|---|---|---|
| id | string | ||
| name | string | ||
| last_seen_at | uint64 |
FederationRequest
Section titled “FederationRequest”| Field | Type | Label | Description |
|---|---|---|---|
| origin_server_id | string | ||
| origin_server_pubkey | string | ||
| user_pubkey | string | ||
| user_display_name | string | ||
| guild_id | string | ||
| timestamp | uint64 | ||
| signature | bytes |
FederationResponse
Section titled “FederationResponse”| Field | Type | Label | Description |
|---|---|---|---|
| accepted | bool | ||
| message | string | ||
| user | User |
Folder
Section titled “Folder”| Field | Type | Label | Description |
|---|---|---|---|
| id | string | ||
| guild_id | string | ||
| parent_folder_id | string | ||
| name | string | ||
| position | int32 |
GenerateInviteRequest
Section titled “GenerateInviteRequest”| Field | Type | Label | Description |
|---|---|---|---|
| channel_id | string |
GenerateInviteResponse
Section titled “GenerateInviteResponse”| Field | Type | Label | Description |
|---|---|---|---|
| token | string |
GetCallTokenRequest
Section titled “GetCallTokenRequest”| Field | Type | Label | Description |
|---|---|---|---|
| channel_id | string |
GetCallTokenResponse
Section titled “GetCallTokenResponse”| Field | Type | Label | Description |
|---|---|---|---|
| token | string | ||
| url | string |
GetGuildMemberProfileRequest
Section titled “GetGuildMemberProfileRequest”| Field | Type | Label | Description |
|---|---|---|---|
| guild_id | string | ||
| user_id | string |
GetHistoryRequest
Section titled “GetHistoryRequest”| Field | Type | Label | Description |
|---|---|---|---|
| channel_id | string | ||
| cursor | string | ||
| limit | int32 | ||
| reverse | bool |
GetHistoryResponse
Section titled “GetHistoryResponse”| Field | Type | Label | Description |
|---|---|---|---|
| messages | Message | repeated | |
| next_cursor | string | ||
| has_more | bool |
GetMyDataResponse
Section titled “GetMyDataResponse”| Field | Type | Label | Description |
|---|---|---|---|
| user | User | ||
| servers | UserServer | repeated | |
| device_certificates | DeviceInfo | repeated | |
| push_distributors | string | repeated |
GetMyPermissionsRequest
Section titled “GetMyPermissionsRequest”| Field | Type | Label | Description |
|---|---|---|---|
| guild_id | string |
GetMyPermissionsResponse
Section titled “GetMyPermissionsResponse”| Field | Type | Label | Description |
|---|---|---|---|
| permissions | string | repeated |
GetPinnedMessagesRequest
Section titled “GetPinnedMessagesRequest”| Field | Type | Label | Description |
|---|---|---|---|
| channel_id | string |
GetPinnedMessagesResponse
Section titled “GetPinnedMessagesResponse”| Field | Type | Label | Description |
|---|---|---|---|
| messages | Message | repeated |
GetPresenceRequest
Section titled “GetPresenceRequest”| Field | Type | Label | Description |
|---|---|---|---|
| user_ids | string | repeated |
GetPresenceResponse
Section titled “GetPresenceResponse”| Field | Type | Label | Description |
|---|---|---|---|
| presence | PresenceUpdate | repeated |
GetUsersRequest
Section titled “GetUsersRequest”| Field | Type | Label | Description |
|---|---|---|---|
| user_ids | string | repeated | |
| guild_id | string |
GetUsersResponse
Section titled “GetUsersResponse”| Field | Type | Label | Description |
|---|---|---|---|
| users | User | repeated |
| Field | Type | Label | Description |
|---|---|---|---|
| id | string | ||
| name | string | ||
| owner_id | string | ||
| avatar_url | string | ||
| latest_message_id | string | ||
| is_dm | bool |
GuildMemberJoined
Section titled “GuildMemberJoined”| Field | Type | Label | Description |
|---|---|---|---|
| guild_id | string | ||
| user | User |
GuildMemberProfile
Section titled “GuildMemberProfile”| Field | Type | Label | Description |
|---|---|---|---|
| summary | GuildMemberSummary | ||
| message_count | int32 | ||
| recent_messages | Message | repeated |
GuildMemberRemoved
Section titled “GuildMemberRemoved”| Field | Type | Label | Description |
|---|---|---|---|
| guild_id | string | ||
| user_id | string |
GuildMemberSummary
Section titled “GuildMemberSummary”| Field | Type | Label | Description |
|---|---|---|---|
| user | User | ||
| joined_at | google.protobuf.Timestamp | ||
| roles | string | repeated | List of role IDs |
HelloResponse
Section titled “HelloResponse”| Field | Type | Label | Description |
|---|---|---|---|
| message | string |
InitiateAvatarUploadRequest
Section titled “InitiateAvatarUploadRequest”InitiateMediaUploadRequest
Section titled “InitiateMediaUploadRequest”InitiateUploadResponse
Section titled “InitiateUploadResponse”| Field | Type | Label | Description |
|---|---|---|---|
| upload_token | string |
Invite
Section titled “Invite”| Field | Type | Label | Description |
|---|---|---|---|
| token | string | ||
| channel_id | string | ||
| created_at | google.protobuf.Timestamp | ||
| expires_at | google.protobuf.Timestamp | ||
| uses | int32 | ||
| channel_name | string | ||
| is_deactivated | bool | ||
| updated_at | google.protobuf.Timestamp |
JoinInviteRequest
Section titled “JoinInviteRequest”| Field | Type | Label | Description |
|---|---|---|---|
| token | string | ||
| public_key | string | K_id pubkey | |
| device_cert | DeviceCert | ||
| signature | bytes | Signed by K_dev | |
| timestamp | uint64 | ||
| display_name | string | ||
| avatar_url | string | ||
| homeserver_url | string |
JoinInviteResponse
Section titled “JoinInviteResponse”| Field | Type | Label | Description |
|---|---|---|---|
| guild | Guild | ||
| token | string | ||
| refresh_token | string |
KickUserRequest
Section titled “KickUserRequest”| Field | Type | Label | Description |
|---|---|---|---|
| guild_id | string | ||
| user_id | string | ||
| reason | string |
ListChannelsRequest
Section titled “ListChannelsRequest”| Field | Type | Label | Description |
|---|---|---|---|
| guild_id | string |
ListChannelsResponse
Section titled “ListChannelsResponse”| Field | Type | Label | Description |
|---|---|---|---|
| channels | Channel | repeated |
ListDMInvitesRequest
Section titled “ListDMInvitesRequest”ListDMInvitesResponse
Section titled “ListDMInvitesResponse”| Field | Type | Label | Description |
|---|---|---|---|
| invites | DMInvite | repeated |
ListFoldersRequest
Section titled “ListFoldersRequest”| Field | Type | Label | Description |
|---|---|---|---|
| guild_id | string |
ListFoldersResponse
Section titled “ListFoldersResponse”| Field | Type | Label | Description |
|---|---|---|---|
| folders | Folder | repeated |
ListGuildMembersRequest
Section titled “ListGuildMembersRequest”| Field | Type | Label | Description |
|---|---|---|---|
| guild_id | string | ||
| limit | int32 | ||
| offset | int32 |
ListGuildMembersResponse
Section titled “ListGuildMembersResponse”| Field | Type | Label | Description |
|---|---|---|---|
| members | GuildMemberSummary | repeated | |
| total | int32 |
ListGuildsRequest
Section titled “ListGuildsRequest”ListGuildsResponse
Section titled “ListGuildsResponse”| Field | Type | Label | Description |
|---|---|---|---|
| guilds | Guild | repeated |
ListInvitesRequest
Section titled “ListInvitesRequest”| Field | Type | Label | Description |
|---|---|---|---|
| guild_id | string |
ListInvitesResponse
Section titled “ListInvitesResponse”| Field | Type | Label | Description |
|---|---|---|---|
| invites | Invite | repeated |
ListPushDistributorsResponse
Section titled “ListPushDistributorsResponse”| Field | Type | Label | Description |
|---|---|---|---|
| distributor_urls | string | repeated |
ListRolesRequest
Section titled “ListRolesRequest”| Field | Type | Label | Description |
|---|---|---|---|
| guild_id | string |
ListRolesResponse
Section titled “ListRolesResponse”| Field | Type | Label | Description |
|---|---|---|---|
| roles | Role | repeated |
ListServerGuildsRequest
Section titled “ListServerGuildsRequest”| Field | Type | Label | Description |
|---|---|---|---|
| limit | int32 | ||
| offset | int32 |
ListServerGuildsResponse
Section titled “ListServerGuildsResponse”| Field | Type | Label | Description |
|---|---|---|---|
| guilds | ServerGuildStats | repeated | |
| total | int32 |
ListWebhooksRequest
Section titled “ListWebhooksRequest”| Field | Type | Label | Description |
|---|---|---|---|
| guild_id | string | ||
| channel_id | string | optional |
ListWebhooksResponse
Section titled “ListWebhooksResponse”| Field | Type | Label | Description |
|---|---|---|---|
| webhooks | Webhook | repeated |
LoginRequest
Section titled “LoginRequest”| Field | Type | Label | Description |
|---|---|---|---|
| device_cert | DeviceCert | ||
| signature | bytes | Signed by K_dev | |
| timestamp | uint64 | ||
| device_name | string | optional | |
| new_homeserver | string | optional | Migration fields |
| migration_timestamp | uint64 | optional | |
| migration_signature | string | optional | Signed by K_id over (new_homeserver |
| migration_targets | string | repeated | |
| user_id | string | optional |
LoginResponse
Section titled “LoginResponse”| Field | Type | Label | Description |
|---|---|---|---|
| token | string | ||
| user | User | ||
| refresh_token | string |
MediaAttachment
Section titled “MediaAttachment”| Field | Type | Label | Description |
|---|---|---|---|
| file_id | string | ||
| mime_type | string | ||
| size_bytes | uint64 | ||
| blurhash | string | ||
| width | uint32 | ||
| height | uint32 |
Message
Section titled “Message”| Field | Type | Label | Description |
|---|---|---|---|
| id | string | ||
| channel_id | string | ||
| sender_id | string | ||
| created_at | google.protobuf.Timestamp | ||
| edited_at | google.protobuf.Timestamp | ||
| reply_to_message_id | string | ||
| text | string | ||
| media | MediaAttachment | ||
| action | SystemAction | ||
| typing | TypingIndicator | ||
| reaction | ReactionIndicator | ||
| reactions | Reaction | repeated | |
| metadata | Message.MetadataEntry | repeated | |
| is_pinned | bool | ||
| sender_name | string | ||
| mentioned_user_ids | string | repeated | |
| mentioned_role_ids | string | repeated | |
| sender_avatar_url | string | ||
| components | Component | repeated | |
| thread_id | string |
Message.MetadataEntry
Section titled “Message.MetadataEntry”| Field | Type | Label | Description |
|---|---|---|---|
| key | string | ||
| value | string |
MessageDeletedEvent
Section titled “MessageDeletedEvent”| Field | Type | Label | Description |
|---|---|---|---|
| channel_id | string | ||
| message_id | string |
MessageEvent
Section titled “MessageEvent”| Field | Type | Label | Description |
|---|---|---|---|
| message | Message | ||
| idempotency_key | string |
PinMessageRequest
Section titled “PinMessageRequest”| Field | Type | Label | Description |
|---|---|---|---|
| channel_id | string | ||
| message_id | string |
PingRequest
Section titled “PingRequest”| Field | Type | Label | Description |
|---|---|---|---|
| timestamp | uint64 |
PongResponse
Section titled “PongResponse”| Field | Type | Label | Description |
|---|---|---|---|
| timestamp | uint64 |
PresenceUpdate
Section titled “PresenceUpdate”| Field | Type | Label | Description |
|---|---|---|---|
| user_id | string | ||
| status | PresenceStatus | ||
| last_seen | google.protobuf.Timestamp | ||
| active_call_channel_id | string |
PreviewInviteRequest
Section titled “PreviewInviteRequest”| Field | Type | Label | Description |
|---|---|---|---|
| token | string |
PreviewInviteResponse
Section titled “PreviewInviteResponse”| Field | Type | Label | Description |
|---|---|---|---|
| channel_id | string | ||
| channel_name | string | ||
| guild_id | string | ||
| guild_name | string | ||
| member_count | int32 | ||
| guild_avatar_url | string | optional |
ProxiedUnreadRequest
Section titled “ProxiedUnreadRequest”| Field | Type | Label | Description |
|---|---|---|---|
| queries | ServerQuery | repeated |
ProxiedUnreadResponse
Section titled “ProxiedUnreadResponse”| Field | Type | Label | Description |
|---|---|---|---|
| server | string | ||
| guilds | Guild | repeated | |
| channels | Channel | repeated | |
| error | string | optional |
PushNotificationRequest
Section titled “PushNotificationRequest”| Field | Type | Label | Description |
|---|---|---|---|
| target_user_id | string | ||
| push_delegation_token | string | ||
| payload | string | JSON payload |
Reaction
Section titled “Reaction”| Field | Type | Label | Description |
|---|---|---|---|
| emoji | string | ||
| user_ids | string | repeated |
ReactionContent
Section titled “ReactionContent”| Field | Type | Label | Description |
|---|---|---|---|
| message_id | string | ||
| emoji | string | ||
| type | ReactionType |
ReactionIndicator
Section titled “ReactionIndicator”| Field | Type | Label | Description |
|---|---|---|---|
| target_message_id | string | ||
| emoji | string | ||
| added | bool |
ReactionRequest
Section titled “ReactionRequest”| Field | Type | Label | Description |
|---|---|---|---|
| channel_id | string | ||
| message_id | string | ||
| emoji | string |
ReceiveDMInviteRequest
Section titled “ReceiveDMInviteRequest”| Field | Type | Label | Description |
|---|---|---|---|
| invite | DMInvite |
RefreshRequest
Section titled “RefreshRequest”| Field | Type | Label | Description |
|---|---|---|---|
| refresh_token | string |
RefreshResponse
Section titled “RefreshResponse”| Field | Type | Label | Description |
|---|---|---|---|
| token | string | ||
| refresh_token | string | ||
| user | User |
RegisterFcmTokenRequest
Section titled “RegisterFcmTokenRequest”| Field | Type | Label | Description |
|---|---|---|---|
| token | string |
RegisterPushDistributorRequest
Section titled “RegisterPushDistributorRequest”| Field | Type | Label | Description |
|---|---|---|---|
| distributor_url | string |
RegisterRequest
Section titled “RegisterRequest”| Field | Type | Label | Description |
|---|---|---|---|
| display_name | string | ||
| public_key | string | K_id pubkey | |
| device_cert | DeviceCert | ||
| id_proof | string | Signature of public_key by K_id to prove ownership | |
| device_name | string | optional | |
| signature | bytes | Signed by K_dev (over timestamp) | |
| timestamp | uint64 |
RegisterResponse
Section titled “RegisterResponse”| Field | Type | Label | Description |
|---|---|---|---|
| token | string | ||
| user | User | ||
| refresh_token | string |
RejectDMInviteRequest
Section titled “RejectDMInviteRequest”| Field | Type | Label | Description |
|---|---|---|---|
| invite_id | string |
RemoveServerRequest
Section titled “RemoveServerRequest”| Field | Type | Label | Description |
|---|---|---|---|
| server_url | string |
| Field | Type | Label | Description |
|---|---|---|---|
| id | string | ||
| guild_id | string | ||
| name | string | ||
| color | string | ||
| position | int32 | ||
| permissions | string | repeated | |
| parent_role_ids | string | repeated |
SearchMessagesRequest
Section titled “SearchMessagesRequest”| Field | Type | Label | Description |
|---|---|---|---|
| channel_id | string | ||
| query | string | ||
| limit | uint32 | ||
| offset | uint32 |
SearchMessagesResponse
Section titled “SearchMessagesResponse”| Field | Type | Label | Description |
|---|---|---|---|
| messages | Message | repeated | |
| total | uint32 |
SearchStatusResponse
Section titled “SearchStatusResponse”| Field | Type | Label | Description |
|---|---|---|---|
| reachable | bool | ||
| message | string | ||
| index_count | uint32 | ||
| database_size | uint64 | ||
| last_update_unix_ms | uint64 | ||
| indexed_documents | uint64 | ||
| is_indexing | bool |
SelectOption
Section titled “SelectOption”| Field | Type | Label | Description |
|---|---|---|---|
| label | string | ||
| value | string | ||
| description | string | ||
| is_default | bool | ||
| emoji | string |
SendDMInviteRequest
Section titled “SendDMInviteRequest”| Field | Type | Label | Description |
|---|---|---|---|
| target_user_id | string | ||
| invite | DMInvite |
SendMessageRequest
Section titled “SendMessageRequest”| Field | Type | Label | Description |
|---|---|---|---|
| channel_id | string | ||
| idempotency_key | string | ||
| text | string | ||
| typing | TypingContent | ||
| reaction | ReactionContent | ||
| components | Component | repeated |
SendMessageResponse
Section titled “SendMessageResponse”| Field | Type | Label | Description |
|---|---|---|---|
| message | Message |
ServerGuildStats
Section titled “ServerGuildStats”| Field | Type | Label | Description |
|---|---|---|---|
| guild | Guild | ||
| member_count | int32 | ||
| channel_count | int32 | ||
| message_count | int32 |
ServerInfoResponse
Section titled “ServerInfoResponse”| Field | Type | Label | Description |
|---|---|---|---|
| canonical_address | string | ||
| livekit_configured | bool | ||
| irc_enabled | bool | ||
| irc_port | int32 | ||
| irc_server | string |
ServerQuery
Section titled “ServerQuery”| Field | Type | Label | Description |
|---|---|---|---|
| url | string | ||
| token | string |
ServerSettings
Section titled “ServerSettings”| Field | Type | Label | Description |
|---|---|---|---|
| max_upload_size | uint32 | ||
| message_rate_limit | uint32 | ||
| max_message_length | uint32 | ||
| register_rate_limit | uint32 | ||
| login_rate_limit | uint32 | ||
| invite_rate_limit | uint32 | ||
| discovery_rate_limit | uint32 | ||
| sync_mailbox_rate_limit | uint32 | ||
| ping_rate_limit | uint32 |
StreamResponse
Section titled “StreamResponse”| Field | Type | Label | Description |
|---|---|---|---|
| event_id | uint64 | ||
| timestamp | google.protobuf.Timestamp | ||
| message_created | MessageEvent | ||
| message_updated | MessageEvent | ||
| delivery | DeliveryReceipt | ||
| presence | PresenceUpdate | ||
| member_joined | GuildMemberJoined | ||
| user_updated | UserUpdated | ||
| message_deleted | MessageDeletedEvent | ||
| member_removed | GuildMemberRemoved |
SubscribeRequest
Section titled “SubscribeRequest”| Field | Type | Label | Description |
|---|---|---|---|
| resume_from_event_id | string |
SyncMailboxRequest
Section titled “SyncMailboxRequest”| Field | Type | Label | Description |
|---|---|---|---|
| session_id | string | ||
| payload | bytes | optional | JSON or encrypted data |
| wait_for_data | bool | If true, long-poll until data is available |
SyncMailboxResponse
Section titled “SyncMailboxResponse”| Field | Type | Label | Description |
|---|---|---|---|
| payload | bytes | optional |
SystemAction
Section titled “SystemAction”TypingContent
Section titled “TypingContent”| Field | Type | Label | Description |
|---|---|---|---|
| is_typing | bool |
TypingIndicator
Section titled “TypingIndicator”| Field | Type | Label | Description |
|---|---|---|---|
| channel_id | string | ||
| is_typing | bool | ||
| user_id | string |
UnassignRoleRequest
Section titled “UnassignRoleRequest”| Field | Type | Label | Description |
|---|---|---|---|
| guild_id | string | ||
| user_id | string | ||
| role_id | string |
UnpinMessageRequest
Section titled “UnpinMessageRequest”| Field | Type | Label | Description |
|---|---|---|---|
| channel_id | string | ||
| message_id | string |
UnregisterFcmTokenRequest
Section titled “UnregisterFcmTokenRequest”| Field | Type | Label | Description |
|---|---|---|---|
| token | string |
UpdateChannelRequest
Section titled “UpdateChannelRequest”| Field | Type | Label | Description |
|---|---|---|---|
| channel_id | string | ||
| name | string | optional | |
| folder_id | string | optional | |
| irc_name | string | optional | |
| position | int32 | optional |
UpdateFederatedProfileRequest
Section titled “UpdateFederatedProfileRequest”| Field | Type | Label | Description |
|---|---|---|---|
| user_id | string | ||
| display_name | string | ||
| avatar_url | string | ||
| bio | string | ||
| device_cert | DeviceCert | ||
| timestamp | uint64 | ||
| signature | bytes | The same signature provided by the client in UpdateUserRequest |
UpdateGuildRequest
Section titled “UpdateGuildRequest”| Field | Type | Label | Description |
|---|---|---|---|
| guild_id | string | ||
| name | string | optional | |
| avatar_url | string | optional |
UpdateHomeServerRequest
Section titled “UpdateHomeServerRequest”| Field | Type | Label | Description |
|---|---|---|---|
| user_id | string | ||
| new_homeserver | string | ||
| timestamp | uint64 | ||
| signature | string | Signed by K_id |
UpdatePresenceRequest
Section titled “UpdatePresenceRequest”| Field | Type | Label | Description |
|---|---|---|---|
| status | PresenceStatus | ||
| active_call_channel_id | string |
UpdateRoleRequest
Section titled “UpdateRoleRequest”| Field | Type | Label | Description |
|---|---|---|---|
| role_id | string | ||
| guild_id | string | For verification | |
| name | string | ||
| color | string | ||
| position | int32 | ||
| permissions | string | repeated | |
| parent_role_ids | string | repeated |
UpdateServerSettingsRequest
Section titled “UpdateServerSettingsRequest”| Field | Type | Label | Description |
|---|---|---|---|
| max_upload_size | uint32 | optional | |
| message_rate_limit | uint32 | optional | |
| max_message_length | uint32 | optional | |
| register_rate_limit | uint32 | optional | |
| login_rate_limit | uint32 | optional | |
| invite_rate_limit | uint32 | optional | |
| discovery_rate_limit | uint32 | optional | |
| sync_mailbox_rate_limit | uint32 | optional | |
| ping_rate_limit | uint32 | optional |
UpdateUserRequest
Section titled “UpdateUserRequest”| Field | Type | Label | Description |
|---|---|---|---|
| name | string | optional | |
| avatar_url | string | optional | |
| presence_preference | PresenceStatus | optional | |
| bio | string | optional | |
| guild_order | string | optional | |
| is_profile_synced | bool | optional | |
| irc_name | string | optional | |
| device_cert | DeviceCert | ||
| timestamp | uint64 | ||
| signature | bytes | Signature of request body (excluding signature itself) by K_dev |
UpdateWebhookRequest
Section titled “UpdateWebhookRequest”| Field | Type | Label | Description |
|---|---|---|---|
| webhook_id | string | ||
| name | string | optional | |
| avatar_url | string | optional | |
| channel_id | string | optional |
UploadAbortRequest
Section titled “UploadAbortRequest”| Field | Type | Label | Description |
|---|---|---|---|
| upload_token | string |
UploadBeginRequest
Section titled “UploadBeginRequest”| Field | Type | Label | Description |
|---|---|---|---|
| upload_token | string | ||
| filename | string | ||
| mime_type | string | ||
| total_size | uint64 | ||
| chunk_size | uint32 |
UploadChunkRequest
Section titled “UploadChunkRequest”| Field | Type | Label | Description |
|---|---|---|---|
| upload_token | string | ||
| chunk_index | uint32 | ||
| data | bytes | ||
| sha256 | string |
UploadFinishRequest
Section titled “UploadFinishRequest”| Field | Type | Label | Description |
|---|---|---|---|
| upload_token | string | ||
| sha256 | string |
UploadMediaResponse
Section titled “UploadMediaResponse”| Field | Type | Label | Description |
|---|---|---|---|
| file_id | string | ||
| public_url | string | ||
| thumb_file_id | string | optional | |
| thumb_public_url | string | optional |
| Field | Type | Label | Description |
|---|---|---|---|
| id | string | ||
| name | string | ||
| avatar_color | string | ||
| status | string | ||
| ephemeral | bool | ||
| public_key | string | K_dev public key (deprecated/legacy use) | |
| presence_preference | PresenceStatus | ||
| is_server_admin | bool | ||
| avatar_url | string | ||
| bio | string | ||
| id_pubkey | string | K_id pubkey | |
| homeserver | string | ||
| is_irc | bool | ||
| guild_order | string | JSON array of guild IDs | |
| is_profile_synced | bool | ||
| irc_name | string |
UserServer
Section titled “UserServer”| Field | Type | Label | Description |
|---|---|---|---|
| server_url | string | ||
| created_at | uint64 |
UserUpdated
Section titled “UserUpdated”| Field | Type | Label | Description |
|---|---|---|---|
| user | User |
VerifyUserRequest
Section titled “VerifyUserRequest”| Field | Type | Label | Description |
|---|---|---|---|
| user_id | string | K_id pubkey | |
| challenge | string | Signed challenge by K_id |
VerifyUserResponse
Section titled “VerifyUserResponse”| Field | Type | Label | Description |
|---|---|---|---|
| user | User | ||
| push_delegation_token | string |
Webhook
Section titled “Webhook”| Field | Type | Label | Description |
|---|---|---|---|
| id | string | ||
| channel_id | string | ||
| guild_id | string | ||
| name | string | ||
| avatar_url | string | optional | |
| token | string | ||
| creator_id | string |
ComponentType
Section titled “ComponentType”| Name | Number | Description |
|---|---|---|
| COMPONENT_TYPE_UNSPECIFIED | 0 | |
| COMPONENT_TYPE_ACTION_ROW | 1 | |
| COMPONENT_TYPE_BUTTON | 2 | |
| COMPONENT_TYPE_STRING_SELECT | 3 |
PresenceStatus
Section titled “PresenceStatus”| Name | Number | Description |
|---|---|---|
| PRESENCE_STATUS_UNSPECIFIED | 0 | |
| PRESENCE_STATUS_ONLINE | 1 | |
| PRESENCE_STATUS_OFFLINE | 3 | |
| PRESENCE_STATUS_BUSY | 4 |
ReactionType
Section titled “ReactionType”| Name | Number | Description |
|---|---|---|
| REACTION_TYPE_ADD | 0 | |
| REACTION_TYPE_REMOVE | 1 |
ReceiptType
Section titled “ReceiptType”| Name | Number | Description |
|---|---|---|
| RECEIPT_TYPE_UNSPECIFIED | 0 | |
| RECEIPT_TYPE_DELIVERED | 1 | |
| RECEIPT_TYPE_READ | 2 |
ChatService
Section titled “ChatService”Combined Service definition
Scalar Value Types
Section titled “Scalar Value Types”| .proto Type | Notes | C++ | Java | Python | Go | C# | PHP | Ruby |
|---|---|---|---|---|---|---|---|---|
| double | double | double | float | float64 | double | float | Float | |
| float | float | float | float | float32 | float | float | Float | |
| int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
| int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | int64 | long | integer/string | Bignum |
| uint32 | Uses variable-length encoding. | uint32 | int | int/long | uint32 | uint | integer | Bignum or Fixnum (as required) |
| uint64 | Uses variable-length encoding. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum or Fixnum (as required) |
| sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
| sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | int64 | long | integer/string | Bignum |
| fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | uint32 | uint | integer | Bignum or Fixnum (as required) |
| fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum |
| sfixed32 | Always four bytes. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
| sfixed64 | Always eight bytes. | int64 | long | int/long | int64 | long | integer/string | Bignum |
| bool | bool | boolean | boolean | bool | bool | boolean | TrueClass/FalseClass | |
| string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | string | string | string | String (UTF-8) |
| bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | []byte | ByteString | string | String (ASCII-8BIT) |