# Protocol Documentation ## Table of Contents - [api/v2/common.proto](#api_v2_common-proto) - [RowStatus](#memos-api-v2-RowStatus) - [api/v2/memo_service.proto](#api_v2_memo_service-proto) - [GetMemoRequest](#memos-api-v2-GetMemoRequest) - [GetMemoResponse](#memos-api-v2-GetMemoResponse) - [ListMemosRequest](#memos-api-v2-ListMemosRequest) - [ListMemosResponse](#memos-api-v2-ListMemosResponse) - [Memo](#memos-api-v2-Memo) - [Visibility](#memos-api-v2-Visibility) - [MemoService](#memos-api-v2-MemoService) - [api/v2/system_service.proto](#api_v2_system_service-proto) - [GetSystemInfoRequest](#memos-api-v2-GetSystemInfoRequest) - [GetSystemInfoResponse](#memos-api-v2-GetSystemInfoResponse) - [SystemInfo](#memos-api-v2-SystemInfo) - [SystemService](#memos-api-v2-SystemService) - [api/v2/tag_service.proto](#api_v2_tag_service-proto) - [ListTagsRequest](#memos-api-v2-ListTagsRequest) - [ListTagsResponse](#memos-api-v2-ListTagsResponse) - [Tag](#memos-api-v2-Tag) - [TagService](#memos-api-v2-TagService) - [api/v2/user_service.proto](#api_v2_user_service-proto) - [GetUserRequest](#memos-api-v2-GetUserRequest) - [GetUserResponse](#memos-api-v2-GetUserResponse) - [User](#memos-api-v2-User) - [UserSetting](#memos-api-v2-UserSetting) - [UserSettingValue](#memos-api-v2-UserSettingValue) - [Role](#memos-api-v2-Role) - [UserSetting.Key](#memos-api-v2-UserSetting-Key) - [UserService](#memos-api-v2-UserService) - [Scalar Value Types](#scalar-value-types)
## api/v2/common.proto ### RowStatus | Name | Number | Description | | ---- | ------ | ----------- | | ROW_STATUS_UNSPECIFIED | 0 | | | ACTIVE | 1 | | | ARCHIVED | 2 | | ## api/v2/memo_service.proto ### GetMemoRequest | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | id | [int32](#int32) | | | ### GetMemoResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | memo | [Memo](#memos-api-v2-Memo) | | | ### ListMemosRequest | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | page | [int32](#int32) | | | | page_size | [int32](#int32) | | | | filter | [string](#string) | | Filter is used to filter memos returned in the list. | ### ListMemosResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | memos | [Memo](#memos-api-v2-Memo) | repeated | | | total | [int32](#int32) | | | ### Memo | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | id | [int32](#int32) | | | | row_status | [RowStatus](#memos-api-v2-RowStatus) | | | | creator_id | [int32](#int32) | | | | created_ts | [int64](#int64) | | | | updated_ts | [int64](#int64) | | | | content | [string](#string) | | | | visibility | [Visibility](#memos-api-v2-Visibility) | | | | pinned | [bool](#bool) | | | ### Visibility | Name | Number | Description | | ---- | ------ | ----------- | | VISIBILITY_UNSPECIFIED | 0 | | | PRIVATE | 1 | | | PROTECTED | 2 | | | PUBLIC | 3 | | ### MemoService | Method Name | Request Type | Response Type | Description | | ----------- | ------------ | ------------- | ------------| | ListMemos | [ListMemosRequest](#memos-api-v2-ListMemosRequest) | [ListMemosResponse](#memos-api-v2-ListMemosResponse) | | | GetMemo | [GetMemoRequest](#memos-api-v2-GetMemoRequest) | [GetMemoResponse](#memos-api-v2-GetMemoResponse) | | ## api/v2/system_service.proto ### GetSystemInfoRequest ### GetSystemInfoResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | system_info | [SystemInfo](#memos-api-v2-SystemInfo) | | | ### SystemInfo | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | version | [string](#string) | | | | mode | [string](#string) | | | | allow_registration | [bool](#bool) | | | | disable_password_login | [bool](#bool) | | | | additional_script | [string](#string) | | | | additional_style | [string](#string) | | | | db_size | [int64](#int64) | | | ### SystemService | Method Name | Request Type | Response Type | Description | | ----------- | ------------ | ------------- | ------------| | GetSystemInfo | [GetSystemInfoRequest](#memos-api-v2-GetSystemInfoRequest) | [GetSystemInfoResponse](#memos-api-v2-GetSystemInfoResponse) | | ## api/v2/tag_service.proto ### ListTagsRequest | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | creator_id | [int32](#int32) | | | ### ListTagsResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | tags | [Tag](#memos-api-v2-Tag) | repeated | | ### Tag | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | name | [string](#string) | | | | creator_id | [int32](#int32) | | | ### TagService | Method Name | Request Type | Response Type | Description | | ----------- | ------------ | ------------- | ------------| | ListTags | [ListTagsRequest](#memos-api-v2-ListTagsRequest) | [ListTagsResponse](#memos-api-v2-ListTagsResponse) | | ## api/v2/user_service.proto ### GetUserRequest | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | name | [string](#string) | | | ### GetUserResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | user | [User](#memos-api-v2-User) | | | ### User | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | id | [int32](#int32) | | | | row_status | [RowStatus](#memos-api-v2-RowStatus) | | | | created_ts | [int64](#int64) | | | | updated_ts | [int64](#int64) | | | | username | [string](#string) | | | | role | [Role](#memos-api-v2-Role) | | | | email | [string](#string) | | | | nickname | [string](#string) | | | | open_id | [string](#string) | | | | avatar_url | [string](#string) | | | ### UserSetting | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | user_id | [int32](#int32) | | The user id of the setting. | | key | [UserSetting.Key](#memos-api-v2-UserSetting-Key) | | The key of the setting. | | value | [UserSettingValue](#memos-api-v2-UserSettingValue) | | The value of the setting. | ### UserSettingValue | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | string_value | [string](#string) | | Default value as a string. | | visibility_value | [Visibility](#memos-api-v2-Visibility) | | | ### Role | Name | Number | Description | | ---- | ------ | ----------- | | ROLE_UNSPECIFIED | 0 | | | HOST | 1 | | | ADMIN | 2 | | | USER | 3 | | ### UserSetting.Key | Name | Number | Description | | ---- | ------ | ----------- | | KEY_UNSPECIFIED | 0 | | | LOCALE | 1 | The preferred locale. | | APPEARANCE | 2 | The preferred appearance. | | MEMO_VISIBILITY | 3 | The default visibility of the memo when creating a new memo. | | TELEGRAM_USER_ID | 4 | User's telegram id | ### UserService | Method Name | Request Type | Response Type | Description | | ----------- | ------------ | ------------- | ------------| | GetUser | [GetUserRequest](#memos-api-v2-GetUserRequest) | [GetUserResponse](#memos-api-v2-GetUserResponse) | | ## 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) |