openapi: 3.0.0 info: title: Nakama console API v2 version: "2.0" contact: name: The Nakama Authors & Contributors url: https://github.com/heroiclabs/nakama email: hello@heroiclabs.com tags: - name: Console paths: /v2/console/account: get: summary: List (and optionally filter) accounts. operationId: ListAccounts responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/AccountList" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: filter description: User ID or username filter. in: query required: false schema: type: string - name: tombstones description: Search only recorded deletes. in: query required: false schema: type: boolean - name: cursor description: Cursor to start from in: query required: false schema: type: string tags: - Console delete: summary: Delete (non-recorded) all user accounts. operationId: DeleteAccounts responses: "200": description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" tags: - Console post: summary: Import given account export data, creating a new account that fully matches the data. operationId: ImportAccountFull responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/console.Account" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" requestBody: content: application/json: schema: $ref: "#/components/schemas/AccountImport" description: Request to import user account data. required: true tags: - Console "/v2/console/account/{account_id}/note": get: operationId: ListAccountNotes responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/ListAccountNotesResponse" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: account_id description: Account to list notes for. in: path required: true schema: type: string - name: limit description: Response result page limit. in: query required: false schema: type: integer format: int32 - name: cursor description: Optional cursor for pagination. in: query required: false schema: type: string tags: - Console post: operationId: AddAccountNote responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/AccountNote" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: account_id description: The account id to add the note for. in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/AddAccountNoteBody" required: true tags: - Console "/v2/console/account/{account_id}/note/{note_id}": delete: operationId: DeleteAccountNote responses: "200": description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: account_id description: Account owning the notes. in: path required: true schema: type: string - name: note_id description: Identifier of the note. in: path required: true schema: type: string tags: - Console "/v2/console/account/{account_id}/wallet": get: summary: Get a list of the user's wallet transactions. operationId: GetWalletLedger responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/WalletLedgerList" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: account_id description: The unique identifier of the user account. in: path required: true schema: type: string - name: limit description: Max number of results per page. in: query required: false schema: type: integer format: int64 - name: cursor description: Cursor to retrieve a page of records from. in: query required: false schema: type: string - name: after description: Optional timestamp threshold to list wallet ledger records after. in: query required: false schema: type: string format: date-time - name: before description: Optional timestamp threshold to list wallet ledger records before. in: query required: false schema: type: string format: date-time tags: - Console "/v2/console/account/{id}": get: summary: Get detailed account information for a single user. operationId: GetAccount responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/console.Account" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: id description: The unique identifier of the user account. in: path required: true schema: type: string tags: - Console delete: summary: Delete all information stored for a user account. operationId: DeleteAccount responses: "200": description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: id description: The unique identifier of the user account. in: path required: true schema: type: string - name: record_deletion description: Record the user deletion - used for GDPR compliance. in: query required: false schema: type: boolean tags: - Console post: summary: Update one or more fields on a user account. operationId: UpdateAccount responses: "200": description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: id description: User ID to update. in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/UpdateAccountBody" required: true tags: - Console "/v2/console/account/{id}/ban": post: summary: Ban a user. operationId: BanAccount responses: "200": description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: id description: The unique identifier of the user account. in: path required: true schema: type: string tags: - Console "/v2/console/account/{id}/export": get: summary: Export all information stored about a user account. operationId: ExportAccount responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/AccountExport" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: id description: The unique identifier of the user account. in: path required: true schema: type: string tags: - Console "/v2/console/account/{id}/friend": get: summary: Get a user's list of friend relationships. operationId: GetFriends responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/FriendList" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: id description: The unique identifier of the user account. in: path required: true schema: type: string tags: - Console "/v2/console/account/{id}/friend/{friend_id}": delete: summary: Delete the friend relationship between two users. operationId: DeleteFriend responses: "200": description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: id description: The user do delete for. in: path required: true schema: type: string - name: friend_id description: User ID of the friend to remove. in: path required: true schema: type: string tags: - Console "/v2/console/account/{id}/group": get: summary: Get a list of groups the user is a member of. operationId: GetGroups responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/UserGroupList" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: id description: The unique identifier of the user account. in: path required: true schema: type: string tags: - Console "/v2/console/account/{id}/group/{group_id}": delete: summary: Remove a user from a group. operationId: DeleteGroupUser responses: "200": description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: id description: User to remove. in: path required: true schema: type: string - name: group_id description: ID of the group to remove them from. in: path required: true schema: type: string tags: - Console "/v2/console/account/{id}/import": put: summary: Import given account export data, overwriting the user account's current state. operationId: ImportAccount responses: "200": description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: id description: The user ID to overwrite data for, or blank if the account should be freshly created. in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ImportAccountBody" required: true tags: - Console "/v2/console/account/{id}/unban": post: summary: Unban a user. operationId: UnbanAccount responses: "200": description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: id description: The unique identifier of the user account. in: path required: true schema: type: string tags: - Console "/v2/console/account/{id}/unlink/apple": post: summary: Unlink the Apple ID from a user account. operationId: UnlinkApple responses: "200": description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: id description: The unique identifier of the user account. in: path required: true schema: type: string tags: - Console "/v2/console/account/{id}/unlink/custom": post: summary: Unlink the custom ID from a user account. operationId: UnlinkCustom responses: "200": description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: id description: The unique identifier of the user account. in: path required: true schema: type: string tags: - Console "/v2/console/account/{id}/unlink/device": post: summary: Unlink the device ID from a user account. operationId: UnlinkDevice responses: "200": description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: id description: User ID to unlink from. in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/UnlinkDeviceBody" required: true tags: - Console "/v2/console/account/{id}/unlink/email": post: summary: Unlink the email from a user account. operationId: UnlinkEmail responses: "200": description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: id description: The unique identifier of the user account. in: path required: true schema: type: string tags: - Console "/v2/console/account/{id}/unlink/facebook": post: summary: Unlink the Facebook ID from a user account. operationId: UnlinkFacebook responses: "200": description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: id description: The unique identifier of the user account. in: path required: true schema: type: string tags: - Console "/v2/console/account/{id}/unlink/facebookinstantgame": post: summary: Unlink the Facebook Instant Game ID from a user account. operationId: UnlinkFacebookInstantGame responses: "200": description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: id description: The unique identifier of the user account. in: path required: true schema: type: string tags: - Console "/v2/console/account/{id}/unlink/gamecenter": post: summary: Unlink the Game Center ID from a user account. operationId: UnlinkGameCenter responses: "200": description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: id description: The unique identifier of the user account. in: path required: true schema: type: string tags: - Console "/v2/console/account/{id}/unlink/google": post: summary: Unlink the Google ID from a user account. operationId: UnlinkGoogle responses: "200": description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: id description: The unique identifier of the user account. in: path required: true schema: type: string tags: - Console "/v2/console/account/{id}/unlink/steam": post: summary: Unlink the Steam ID from a user account. operationId: UnlinkSteam responses: "200": description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: id description: The unique identifier of the user account. in: path required: true schema: type: string tags: - Console "/v2/console/account/{id}/wallet/{wallet_id}": delete: summary: Delete a wallet ledger item. operationId: DeleteWalletLedger responses: "200": description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: id description: User ID to remove wallet ledger item from. in: path required: true schema: type: string - name: wallet_id description: ID of the wallet ledger item to remove. in: path required: true schema: type: string tags: - Console /v2/console/acl/template: get: operationId: ListAclTemplates responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/AclTemplateList" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" tags: - Console post: operationId: AddAclTemplate responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/AclTemplate" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" requestBody: content: application/json: schema: $ref: "#/components/schemas/AddAclTemplateRequest" description: Add a new ACL template. required: true tags: - Console "/v2/console/acl/template/{id}": delete: operationId: DeleteAclTemplate responses: "200": description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: id description: The identifier of the ACL template. in: path required: true schema: type: string tags: - Console put: operationId: UpdateAclTemplate responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/AclTemplate" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: id description: The identifier of the ACL template. in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/UpdateAclTemplateBody" required: true tags: - Console /v2/console/all: delete: summary: Deletes all data operationId: DeleteAllData responses: "200": description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" tags: - Console /v2/console/api/endpoints: get: summary: API Explorer - list all endpoints operationId: ListApiEndpoints responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/ApiEndpointList" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" tags: - Console "/v2/console/api/endpoints/rpc/{method}": post: summary: API Explorer - call a custom RPC endpoint operationId: CallRpcEndpoint responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/CallApiEndpointResponse" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: method in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/CallRpcEndpointBody" required: true tags: - Console "/v2/console/api/endpoints/{method}": post: summary: API Explorer - call an endpoint operationId: CallApiEndpoint responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/CallApiEndpointResponse" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: method in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/CallApiEndpointBody" required: true tags: - Console /v2/console/audit/log: get: summary: List audit log entries with the selected filter operationId: ListAuditLogs responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/AuditLogList" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: limit description: Maximum number of entries to return. in: query required: false schema: type: integer format: int32 - name: username description: Filter by username. in: query required: false schema: type: string - name: resource description: Filter by resource. in: query required: false schema: type: integer format: int32 - name: action description: Filter by action. in: query required: false schema: type: string enum: - UNKNOWN - CREATE - UPDATE - DELETE - INVOKE - IMPORT - EXPORT default: UNKNOWN - name: after description: Optional timestamp threshold to list audit log records after. in: query required: false schema: type: string format: date-time - name: before description: Optional timestamp threshold to list audit log records before. in: query required: false schema: type: string format: date-time - name: cursor description: Cursor to fetch additional. in: query required: false schema: type: string tags: - Console /v2/console/audit/log/users: get: summary: List console usernames that can be used to filter the audit logs operationId: ListAuditLogsUsers responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/AuditLogUsersList" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" tags: - Console /v2/console/authenticate: post: summary: Authenticate a console user with username and password. operationId: Authenticate responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/ConsoleSession" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" requestBody: content: application/json: schema: $ref: "#/components/schemas/AuthenticateRequest" description: Authenticate a console user with username and password. required: true tags: - Console security: - "": [] /v2/console/authenticate/logout: post: summary: Log out a session and invalidate the session token. operationId: AuthenticateLogout responses: "200": description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" requestBody: content: application/json: schema: $ref: "#/components/schemas/AuthenticateLogoutRequest" description: Log out a session and invalidate a session token. required: true tags: - Console /v2/console/authenticate/mfa: post: summary: Change an account's MFA using a code, usually delivered over email. operationId: AuthenticateMFASetup responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/AuthenticateMFASetupResponse" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" requestBody: content: application/json: schema: $ref: "#/components/schemas/AuthenticateMFASetupRequest" description: Request to change MFA. required: true tags: - Console /v2/console/authenticate/password_change: post: summary: Change an account's password using a code, usually delivered over email. operationId: AuthenticatePasswordChange responses: "200": description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" requestBody: content: application/json: schema: $ref: "#/components/schemas/AuthenticatePasswordChangeRequest" description: Request to change a password. required: true tags: - Console /v2/console/channel: get: summary: List channel messages with the selected filter operationId: ListChannelMessages responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/ChannelMessageList" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: type description: Type of the chat channel in: query required: false schema: type: string enum: - UNKNOWN - ROOM - GROUP - DIRECT default: UNKNOWN - name: label description: Label of the channel, if a standard chat room in: query required: false schema: type: string - name: group_id description: Group ID of the channel, if a group chat in: query required: false schema: type: string - name: user_id_one description: User IDs, if a direct chat in: query required: false schema: type: string - name: user_id_two in: query required: false schema: type: string - name: cursor description: Cursor to start from in: query required: false schema: type: string tags: - Console /v2/console/config: get: summary: Get server config and configuration warnings. operationId: GetConfig responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/Config" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" tags: - Console /v2/console/extensions: get: operationId: RegisteredExtensions responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/Extensions" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" tags: - Console /v2/console/group: get: summary: List (and optionally filter) groups. operationId: ListGroups responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/console.GroupList" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: filter description: User ID or username filter. in: query required: false schema: type: string - name: cursor description: Cursor to start from in: query required: false schema: type: string tags: - Console "/v2/console/group/{group_id}/account/{id}/demote": post: summary: Demote a user from a group. operationId: DemoteGroupMember responses: "200": description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: group_id description: ID of the group. in: path required: true schema: type: string - name: id description: User to change state. in: path required: true schema: type: string tags: - Console "/v2/console/group/{group_id}/account/{id}/promote": post: summary: Promote a user from a group. operationId: PromoteGroupMember responses: "200": description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: group_id description: ID of the group. in: path required: true schema: type: string - name: id description: User to change state. in: path required: true schema: type: string tags: - Console "/v2/console/group/{group_id}/add": post: summary: Add/join members to a group. operationId: AddGroupUsers responses: "200": description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: group_id description: ID of the group to add them to. in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/AddGroupUsersBody" required: true tags: - Console "/v2/console/group/{id}": get: summary: Get detailed group information. operationId: GetGroup responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/Group" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: id description: The unique identifier of the group. in: path required: true schema: type: string tags: - Console delete: summary: Remove a group. operationId: DeleteGroup responses: "200": description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: id description: ID of the group to delete. in: path required: true schema: type: string tags: - Console post: summary: Update one or more fields on a group. operationId: UpdateGroup responses: "200": description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: id description: Group ID to update. in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/UpdateGroupBody" required: true tags: - Console "/v2/console/group/{id}/export": get: summary: Export all information stored about a group. operationId: ExportGroup responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/GroupExport" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: id description: The unique identifier of the group. in: path required: true schema: type: string tags: - Console "/v2/console/group/{id}/member": get: summary: Get a list of members of the group. operationId: GetMembers responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/GroupUserList" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: id description: The unique identifier of the group. in: path required: true schema: type: string tags: - Console "/v2/console/iap/purchase/{transaction_id}": get: summary: Get purchase by transaction_id operationId: GetPurchase responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/ValidatedPurchase" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: transaction_id description: Purchase original transaction id. in: path required: true schema: type: string tags: - Console "/v2/console/iap/subscription/{original_transaction_id}": get: summary: Get subscription by original_transaction_id operationId: GetSubscription responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/ValidatedSubscription" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: original_transaction_id description: Subscription original transaction id. in: path required: true schema: type: string tags: - Console /v2/console/leaderboard: get: summary: List leaderboards operationId: ListLeaderboards responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/console.LeaderboardList" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: cursor description: An optional cursor to paginate from. in: query required: false schema: type: string tags: - Console "/v2/console/leaderboard/{id}": get: summary: Get leaderboard. operationId: GetLeaderboard responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/console.Leaderboard" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: id description: Leaderboard ID in: path required: true schema: type: string tags: - Console delete: summary: Delete leaderboard operationId: DeleteLeaderboard responses: "200": description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: id description: Leaderboard ID in: path required: true schema: type: string tags: - Console "/v2/console/leaderboard/{id}/owner/{owner_id}": delete: summary: Delete leaderboard record operationId: DeleteLeaderboardRecord responses: "200": description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: id description: Leaderboard ID. in: path required: true schema: type: string - name: owner_id description: Record owner. in: path required: true schema: type: string tags: - Console "/v2/console/leaderboard/{leaderboard_id}/records": get: summary: List leaderboard records. operationId: ListLeaderboardRecords responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/LeaderboardRecordList" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: leaderboard_id description: The ID of the leaderboard to list for. in: path required: true schema: type: string - name: owner_ids description: One or more owners to retrieve records for. in: query required: false explode: true schema: type: array items: type: string - name: limit description: Max number of records to return. Between 1 and 100. in: query required: false schema: type: integer format: int32 - name: cursor description: A next or previous page cursor. in: query required: false schema: type: string - name: expiry description: Expiry in seconds (since epoch) to begin fetching records from. Optional. 0 means from current time. in: query required: false schema: type: string format: int64 tags: - Console /v2/console/match: get: summary: List ongoing matches operationId: ListMatches responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/console.MatchList" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: limit description: Limit the number of returned matches. in: query required: false schema: type: integer format: int32 - name: authoritative description: Authoritative or relayed matches, or null for both. in: query required: false schema: type: boolean - name: label description: Label filter. in: query required: false schema: type: string - name: min_size description: Minimum user count. in: query required: false schema: type: integer format: int32 - name: max_size description: Maximum user count. in: query required: false schema: type: integer format: int32 - name: match_id description: Match ID. in: query required: false schema: type: string - name: query description: Arbitrary label query. in: query required: false schema: type: string - name: node description: Node name filter, optional. in: query required: false schema: type: string tags: - Console "/v2/console/match/{id}/state": get: summary: Get current state of a running match operationId: GetMatchState responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/MatchState" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: id description: Match ID in: path required: true schema: type: string tags: - Console /v2/console/message: delete: summary: Delete messages. operationId: DeleteChannelMessages responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/DeleteChannelMessagesResponse" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: before description: Timestamp before which messages will be deleted. in: query required: false schema: type: string format: date-time - name: ids description: IDs of the messages to delete. in: query required: false explode: true schema: type: array items: type: string tags: - Console /v2/console/notification: get: summary: List notifications. operationId: ListNotifications responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/console.NotificationList" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: user_id description: User ID to filter purchases for in: query required: false schema: type: string - name: limit description: The number of notifications to get. in: query required: false schema: type: integer format: int64 - name: cursor description: A cursor to page through notifications. in: query required: false schema: type: string tags: - Console post: summary: Send a notification. operationId: SendNotification responses: "200": description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" requestBody: content: application/json: schema: $ref: "#/components/schemas/SendNotificationRequest" description: Request to send a notification. required: true tags: - Console "/v2/console/notification/{id}": get: summary: Get a notification by id. operationId: GetNotification responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/console.Notification" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: id description: Notification id. in: path required: true schema: type: string tags: - Console delete: summary: Delete notification operationId: DeleteNotification responses: "200": description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: id description: Notification ID. in: path required: true schema: type: string tags: - Console /v2/console/purchase: get: summary: List validated purchases operationId: ListPurchases responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/PurchaseList" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: user_id description: User ID to filter purchases for in: query required: false schema: type: string - name: limit description: Max number of results per page in: query required: false schema: type: integer format: int64 - name: cursor description: Cursor to retrieve a page of records from in: query required: false schema: type: string - name: after description: Optional timestamp threshold to list purchases after. in: query required: false schema: type: string format: date-time - name: before description: Optional timestamp threshold to list purchases before. in: query required: false schema: type: string format: date-time - name: filter description: Filter to use when searching for specific purchases. in: query required: false schema: type: string tags: - Console /v2/console/runtime: get: summary: Get runtime info operationId: GetRuntime responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/RuntimeInfo" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" tags: - Console /v2/console/satori/direct-message: post: operationId: SatoriSendDirectMessage responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/SendDirectMessageResponse" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" requestBody: content: application/json: schema: $ref: "#/components/schemas/SendDirectMessageRequest" description: The request to send direct messages. required: true tags: - Console /v2/console/satori/template: get: operationId: SatoriListTemplates responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/ListResponse" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: search.name.or description: Filter by elements matching one of the parameters. in: query required: false explode: true schema: type: array items: type: string - name: search.name.exact description: Filter by elements matching exactly the value. in: query required: false schema: type: string - name: search.name.like description: Filter by elements matching the pattern. in: query required: false schema: type: string - name: search.label_name.or description: Filter by elements matching one of the parameters. in: query required: false explode: true schema: type: array items: type: string - name: search.label_name.and description: Filter by elements matching all parameters. in: query required: false explode: true schema: type: array items: type: string - name: pagination.limit description: Limit of results to return. in: query required: false schema: type: integer format: int32 - name: pagination.cursor description: Cursor to the next page. in: query required: false schema: type: string tags: - Console /v2/console/setting: get: summary: List settings operationId: ListSettings responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/SettingList" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: names description: The list of setting names, if empty all settings are returned. in: query required: false explode: true schema: type: array items: type: string tags: - Console "/v2/console/setting/{name}": get: summary: Get console settings. operationId: GetSetting responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/Setting" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: name description: The name of the setting in: path required: true schema: type: string tags: - Console post: summary: Update an existing setting. operationId: UpdateSetting responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/Setting" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: name description: Name identifier. in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/UpdateSettingBody" required: true tags: - Console /v2/console/status: get: summary: Get current status data for all nodes. operationId: GetStatus responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/StatusList" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" tags: - Console /v2/console/storage: get: summary: List (and optionally filter) storage data. operationId: ListStorage responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/StorageList" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: user_id description: User ID to filter objects for. in: query required: false schema: type: string - name: key description: Key to filter objects for in: query required: false schema: type: string - name: collection description: Collection name to filter objects for in: query required: false schema: type: string - name: cursor description: Cursor to retrieve a page of records from in: query required: false schema: type: string tags: - Console delete: summary: Delete all storage data. operationId: DeleteStorage responses: "200": description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" tags: - Console /v2/console/storage/collections: get: summary: List storage collections operationId: ListStorageCollections responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/StorageCollectionsList" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" tags: - Console "/v2/console/storage/{collection}/{key}/{user_id}": get: summary: Get a storage object. operationId: GetStorage responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/StorageObject" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: collection description: The collection which stores the object. in: path required: true schema: type: string - name: key description: The key of the object within the collection. in: path required: true schema: type: string - name: user_id description: The user owner of the object. in: path required: true schema: type: string tags: - Console delete: summary: Delete a storage object. operationId: DeleteStorageObject responses: "200": description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: collection description: Collection. in: path required: true schema: type: string - name: key description: Key. in: path required: true schema: type: string - name: user_id description: Owner user ID. in: path required: true schema: type: string - name: version description: Version for OCC. in: query required: false schema: type: string tags: - Console put: summary: Write a new storage object or replace an existing one. operationId: WriteStorageObject responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/StorageObjectAck" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: collection description: Collection. in: path required: true schema: type: string - name: key description: Key. in: path required: true schema: type: string - name: user_id description: Owner user ID. in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/Console.WriteStorageObjectBody" required: true tags: - Console "/v2/console/storage/{collection}/{key}/{user_id}/{version}": delete: summary: Delete a storage object. operationId: DeleteStorageObject2 responses: "200": description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: collection description: Collection. in: path required: true schema: type: string - name: key description: Key. in: path required: true schema: type: string - name: user_id description: Owner user ID. in: path required: true schema: type: string - name: version description: Version for OCC. in: path required: true schema: type: string tags: - Console /v2/console/subscription: get: summary: List validated subscriptions operationId: ListSubscriptions responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/SubscriptionList" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: user_id description: UserID to filter subscriptions for in: query required: false schema: type: string - name: limit description: Max number of results per page in: query required: false schema: type: integer format: int64 - name: cursor description: Cursor to retrieve a page of records from in: query required: false schema: type: string - name: after description: Optional timestamp threshold to list subscriptions after. in: query required: false schema: type: string format: date-time - name: before description: Optional timestamp threshold to list subscriptions before. in: query required: false schema: type: string format: date-time - name: filter description: Filter to use when searching for specific subscriptions. in: query required: false schema: type: string tags: - Console /v2/console/user: get: summary: List (and optionally filter) users. operationId: ListUsers responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/UserList" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" tags: - Console delete: summary: Delete console user. operationId: DeleteUser responses: "200": description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: username description: The unique username of the user account. in: query required: false schema: type: string tags: - Console post: summary: Add a new console user. operationId: AddUser responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/AddUserResponse" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" requestBody: content: application/json: schema: $ref: "#/components/schemas/AddUserRequest" required: true tags: - Console "/v2/console/user/{username}": get: operationId: GetUser responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/console.User" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: username description: The unique username of the user account. in: path required: true schema: type: string tags: - Console put: summary: Update a console user. operationId: UpdateUser responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/console.User" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: username description: User username. in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/UpdateUserBody" required: true tags: - Console "/v2/console/user/{username}/mfa/require": post: summary: Sets the user's MFA as required or not required. operationId: RequireUserMfa responses: "200": description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: username description: User username. in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/RequireUserMfaBody" required: true tags: - Console "/v2/console/user/{username}/mfa/reset": post: summary: Reset a user's multi-factor authentication credentials. operationId: ResetUserMfa responses: "200": description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: username description: User username. in: path required: true schema: type: string tags: - Console "/v2/console/user/{username}/reset/password": post: summary: Reset a user's password. operationId: ResetUserPassword responses: "200": description: A successful response. content: application/json: schema: $ref: "#/components/schemas/ResetUserResponse" default: description: An unexpected error response. content: application/json: schema: $ref: "#/components/schemas/rpc.Status" parameters: - name: username description: The unique username of the user account. in: path required: true schema: type: string tags: - Console security: - BearerJwt: [] externalDocs: description: Nakama server console documentation url: https://heroiclabs.com/docs servers: - url: http://127.0.0.1:7351 components: securitySchemes: BasicAuth: type: http scheme: basic BearerJwt: type: apiKey name: Authorization in: header schemas: AccountDevice: type: object properties: id: type: string description: A device identifier. Should be obtained by a platform-specific device API. vars: type: object additionalProperties: type: string description: Extra information that will be bundled in the session token. description: Send a device to the server. Used with authenticate/link/unlink and user. AccountExport: type: object properties: account: $ref: "#/components/schemas/api.Account" objects: type: array items: $ref: "#/components/schemas/StorageObject" description: The user's storage. friends: type: array items: $ref: "#/components/schemas/Friend" description: The user's friends. groups: type: array items: $ref: "#/components/schemas/Group" description: The user's groups. messages: type: array items: $ref: "#/components/schemas/ChannelMessage" description: The user's chat messages. leaderboard_records: type: array items: $ref: "#/components/schemas/LeaderboardRecord" description: The user's leaderboard records. notifications: type: array items: $ref: "#/components/schemas/api.Notification" description: The user's notifications. wallet_ledgers: type: array items: $ref: "#/components/schemas/WalletLedger" description: The user's wallet ledger items. description: An export of all information stored for a user account. AccountImport: type: object properties: id: type: string description: The user ID to overwrite data for, or blank if the account should be freshly created. data: $ref: "#/components/schemas/AccountExport" description: Request to import user account data. AccountList: type: object properties: users: type: array items: $ref: "#/components/schemas/api.User" description: A list of users. total_count: type: integer format: int32 description: Approximate total number of users. next_cursor: type: string description: Next cursor. description: A list of users. AccountNote: type: object properties: id: type: string description: Identifier of the note. user_id: type: string description: Owner of this note. note: type: string description: The content of the note. create_time: type: string format: date-time description: Timestamp of note creation. update_time: type: string format: date-time description: Timestamp of note update. create_id: type: string description: Console user identifier that created this note. create_username: type: string description: Console username that created this note. update_id: type: string description: Console user identifier that last updated this note. update_username: type: string description: Console username that last updated this note. description: A user note. AclResources: type: string enum: - ACCOUNT - ACCOUNT_WALLET - ACCOUNT_EXPORT - ACCOUNT_FRIENDS - ACCOUNT_GROUPS - ACCOUNT_NOTES - ACL_TEMPLATE - ALL_ACCOUNTS - ALL_DATA - ALL_STORAGE - API_EXPLORER - AUDIT_LOG - CONFIGURATION - CHANNEL_MESSAGE - USER - GROUP - IN_APP_PURCHASE - LEADERBOARD - LEADERBOARD_RECORD - MATCH - NOTIFICATION - SATORI_MESSAGE - SETTINGS - STORAGE_DATA - STORAGE_DATA_IMPORT - HIRO_INVENTORY - HIRO_PROGRESSION - HIRO_ECONOMY - HIRO_STATS - HIRO_ENERGY default: ACCOUNT description: |- ATTENTION: Do not modify the order of this enum. New resources should always be appended. AclTemplate: type: object properties: id: type: string description: The identifier of the ACL template. name: type: string description: The name of the ACL template. description: type: string description: The ACL template description. acl: type: object additionalProperties: $ref: "#/components/schemas/Permissions" description: The ACL template permissions. create_time: type: string format: date-time description: The template Create time. update_time: type: string format: date-time description: The template Update time. AclTemplateList: type: object properties: templates: type: array items: $ref: "#/components/schemas/AclTemplate" description: A list of ACL templates. AddAccountNoteBody: type: object properties: id: type: string description: Identifier of the note. Empty to update existing note. note: type: string description: The content of the note. description: Add a new note for the user. AddAclTemplateRequest: type: object properties: name: type: string description: The name of the ACL template. description: type: string description: The ACL template description. acl: type: object additionalProperties: $ref: "#/components/schemas/Permissions" description: The ACL template permissions. description: Add a new ACL template. AddGroupUsersBody: type: object properties: ids: type: string description: Users to add/join. join_request: type: boolean description: Whether it is a join request. description: Add/join users to a group. AddUserRequest: type: object properties: username: type: string description: The username of the user. email: type: string description: Email address of the user. acl: type: object additionalProperties: $ref: "#/components/schemas/Permissions" description: ACL. mfa_required: type: boolean title: Require MFA newsletter_subscription: type: boolean title: Subscribe to newsletters title: Add a new console user AddUserResponse: type: object properties: user: $ref: "#/components/schemas/console.User" token: type: string title: A one-time token required to update the user for the first time description: Response to create/invite a new user. Any: type: object properties: "@type": type: string additionalProperties: {} ApiEndpointDescriptor: type: object properties: method: type: string body_template: type: string title: API Explorer List of Endpoints response message ApiEndpointList: type: object properties: endpoints: type: array items: $ref: "#/components/schemas/ApiEndpointDescriptor" rpc_endpoints: type: array items: $ref: "#/components/schemas/ApiEndpointDescriptor" title: API Explorer List of Endpoints AuditLog: type: object properties: id: type: string description: Id of the entry. timestamp: type: string format: date-time description: The time the action occurred. user_id: type: string description: The console user id that performed the action. username: type: string description: The console user username that performed the action. email: type: string description: The console user email that performed the action. resource: $ref: "#/components/schemas/AclResources" action: $ref: "#/components/schemas/AuditLogAction" message: type: string description: Log message. metadata: type: string description: Additional details about the action. AuditLogAction: type: string enum: - UNKNOWN - CREATE - UPDATE - DELETE - INVOKE - IMPORT - EXPORT default: UNKNOWN AuditLogList: type: object properties: entries: type: array items: $ref: "#/components/schemas/AuditLog" description: A list of audit log entries. next_cursor: type: string description: Cursor to fetch next page of results. prev_cursor: type: string description: Cursor to fetch prev page of results. description: Audit log entries. AuditLogUsersList: type: object properties: usernames: type: array items: type: string description: List of users that can be filtered in the audit logs. AuthenticateLogoutRequest: type: object properties: token: type: string description: Session token to log out. description: Log out a session and invalidate a session token. AuthenticateMFASetupRequest: type: object properties: mfa: type: string description: MFA token. code: type: string description: MFA code. description: Request to change MFA. AuthenticateMFASetupResponse: type: object properties: recovery_codes: type: array items: type: string title: An one-time code to configure the MFA mechanism description: Response to change MFA. AuthenticatePasswordChangeRequest: type: object properties: code: type: string description: Code. password: type: string description: New password. description: Request to change a password. AuthenticateRequest: type: object properties: username: type: string description: The username of the user. password: type: string description: The password of the user. mfa: type: string description: Multi-factor authentication code. description: Authenticate a console user with username and password. CallApiEndpointBody: type: object properties: body: type: string user_id: type: string session_vars: type: object additionalProperties: type: string title: API Explorer request definition for CallApiEndpoint CallApiEndpointResponse: type: object properties: body: type: string error_message: type: string title: API Explorer response definition for CallApiEndpoint CallRpcEndpointBody: type: object properties: body: type: string user_id: type: string session_vars: type: object additionalProperties: type: string title: API Explorer request definition for CallApiEndpoint Category.View: type: object properties: id: type: string description: Identifier. name: type: string description: Name. color: type: string description: Color hex for the label. description: A summary of a Category. ChannelMessage: type: object properties: channel_id: type: string description: The channel this message belongs to. message_id: type: string description: The unique ID of this message. code: type: integer format: int32 description: The code representing a message type or category. sender_id: type: string description: Message sender, usually a user ID. username: type: string description: The username of the message sender, if any. content: type: string description: The content payload. create_time: type: string format: date-time description: The UNIX time (for gRPC clients) or ISO string (for REST clients) when the message was created. update_time: type: string format: date-time description: The UNIX time (for gRPC clients) or ISO string (for REST clients) when the message was last updated. persistent: type: boolean description: True if the message was persisted to the channel's history, false otherwise. room_name: type: string description: The name of the chat room, or an empty string if this message was not sent through a chat room. group_id: type: string description: The ID of the group, or an empty string if this message was not sent through a group channel. user_id_one: type: string description: The ID of the first DM user, or an empty string if this message was not sent through a DM chat. user_id_two: type: string description: The ID of the second DM user, or an empty string if this message was not sent through a DM chat. description: A message sent on a channel. ChannelMessageList: type: object properties: messages: type: array items: $ref: "#/components/schemas/ChannelMessage" description: A list of messages. next_cursor: type: string description: The cursor to send when retrieving the next page, if any. prev_cursor: type: string description: The cursor to send when retrieving the previous page, if any. cacheable_cursor: type: string description: Cacheable cursor to list newer messages. Durable and designed to be stored, unlike next/prev cursors. description: A list of channel messages, usually a result of a list operation. Config: type: object properties: config: type: string description: JSON-encoded active server configuration. warnings: type: array items: $ref: "#/components/schemas/Warning" description: Any warnings about the current config. server_version: type: string title: Server version description: The current server configuration and any associated warnings. Console.WriteStorageObjectBody: type: object properties: value: type: string description: Value. version: type: string description: Version for OCC. permission_read: type: integer format: int32 description: Read permission value. permission_write: type: integer format: int32 description: Write permission value. description: Write a new storage object or update an existing one. ConsoleSession: type: object properties: token: type: string description: A session token (JWT) for the console user. mfa_code: type: string description: MFA code required to setup the MFA mechanism. description: A console user session. DeleteChannelMessagesResponse: type: object properties: total: type: string format: int64 description: Total number of messages deleted. DeliveryResult: type: object properties: recipient_id: type: string description: The identity ID of the recipient. integration_results: type: array items: $ref: "#/components/schemas/IntegrationResult" description: Results for each valid integration used in the delivery. description: Details of each delivery attempt. Extensions: type: object properties: hiro: type: boolean description: Is Hiro registered. hiro_systems: $ref: "#/components/schemas/HiroSystems" satori: type: boolean description: Is Satori registered. description: Which Console extensions are registered and available. Friend: type: object properties: user: $ref: "#/components/schemas/api.User" state: type: integer format: int32 description: |- The friend status. one of "Friend.State". update_time: type: string format: date-time description: Time of the latest relationship update. metadata: type: string description: Metadata. description: A friend of a user. FriendList: type: object properties: friends: type: array items: $ref: "#/components/schemas/Friend" description: The Friend objects. cursor: type: string description: Cursor for the next page of results, if any. description: A collection of zero or more friends of the user. Group: type: object properties: id: type: string description: The id of a group. creator_id: type: string description: The id of the user who created the group. name: type: string description: The unique name of the group. description: type: string description: A description for the group. lang_tag: type: string description: The language expected to be a tag which follows the BCP-47 spec. metadata: type: string description: Additional information stored as a JSON object. avatar_url: type: string description: A URL for an avatar image. open: type: boolean description: Anyone can join open groups, otherwise only admins can accept members. edge_count: type: integer format: int32 description: The current count of all members in the group. max_count: type: integer format: int32 description: The maximum number of members allowed. create_time: type: string format: date-time description: The UNIX time (for gRPC clients) or ISO string (for REST clients) when the group was created. update_time: type: string format: date-time description: The UNIX time (for gRPC clients) or ISO string (for REST clients) when the group was last updated. description: A group in the server. GroupExport: type: object properties: group: $ref: "#/components/schemas/Group" members: type: array items: $ref: "#/components/schemas/GroupUser" description: The group's list of members. description: An export of all information stored for a group. GroupUser: type: object properties: user: $ref: "#/components/schemas/api.User" state: type: integer format: int32 description: Their relationship to the group. description: A single user-role pair. GroupUserList: type: object properties: group_users: type: array items: $ref: "#/components/schemas/GroupUser" description: User-role pairs for a group. cursor: type: string description: Cursor for the next page of results, if any. description: A list of users belonging to a group, along with their role. HiroSystems: type: object properties: economy_system: type: boolean description: Is Economy system registered. inventory_system: type: boolean description: Is Inventory system registered. progression_system: type: boolean description: Is Progression system registered. stats_system: type: boolean description: Is Stats system registered. energy_system: type: boolean description: Is Energy system registered. description: Hiro available systems. ImportAccountBody: type: object properties: data: $ref: "#/components/schemas/AccountExport" description: Request to import user account data. IntegrationResult: type: object properties: integration_type: $ref: "#/components/schemas/MessageIntegrationType" success: type: boolean description: Whether the message was successfully delivered using this integration. error_message: type: string description: An error message, if the delivery failed. channel_type: $ref: "#/components/schemas/MessageChannelType" description: The outcome of using a specific integration. LeaderboardRecord: type: object properties: leaderboard_id: type: string description: The ID of the leaderboard this score belongs to. owner_id: type: string description: The ID of the score owner, usually a user or group. username: type: string description: The username of the score owner, if the owner is a user. score: type: string format: int64 description: The score value. subscore: type: string format: int64 description: An optional subscore value. num_score: type: integer format: int32 description: The number of submissions to this score record. metadata: type: string description: Metadata. create_time: type: string format: date-time description: The UNIX time (for gRPC clients) or ISO string (for REST clients) when the leaderboard record was created. update_time: type: string format: date-time description: The UNIX time (for gRPC clients) or ISO string (for REST clients) when the leaderboard record was updated. expiry_time: type: string format: date-time description: The UNIX time (for gRPC clients) or ISO string (for REST clients) when the leaderboard record expires. rank: type: string format: int64 description: The rank of this record. max_num_score: type: integer format: int64 description: The maximum number of score updates allowed by the owner. description: Represents a complete leaderboard record with all scores and associated metadata. LeaderboardRecordList: type: object properties: records: type: array items: $ref: "#/components/schemas/LeaderboardRecord" description: A list of leaderboard records. owner_records: type: array items: $ref: "#/components/schemas/LeaderboardRecord" description: A batched set of leaderboard records belonging to specified owners. next_cursor: type: string description: The cursor to send when retrieving the next page, if any. prev_cursor: type: string description: The cursor to send when retrieving the previous page, if any. rank_count: type: string format: int64 description: The total number of ranks available. description: A set of leaderboard records, may be part of a leaderboard records page or a batch of individual records. ListAccountNotesResponse: type: object properties: notes: type: array items: $ref: "#/components/schemas/AccountNote" description: The list of notes. cursor: type: string description: Cursor for retrieving the next page, if any. description: Response to list user notes. ListChannelMessagesRequest.Type: type: string enum: - UNKNOWN - ROOM - GROUP - DIRECT default: UNKNOWN ListResponse: type: object properties: templates: type: array items: $ref: "#/components/schemas/Template.View" description: A list of templates. page_options: $ref: "#/components/schemas/PageOptions" description: A list of templates. MatchList.Match: type: object properties: api_match: $ref: "#/components/schemas/api.Match" node: type: string title: The node name MatchState: type: object properties: presences: type: array items: $ref: "#/components/schemas/UserPresence" description: Presence list. tick: type: string format: int64 description: Current tick number. state: type: string description: State. title: Match state MessageChannelType: type: string enum: - DEFAULT - PUSH - EMAIL default: DEFAULT description: |- Message channel types. - PUSH: Push notification. - EMAIL: Email. MessageChannels: type: object properties: channels: type: array items: $ref: "#/components/schemas/MessageChannelType" MessageIntegrationType: type: string enum: - UNKNOWN_MESSAGE_TYPE - FCM - APNS - FACEBOOK_NOTIFICATION - ONESIGNAL_NOTIFICATION - WEBHOOK_NOTIFICATION default: UNKNOWN_MESSAGE_TYPE description: >- Message integration's names. - FCM: The variant for Google's Firebase Cloud Messaging. - APNS: The variant for Apple's Message system. - FACEBOOK_NOTIFICATION: The variant for Facebook App-to-User Notifications. - ONESIGNAL_NOTIFICATION: The variant for OneSignal Notifications. - WEBHOOK_NOTIFICATION: The variant for Webhook Notifications. ModuleInfo: type: object properties: path: type: string title: Module path mod_time: type: string format: date-time title: Module last modified date title: Module information MultiTextValueFilterOption: type: object properties: or: type: array items: type: string description: Filter by elements matching one of the parameters. and: type: array items: type: string description: Filter by elements matching all parameters. description: >- The MultiTextValueFilterOption specifies the operation to apply to multi-value text fields. Only a single operation can be used at one time. NullValue: type: string enum: - NULL_VALUE default: NULL_VALUE description: >- `NullValue` is a singleton enumeration to represent the null value for the `Value` type union. The JSON representation for `NullValue` is JSON `null`. - NULL_VALUE: Null value. PageOptions: type: object properties: prev_cursor: type: string description: Cursor, if there are prev pages. next_cursor: type: string description: Cursor, if there are next pages. PaginationOptions: type: object properties: limit: type: integer format: int32 description: Limit of results to return. cursor: type: string description: Cursor to the next page. Permissions: type: object properties: read: type: boolean description: Read a resource. write: type: boolean description: Create and/or modify a resource. delete: type: boolean description: Delete a resource. description: The possible actions that can done over a resource. PurchaseList: type: object properties: validated_purchases: type: array items: $ref: "#/components/schemas/ValidatedPurchase" description: Stored validated purchases. cursor: type: string description: The cursor to send when retrieving the next page, if any. prev_cursor: type: string description: The cursor to send when retrieving the previous page, if any. description: A list of validated purchases stored by Nakama. RequireUserMfaBody: type: object properties: required: type: boolean description: Required. description: Make a user's mfa required or not. ResetUserResponse: type: object properties: code: type: string description: An one-time code to be used when re-configuring the password. description: Request to reset a user's credentials, password or MFA. RuntimeInfo: type: object properties: lua_rpc_functions: type: array items: type: string title: Lua registered RPC functions go_rpc_functions: type: array items: type: string title: Go registered RPC functions js_rpc_functions: type: array items: type: string title: JavaScript registered RPC functions go_modules: type: array items: $ref: "#/components/schemas/ModuleInfo" title: Go loaded modules lua_modules: type: array items: $ref: "#/components/schemas/ModuleInfo" title: Lua loaded modules js_modules: type: array items: $ref: "#/components/schemas/ModuleInfo" title: JavaScript loaded modules title: Runtime information SearchOptions: type: object properties: name: $ref: "#/components/schemas/SingleTextValueFilterOption" label_name: $ref: "#/components/schemas/MultiTextValueFilterOption" SendDirectMessageRequest: type: object properties: template_id: type: string description: The identifier of the template used to render the message content. identity_ids: type: array items: type: string description: A list of recipient identity IDs. integrations: type: array items: $ref: "#/components/schemas/MessageIntegrationType" description: A list of integrations to use for sending the message. persist: type: boolean description: Whether the message should be stored in the recipient's inbox. channels: type: object additionalProperties: $ref: "#/components/schemas/MessageChannels" description: If applicable, channels to send this message through, per integration. template_override: $ref: "#/components/schemas/TemplateOverride" description: The request to send direct messages. SendDirectMessageResponse: type: object properties: delivery_results: type: array items: $ref: "#/components/schemas/DeliveryResult" description: Results for each attempted message delivery. description: The response for the SendDirectMessageRequest. SendNotificationRequest: type: object properties: user_ids: type: array items: type: string description: One or more users to send the notification to, or empty to send to all users. subject: type: string description: Subject for the notification. content: type: object description: Arbitrary content. code: type: integer format: int32 description: Code. persistent: type: boolean description: Persistent flag. sender_id: type: string description: Sender identifier. description: Request to send a notification. Setting: type: object properties: name: type: string description: Name identifier. value: type: string description: Setting value. update_time_sec: type: string format: int64 description: Update time. description: A single setting. SettingList: type: object properties: settings: type: array items: $ref: "#/components/schemas/Setting" description: A list of settings. acl_resources: type: array items: $ref: "#/components/schemas/AclResources" description: This field is only used to allow the swagger generator to output the enum values. description: A list of settings. SingleTextValueFilterOption: type: object properties: or: type: array items: type: string description: Filter by elements matching one of the parameters. exact: type: string description: Filter by elements matching exactly the value. like: type: string description: Filter by elements matching the pattern. description: >- The SingleTextValueFilterOption specifies the operation to apply to single value text fields. Only a single operation can be used at one time. StatusHealth: type: string enum: - STATUS_HEALTH_OK - STATUS_HEALTH_ERROR - STATUS_HEALTH_CONNECTING - STATUS_HEALTH_DISCONNECTING default: STATUS_HEALTH_OK StatusList: type: object properties: nodes: type: array items: $ref: "#/components/schemas/StatusList.Status" description: List of nodes and their stats. timestamp: type: string format: date-time title: Timestamp description: List of nodes and their stats. StatusList.Status: type: object properties: name: type: string description: Node name. health: $ref: "#/components/schemas/StatusHealth" session_count: type: integer format: int32 description: Currently connected sessions. presence_count: type: integer format: int32 description: Currently registered live presences. match_count: type: integer format: int32 description: Current number of active authoritative matches. goroutine_count: type: integer format: int32 description: Current number of running goroutines. avg_latency_ms: type: number format: double description: Average response latency in milliseconds. avg_rate_sec: type: number format: double description: Average number of requests per second. avg_input_kbs: type: number format: double description: Average input bandwidth usage. avg_output_kbs: type: number format: double description: Average output bandwidth usage. party_count: type: integer format: int32 description: Current number of active parties. create_time: type: string format: date-time description: Time when the node was created and started up. description: The status of a Nakama node. StorageCollectionsList: type: object properties: collections: type: array items: type: string title: Available collection names in the whole of the storage StorageList: type: object properties: objects: type: array items: $ref: "#/components/schemas/StorageListObject" description: List of storage objects matching list/filter operation. total_count: type: integer format: int32 description: Approximate total number of storage objects. next_cursor: type: string title: Next page cursor if any description: List of storage objects. StorageListObject: type: object properties: collection: type: string description: The collection which stores the object. key: type: string description: The key of the object within the collection. user_id: type: string description: The user owner of the object. version: type: string description: The version hash of the object. permission_read: type: integer format: int32 description: The read access permissions for the object. permission_write: type: integer format: int32 description: The write access permissions for the object. create_time: type: string format: date-time description: The UNIX time (for gRPC clients) or ISO string (for REST clients) when the object was created. update_time: type: string format: date-time description: The UNIX time (for gRPC clients) or ISO string (for REST clients) when the object was last updated. description: An object within the storage engine. StorageObject: type: object properties: collection: type: string description: The collection which stores the object. key: type: string description: The key of the object within the collection. user_id: type: string description: The user owner of the object. value: type: string description: The value of the object. version: type: string description: The version hash of the object. permission_read: type: integer format: int32 description: The read access permissions for the object. permission_write: type: integer format: int32 description: The write access permissions for the object. create_time: type: string format: date-time description: The UNIX time (for gRPC clients) or ISO string (for REST clients) when the object was created. update_time: type: string format: date-time description: The UNIX time (for gRPC clients) or ISO string (for REST clients) when the object was last updated. description: An object within the storage engine. StorageObjectAck: type: object properties: collection: type: string description: The collection which stores the object. key: type: string description: The key of the object within the collection. version: type: string description: The version hash of the object. user_id: type: string description: The owner of the object. create_time: type: string format: date-time description: The UNIX time (for gRPC clients) or ISO string (for REST clients) when the object was created. update_time: type: string format: date-time description: The UNIX time (for gRPC clients) or ISO string (for REST clients) when the object was last updated. description: A storage acknowledgement. StoreEnvironment: type: string enum: - UNKNOWN - SANDBOX - PRODUCTION default: UNKNOWN description: |- - UNKNOWN: Unknown environment. - SANDBOX: Sandbox/test environment. - PRODUCTION: Production environment. title: Environment where a purchase/subscription took place, StoreProvider: type: string enum: - APPLE_APP_STORE - GOOGLE_PLAY_STORE - HUAWEI_APP_GALLERY - FACEBOOK_INSTANT_STORE default: APPLE_APP_STORE description: |- - APPLE_APP_STORE: Apple App Store - GOOGLE_PLAY_STORE: Google Play Store - HUAWEI_APP_GALLERY: Huawei App Gallery - FACEBOOK_INSTANT_STORE: Facebook Instant Store title: Validation Provider, SubscriptionList: type: object properties: validated_subscriptions: type: array items: $ref: "#/components/schemas/ValidatedSubscription" description: Stored validated subscriptions. cursor: type: string description: The cursor to send when retrieving the next page, if any. prev_cursor: type: string description: The cursor to send when retrieving the previous page, if any. description: A list of validated subscriptions stored by Nakama. Template.View: type: object properties: id: type: string description: The identifier. name: type: string description: The display name. create_time_sec: type: string format: int64 description: Create time. update_time_sec: type: string format: int64 description: Update time. value: type: string description: The template value to generate the message's content. title: type: string description: The title to generate the message's title. image_url: type: string description: The image_url for the message. value_type: type: string title: The value_type for the message's content json_metadata: type: string title: The json_metadata for the message categories: type: array items: $ref: "#/components/schemas/Category.View" description: Category label identifiers. description: A template view. TemplateOverride: type: object properties: title: type: string description: The title to generate the message's title. value: type: string description: The template value to generate the message's content. image_url: type: string description: The image_url for the message. json_metadata: type: string title: The json_metadata for the message variants: type: object additionalProperties: $ref: "#/components/schemas/TemplateOverride" description: Language-specific template overrides. The key is the language code. description: An template override. UnlinkDeviceBody: type: object properties: device_id: type: string description: Device ID to unlink. description: Unlink a particular device ID from a user's account. UpdateAccountBody: type: object properties: username: type: string description: Username. display_name: type: string description: Display name. metadata: type: string description: Metadata. avatar_url: type: string description: Avatar URL. lang_tag: type: string description: Langtag. location: type: string description: Location. timezone: type: string description: Timezone. custom_id: type: string description: Custom ID. email: type: string description: Email. password: type: string description: Password. device_ids: type: object additionalProperties: type: string description: Device ID modifications. wallet: type: string description: Wallet. description: Update user account information. UpdateAclTemplateBody: type: object properties: name: type: string description: The name of the ACL template. description: type: string description: The ACL template description. acl: type: object additionalProperties: $ref: "#/components/schemas/Permissions" description: The ACL template permissions. UpdateGroupBody: type: object properties: name: type: string description: Name. description: type: string description: Description. lang_tag: type: string description: Langtag. metadata: type: string description: Metadata. avatar_url: type: string description: Avatar URL. open: type: boolean description: Anyone can join open groups, otherwise only admins can accept members. max_count: type: integer format: int32 description: The maximum number of members allowed. description: Update group information. UpdateSettingBody: type: object properties: value: type: string description: Setting value. description: Request to update an existing setting. UpdateUserBody: type: object properties: acl: type: object additionalProperties: $ref: "#/components/schemas/Permissions" description: ACL. description: Request to update an existing user. UserGroup: type: object properties: group: $ref: "#/components/schemas/Group" state: type: integer format: int32 description: The user's relationship to the group. description: A single group-role pair. UserGroupList: type: object properties: user_groups: type: array items: $ref: "#/components/schemas/UserGroup" description: Group-role pairs for a user. cursor: type: string description: Cursor for the next page of results, if any. description: A list of groups belonging to a user, along with the user's role in each group. UserList: type: object properties: users: type: array items: $ref: "#/components/schemas/console.User" description: A list of users. description: A list of console users. UserPresence: type: object properties: user_id: type: string description: The user this presence belongs to. session_id: type: string description: A unique session ID identifying the particular connection, because the user may have many. username: type: string description: The username for display purposes. persistence: type: boolean description: Whether this presence generates persistent data/messages, if applicable for the stream type. status: type: string description: A user-set status message for this stream, if applicable. description: A user session associated to a stream, usually through a list operation or a join/leave event. ValidatedPurchase: type: object properties: user_id: type: string description: Purchase User ID. product_id: type: string description: Purchase Product ID. transaction_id: type: string description: Purchase Transaction ID. store: $ref: "#/components/schemas/StoreProvider" purchase_time: type: string format: date-time description: Timestamp when the purchase was done. create_time: type: string format: date-time description: Timestamp when the receipt validation was stored in DB. update_time: type: string format: date-time description: Timestamp when the receipt validation was updated in DB. refund_time: type: string format: date-time title: Timestamp when the purchase was refunded. Set to UNIX provider_response: type: string description: Raw provider validation response. environment: $ref: "#/components/schemas/StoreEnvironment" seen_before: type: boolean description: Whether the purchase had already been validated by Nakama before. description: Validated Purchase stored by Nakama. ValidatedSubscription: type: object properties: user_id: type: string description: Subscription User ID. product_id: type: string description: Purchase Product ID. original_transaction_id: type: string description: Purchase Original transaction ID (we only keep track of the original subscription, not subsequent renewals). store: $ref: "#/components/schemas/StoreProvider" purchase_time: type: string format: date-time description: UNIX Timestamp when the purchase was done. create_time: type: string format: date-time description: UNIX Timestamp when the receipt validation was stored in DB. update_time: type: string format: date-time description: UNIX Timestamp when the receipt validation was updated in DB. environment: $ref: "#/components/schemas/StoreEnvironment" expiry_time: type: string format: date-time description: Subscription expiration time. The subscription can still be auto-renewed to extend the expiration time further. refund_time: type: string format: date-time description: Subscription refund time. If this time is set, the subscription was refunded. provider_response: type: string description: Raw provider validation response body. provider_notification: type: string description: Raw provider notification body. active: type: boolean description: Whether the subscription is currently active or not. WalletLedger: type: object properties: id: type: string description: The identifier of this wallet change. user_id: type: string description: The user ID this wallet ledger item belongs to. changeset: type: string description: The changeset. metadata: type: string description: Any associated metadata. create_time: type: string format: date-time description: The UNIX time when the wallet ledger item was created. update_time: type: string format: date-time description: The UNIX time when the wallet ledger item was updated. description: An individual update to a user's wallet. WalletLedgerList: type: object properties: items: type: array items: $ref: "#/components/schemas/WalletLedger" description: A list of wallet ledger items. next_cursor: type: string description: The cursor to send when retrieving the next older page, if any. prev_cursor: type: string description: The cursor to send when retrieving the previous page newer, if any. description: List of wallet ledger items for a particular user. Warning: type: object properties: field: type: string description: The config field this warning is for in a JSON pointer format. message: type: string description: Warning message text. description: A warning for a configuration field. api.Account: type: object properties: user: $ref: "#/components/schemas/api.User" wallet: type: string description: The user's wallet data. email: type: string description: The email address of the user. devices: type: array items: $ref: "#/components/schemas/AccountDevice" description: The devices which belong to the user's account. custom_id: type: string description: The custom id in the user's account. verify_time: type: string format: date-time description: The UNIX time (for gRPC clients) or ISO string (for REST clients) when the user's email was verified. disable_time: type: string format: date-time description: The UNIX time (for gRPC clients) or ISO string (for REST clients) when the user's account was disabled/banned. description: A user with additional account details. Always the current user. api.Match: type: object properties: match_id: type: string description: The ID of the match, can be used to join. authoritative: type: boolean description: True if it's an server-managed authoritative match, false otherwise. label: type: string description: Match label, if any. size: type: integer format: int32 description: Current number of users in the match. tick_rate: type: integer format: int32 title: Tick Rate handler_name: type: string title: Handler name description: Represents a realtime match. api.Notification: type: object properties: id: type: string description: ID of the Notification. subject: type: string description: Subject of the notification. content: type: string description: Content of the notification in JSON. code: type: integer format: int32 description: Category code for this notification. sender_id: type: string description: ID of the sender, if a user. Otherwise 'null'. create_time: type: string format: date-time description: The UNIX time (for gRPC clients) or ISO string (for REST clients) when the notification was created. persistent: type: boolean description: True if this notification was persisted to the database. description: A notification in the server. api.User: type: object properties: id: type: string description: The id of the user's account. username: type: string description: The username of the user's account. display_name: type: string description: The display name of the user. avatar_url: type: string description: A URL for an avatar image. lang_tag: type: string description: The language expected to be a tag which follows the BCP-47 spec. location: type: string description: The location set by the user. timezone: type: string description: The timezone set by the user. metadata: type: string description: Additional information stored as a JSON object. facebook_id: type: string description: The Facebook id in the user's account. google_id: type: string description: The Google id in the user's account. gamecenter_id: type: string description: The Apple Game Center in of the user's account. steam_id: type: string description: The Steam id in the user's account. online: type: boolean description: Indicates whether the user is currently online. edge_count: type: integer format: int32 description: Number of related edges to this user. create_time: type: string format: date-time description: The UNIX time (for gRPC clients) or ISO string (for REST clients) when the user was created. update_time: type: string format: date-time description: The UNIX time (for gRPC clients) or ISO string (for REST clients) when the user was last updated. facebook_instant_game_id: type: string description: The Facebook Instant Game ID in the user's account. apple_id: type: string description: The Apple Sign In ID in the user's account. description: A user in the server. console.Account: type: object properties: account: $ref: "#/components/schemas/api.Account" disable_time: type: string format: date-time description: The UNIX time when the account was disabled. description: Account information. console.GroupList: type: object properties: groups: type: array items: $ref: "#/components/schemas/Group" description: A list of groups. total_count: type: integer format: int32 description: Approximate total number of groups. next_cursor: type: string description: Next cursor. description: A list of groups. console.Leaderboard: type: object properties: id: type: string description: The ID of the leaderboard. title: type: string description: The title for the leaderboard. description: type: string description: The description of the leaderboard. May be blank. category: type: integer format: int64 description: The category of the leaderboard. e.g. "vip" could be category 1. sort_order: type: integer format: int64 description: ASC or DESC sort mode of scores in the leaderboard. size: type: integer format: int64 description: The current number of players in the leaderboard. max_size: type: integer format: int64 description: The maximum number of players for the leaderboard. max_num_score: type: integer format: int64 description: The maximum score updates allowed per player for the current leaderboard. operator: type: integer format: int64 title: The operator of the leaderboard end_active: type: integer format: int64 description: The UNIX time when the leaderboard stops being active until next reset. A computed value. reset_schedule: type: string description: Reset cron expression. metadata: type: string description: Additional information stored as a JSON object. create_time: type: string format: date-time description: The UNIX time when the leaderboard was created. start_time: type: string format: date-time description: The UNIX time when the leaderboard will start. end_time: type: string format: date-time description: The UNIX time when the leaderboard will be stopped. duration: type: integer format: int64 description: Duration of the tournament in seconds. start_active: type: integer format: int64 description: The UNIX time when the leaderboard start being active. A computed value. join_required: type: boolean description: Join required. authoritative: type: boolean description: Authoritative. tournament: type: boolean description: Tournament. prev_reset: type: integer format: int64 description: The UNIX time when the tournament was last reset. A computed value. next_reset: type: integer format: int64 description: The UNIX time when the tournament is next playable. A computed value. description: A leaderboard. console.LeaderboardList: type: object properties: leaderboards: type: array items: $ref: "#/components/schemas/console.Leaderboard" description: The list of leaderboards returned. total: type: integer format: int32 description: Total count of leaderboards and tournaments. cursor: type: string description: A cursor, if any. description: A list of leaderboards. console.MatchList: type: object properties: matches: type: array items: $ref: "#/components/schemas/MatchList.Match" description: A list of realtime matches, with their node names. console.Notification: type: object properties: id: type: string description: ID of the Notification. subject: type: string description: Subject of the notification. content: type: string description: Content of the notification in JSON. code: type: integer format: int32 description: Category code for this notification. sender_id: type: string description: ID of the sender, if a user. Otherwise 'null'. create_time: type: string format: date-time description: The UNIX time (for gRPC clients) or ISO string (for REST clients) when the notification was created. persistent: type: boolean description: True if this notification was persisted to the database. user_id: type: string description: User id. console.NotificationList: type: object properties: notifications: type: array items: $ref: "#/components/schemas/console.Notification" description: List of notifications. next_cursor: type: string description: Next page cursor if any. prev_cursor: type: string description: Previous page cursor if any. console.User: type: object properties: id: type: string description: User identifier. username: type: string title: Username of the user email: type: string title: Email of the user acl: type: object additionalProperties: $ref: "#/components/schemas/Permissions" description: ACL. mfa_required: type: boolean description: Whether the user is required to setup MFA. mfa_enabled: type: boolean description: Whether the user has MFA enabled. create_time: type: string format: date-time title: User's create time update_time: type: string format: date-time title: User's update time title: A console user rpc.Status: type: object properties: code: type: integer format: int32 message: type: string details: type: array items: $ref: "#/components/schemas/Any"