Skip to main content

Lobby Object

Represents a lobby within Discord. See Managing Lobbies for more information.
Lobby Structure
FieldTypeDescription
idsnowflakethe id of this channel
application_idsnowflakeapplication that created the lobby
metadata?dict<string, string>dictionary of string key/value pairs. The max total length is 1000.
membersarray of lobby member objectsmembers of the lobby
linked_channel?channel objectthe guild channel linked to the lobby

Lobby Member Object

Represents a member of a lobby, including optional metadata and flags.
Lobby Member Structure
FieldTypeDescription
idsnowflakethe id of the user
metadata??dict<string, string>dictionary of string key/value pairs. The max total length is 1000.
flags?integerlobby member flags combined as a bitfield
Lobby Member Flags
FlagValueDescription
CanLinkLobby1<<0user can link a text channel to a lobby
Example Lobby Object
{
  "id": "96008815106887111",
  "application_id": "41771983429993937",
  "metadata": {
    "topic": "we need more redstone",
  },
  "members": [
    {
      "id": "41771983429993000",
      "metadata": null,
      "flags": 1
    }
  ]
}

Create Lobby

POST/lobbies
Creates a new lobby, adding any of the specified members to it, if provided. Returns a lobby object.
Discord Social SDK clients will not be able to join or leave a lobby created using this API, such as Client::CreateOrJoinLobby. See Managing Lobbies for more information.

JSON Params

FieldTypeDescription
metadata??dict<string, string>optional dictionary of string key/value pairs. The max total length is 1000.
members?array of lobby member objectsoptional array of up to 25 users to be added to the lobby
idle_timeout_seconds?integerseconds to wait before shutting down a lobby after it becomes idle. Value can be between 5 and 604800 (7 days). See LobbyHandle for more details on this behavior.

Lobby Member JSON Params

FieldTypeDescription
idsnowflakeDiscord user id of the user to add to the lobby
metadata??dict<string, string>optional dictionary of string key/value pairs. The max total length is 1000.
flags?integerlobby member flags combined as a bitfield

Get Lobby

GET/lobbies/{lobby.id}
Returns a lobby object for the specified lobby id, if it exists.

Modify Lobby

PATCH/lobbies/{lobby.id}
Modifies the specified lobby with new values, if provided. Returns the updated lobby object.

JSON Params

FieldTypeDescription
metadata??dict<string, string>optional dictionary of string key/value pairs. The max total length is 1000. Overwrites any existing metadata.
members?array of lobby member objectsoptional array of up to 25 users to replace the lobby members with. If provided, lobby members not in this list will be removed from the lobby.
idle_timeout_seconds?integerseconds to wait before shutting down a lobby after it becomes idle. Value can be between 5 and 604800 (7 days). See LobbyHandle for more details on this behavior.

Delete Lobby

DELETE/lobbies/{lobby.id}
Deletes the specified lobby if it exists. It is safe to call even if the lobby is already deleted as well. Returns nothing.

Add a Member to a Lobby

PUT/lobbies/{lobby.id}/members/{user.id}
Adds the provided user to the specified lobby. If called when the user is already a member of the lobby will update fields such as metadata on that user instead. Returns the lobby member object.

JSON Params

FieldTypeDescription
metadata??dict<string, string>optional dictionary of string key/value pairs. The max total length is 1000.
flags?integerlobby member flags combined as a bitfield

Remove a Member from a Lobby

DELETE/lobbies/{lobby.id}/members/{user.id}
Removes the provided user from the specified lobby. It is safe to call this even if the user is no longer a member of the lobby, but will fail if the lobby does not exist. Returns nothing.

Leave Lobby

DELETE/lobbies/{lobby.id}/members/@me
Removes the current user from the specified lobby. It is safe to call this even if the user is no longer a member of the lobby, but will fail if the lobby does not exist. Uses Bearer token for authorization. Returns nothing.
PATCH/lobbies/{lobby.id}/channel-linking
Links an existing text channel to a lobby. See Linked Channels for more information. Uses Bearer token for authorization and user must be a lobby member with CanLinkLobby lobby member flag. Returns a lobby object with a linked channel.

JSON Params

FieldTypeDescription
channel_id?snowflakethe id of the channel to link to the lobby. If not provided, will unlink any currently linked channels from the lobby.
PATCH/lobbies/{lobby.id}/channel-linking
Unlinks any currently linked channels from the specified lobby. Send a request to this endpoint with an empty body to unlink any currently linked channels from the specified lobby. Uses Bearer token for authorization and user must be a lobby member with CanLinkLobby lobby member flag. Returns a lobby object without a linked channel.