Equipment Service API (v1)

Download OpenAPI specification:

Operations for managing equipments.

Equipments

List Equipments

List Equipments owned by a user. Supports filtering by equipped status.

query Parameters
filter
any

CEL filter expression for querying equipment. Supported fields: is_equipped, item.slot, item.rarity, power, level. Example: is_equipped == true or item.rarity == LEGENDARY If omitted, returns all equipment for the caller.

orderBy
any

Field to sort results by. Format: field_name [asc|desc]. Example: power desc. Supported fields: power, level, item.rarity. Defaults to creation time descending if omitted.

page
any

Page number for pagination (1-indexed). Defaults to 1 if omitted or less than 1.

limit
any

Maximum number of equipment items to return per page. Range: [1, 100]. Defaults to 20 if omitted.

Responses

Create an Equipment

Creates a new Equipment for a user.

query Parameters
itemId
required
any

ID of the item template to create equipment from. Must reference an existing [Item][item.v1.messages.item.Item].

Responses

Update an Equipment

Updates an Equipment. Use field mask to specify updatable fields (e.g., is_equipped, level).

path Parameters
equipment.id
required
any

Unique identifier for this equipment instance. Format: UUID v4. Assigned by the system upon creation.

Responses

Delete an Equipment

Deletes an Equipment by its ID.

path Parameters
equipmentId
required
any

Unique identifier of the equipment to delete.

Responses

Get an Equipment

Retrieve Equipment details by its ID.

path Parameters
equipmentId
required
any

Unique identifier of the equipment to retrieve.

Responses

Stream Equipments

Streams equipment updates for a given user. Emits updates when equipment is equipped or unequipped in real-time.

query Parameters
userId
required
any

User ID to stream equipment updates for. Must match the caller's JWT user_id claim.

Responses

Items

List Items

Lists all available Items in the system.

query Parameters
filter
any

CEL filter expression for querying items. Supported fields: rarity, slot, is_default. Example: rarity == LEGENDARY or slot == TWO_HANDED If omitted, returns all items.

orderBy
any

Field to sort results by. Format: field_name [asc|desc]. Example: rarity desc. Supported fields: rarity, ingame_id, sell_price. Defaults to ingame_id asc if omitted.

page
any

Page number for pagination (1-indexed). Defaults to 1 if omitted or less than 1.

limit
any

Maximum number of items to return per page. Range: [1, 100]. Defaults to 20 if omitted.

Responses

Get an Item

Retrieves Item details by item ID.

path Parameters
itemId
required
any

Unique identifier of the item to retrieve.

Responses

Lobbies

List Lobbies

Lists all Lobbies.

query Parameters
filter
any

CEL filter expression for querying lobbies. Supported fields: state, game.game_type, average_item_power. Example: state == STATE_PREPARING If omitted, returns all lobbies.

orderBy
any

Field to sort results by. Format: field_name [asc|desc]. Supported fields: average_item_power. Defaults to creation time descending if omitted.

page
any

Page number for pagination (1-indexed). Defaults to 1 if omitted or less than 1.

limit
any

Maximum number of lobbies to return per page. Range: [1, 100]. Defaults to 20 if omitted.

Responses

Confirm game start

Confirms the start of a game in a Lobby.

path Parameters
gameId
required
any

Unique identifier of the game session. Provided to the game server during allocation.

Responses

Notify game end

Notifies the server about the end of a game in a Lobby.

path Parameters
gameId
required
any

Unique identifier of the game session that ended.

Responses

Update a Lobby

Updates an existing Lobby. Use field mask to specify updatable fields (e.g., owner_user_id).

path Parameters
lobby.id
required
any

Unique identifier for the lobby. Format: UUID v4. Assigned by the system upon creation.

Responses

Enter Lobby queue

Enters the matchmaking queue for a specific Lobby.

path Parameters
lobbyId
required
any

Unique identifier of the lobby entering the queue. The caller must be the owner of this lobby.

Responses

Exit Lobby queue

Exits the matchmaking queue for a specific Lobby.

path Parameters
lobbyId
required
any

Unique identifier of the lobby exiting the queue. The caller must be the owner of this lobby.

Responses

Kick a Player

Kicks a player from the Lobby. Only the lobby owner can kick players.

path Parameters
lobbyId
required
any

Unique identifier of the lobby.

Responses

Join a Lobby

Joins an existing Lobby using a lobby code.

Responses

Leave a Lobby

Leaves an existing Lobby.

Responses

Stream Lobby updates

Streams real-time updates for a specific Lobby.

query Parameters
lobbyId
required
any

Unique identifier of the lobby to stream updates for. The stream delivers updates only for this specific lobby.

Responses

LobbyInvites

List LobbyInvites

Lists all LobbyInvites.

query Parameters
filter
any

CEL filter expression for querying invitations. Supported fields: invite_sender_user_id, lobby_code. If omitted, returns all pending invitations for the caller.

orderBy
any

Field to sort results by. Format: field_name [asc|desc]. Example: create_time desc. Defaults to create_time desc if omitted.

page
any

Page number for pagination (1-indexed). Defaults to 1 if omitted or less than 1.

limit
any

Maximum number of invitations to return per page. Range: [1, 100]. Defaults to 20 if omitted.

Responses

Create a LobbyInvite

Creates a new LobbyInvite for a user.

Responses

Accept a LobbyInvite

Accepts an existing LobbyInvite using the invite code.

Responses

Decline a LobbyInvite

Declines a LobbyInvite.

Responses

Stream LobbyInvites

Streams lobby invite updates for a given user. Emits when a lobby invite is created or updated in real-time.

query Parameters
userId
required
any

User ID to stream invitation updates for. Must match the caller's JWT user_id claim. Receives updates when invitations are sent to or from this user.

Responses

Users

List Users

List Users with optional filters and pagination.

query Parameters
filter
any

CEL filter expression for querying users. Supported fields: name, is_online, average_item_power. Example: is_online == true && average_item_power > 50.0 If omitted, returns all users.

orderBy
any

Field to sort results by. Format: field_name [asc|desc]. Example: name desc. Supported fields: name, create_time, average_item_power. Defaults to create_time desc if omitted.

page
any

Page number for pagination (1-indexed). Defaults to 1 if omitted or less than 1.

limit
any

Maximum number of users to return per page. Range: [1, 100]. Defaults to 20 if omitted.

Responses

Create a User

Creates a new User in the system.

query Parameters
password
required
any

Password for the new account. Minimum 8 characters, must include at least one letter and one number. Stored as a bcrypt hash - never returned in responses.

validateOnly
any

If true, validates the request without creating the user. Useful for checking email availability before form submission. Returns the user that would be created but does not persist.

Responses

Update a User

Update the details of an existing User with update mask and validate-only option.

path Parameters
user.id
required
any

Unique identifier for the user. Format: UUID v4 (e.g., 550e8400-e29b-41d4-a716-446655440000). Assigned by the system upon creation.

query Parameters
validateOnly
any

If true, validates the update without applying changes. Returns the user as it would appear after the update.

Responses

Delete a User

Delete a specific User by their unique ID.

path Parameters
userId
required
any

Unique identifier of the user to delete. Must match the caller's JWT user_id claim.

Responses

Get a User

Retrieve the details of a specific User by their unique ID.

path Parameters
userId
required
any

Unique identifier of the user to retrieve. Format: UUID v4.

Responses

Ping

Simple ping to indicate that a User is online.

path Parameters
userId
required
any

Unique identifier of the user sending the ping. Must match the caller's JWT user_id claim.

Responses

Reset a User's password

Request a password reset for a specific User.

path Parameters
userId
required
any

Unique identifier of the user requesting password reset. Must match the caller's JWT user_id claim.

Responses

Authenticate a User

Authenticate a User by their credentials (e.g., email/password).

Responses

Stream User updates

Server-side streaming RPC for real-time User updates.

query Parameters
userId
any

Optional user ID to filter updates. If provided, only updates for this specific user are streamed. If omitted, updates for all users are streamed.

Responses