DELETE
/
lobbies
/
{id}
/
players
/
{playerId}
Remove a player from a lobby (leave or kick)
curl --request DELETE \
  --url https://api.scale.computeflow.cloud/lobbies/{id}/players/{playerId}
{
  "id": "e495d158-5d18-45e4-81b2-384790a8b830",
  "name": "Pro Players Only",
  "host": "player123",
  "maxPlayers": 8,
  "currentPlayers": 3,
  "region": "us-west",
  "status": "waiting",
  "isPrivate": false,
  "useInviteCode": false,
  "inviteCode": "abc123",
  "allowLateJoin": true,
  "settings": {
    "gameMode": "capture-the-flag",
    "timeLimit": 300,
    "teamSize": 4,
    "mapRotation": [
      "map1",
      "map2"
    ]
  },
  "players": [
    "player123",
    "player456",
    "player789"
  ],
  "lobbyStateRealTime": {
    "player123": {
      "position": {
        "x": 100,
        "y": 20
      },
      "health": 80
    },
    "player456": {
      "position": {
        "x": 200,
        "y": 30
      },
      "health": 95
    }
  },
  "gameServer": {
    "instance_id": "srv-a1b2c3d4",
    "name": "lobby-1698754321",
    "network_ports": [
      {
        "name": "game",
        "internal_port": 7777,
        "external_port": 30000,
        "protocol": "udp",
        "host": "203.0.113.42",
        "tls_enabled": false
      },
      {
        "name": "web",
        "internal_port": 8080,
        "external_port": 30001,
        "protocol": "tcp",
        "host": "203.0.113.42",
        "tls_enabled": true
      }
    ],
    "status": "running",
    "startup_args": "--mode capture-the-flag --map castle",
    "service_type": "match_based",
    "compute_size": "small",
    "region": "us-west",
    "version_tag": "v1.0.2",
    "started_at": "2023-10-31T15:30:00Z",
    "stopped_at": null,
    "custom_data": {
      "gameMode": "capture-the-flag",
      "mapName": "castle",
      "teamSize": 4,
      "scoreLimit": 10
    },
    "ttl": 3600
  },
  "timeout": 300,
  "matchmakingMode": "ranked_5v5",
  "matchmakingStartedAt": "2023-08-15T14:30:00.000Z",
  "matchmakingTicketId": "ticket-a1b2c3d4",
  "matchmakingData": {
    "mmr": 1200,
    "tier": "gold"
  },
  "createdAt": "2023-08-15T14:30:00.000Z",
  "updatedAt": "2023-08-15T15:45:00.000Z"
}

Path Parameters

id
string
required

Lobby ID

playerId
string
required

Player ID to remove

Query Parameters

name
string
required

Name of the lobby configuration this lobby belongs to

requesterId
string
required

ID of the player making the request

isKick
boolean

Whether this is a kick operation (requires host permissions)

Response

Player removed from lobby

id
string<uuid>
required

Unique identifier for the lobby

Example:

"e495d158-5d18-45e4-81b2-384790a8b830"

name
string
required

Name of the lobby displayed to players

Maximum length: 255
Example:

"Pro Players Only"

host
string
required

ID of the player who is the current host

Maximum length: 255
Example:

"player123"

maxPlayers
number
default:8
required

Maximum number of players allowed in the lobby

Required range: 1 <= x <= 100
Example:

8

currentPlayers
number
default:0
required

Current number of players in the lobby

Example:

3

region
string
default:us-west
required

Geographic region for the lobby server

Example:

"us-west"

status
enum<string>
default:waiting
required

Current status of the lobby

Available options:
waiting,
in_queue,
match_found,
in_game,
finished
Example:

"waiting"

isPrivate
boolean
default:false
required

Whether the lobby is private (requires invite code to join)

Example:

false

useInviteCode
boolean
default:false
required

Whether to generate an invite code for this lobby (always true for private lobbies)

Example:

false

inviteCode
string | null
required

Invite code for private lobbies or public lobbies with useInviteCode=true

Maximum length: 10
Example:

"abc123"

allowLateJoin
boolean
default:true
required

Whether players can join after the game has started

Example:

true

settings
object | null
required

Custom game settings for this lobby

Example:
{
"gameMode": "capture-the-flag",
"timeLimit": 300,
"teamSize": 4,
"mapRotation": ["map1", "map2"]
}
players
string[] | null
required

Array of player IDs currently in the lobby

Example:
["player123", "player456", "player789"]
lobbyStateRealTime
object | null
required

Real-time state information for each player, indexed by player ID

Example:
{
"player123": {
"position": { "x": 100, "y": 20 },
"health": 80
},
"player456": {
"position": { "x": 200, "y": 30 },
"health": 95
}
}
gameServer
object | null
required

Game server information returned from PlayFlow API when a game is running. Contains all connection details, server state, and metadata.

Example:
{
"instance_id": "srv-a1b2c3d4",
"name": "lobby-1698754321",
"network_ports": [
{
"name": "game",
"internal_port": 7777,
"external_port": 30000,
"protocol": "udp",
"host": "203.0.113.42",
"tls_enabled": false
},
{
"name": "web",
"internal_port": 8080,
"external_port": 30001,
"protocol": "tcp",
"host": "203.0.113.42",
"tls_enabled": true
}
],
"status": "running",
"startup_args": "--mode capture-the-flag --map castle",
"service_type": "match_based",
"compute_size": "small",
"region": "us-west",
"version_tag": "v1.0.2",
"started_at": "2023-10-31T15:30:00Z",
"stopped_at": null,
"custom_data": {
"gameMode": "capture-the-flag",
"mapName": "castle",
"teamSize": 4,
"scoreLimit": 10
},
"ttl": 3600
}
timeout
number
default:300
required

Time in seconds before the lobby auto-closes due to inactivity

Required range: 60 <= x <= 3600
Example:

300

matchmakingMode
string | null
required

Current matchmaking mode for this lobby

Example:

"ranked_5v5"

matchmakingStartedAt
string<date-time> | null
required

Timestamp when matchmaking started

Example:

"2023-08-15T14:30:00.000Z"

matchmakingTicketId
string | null
required

Matchmaking ticket ID from the matchmaking service

Example:

"ticket-a1b2c3d4"

matchmakingData
object | null
required

Data used for matchmaking, such as average skill or rank.

Example:
{ "mmr": 1200, "tier": "gold" }
createdAt
string<date-time>
required

Timestamp when this lobby was created

Example:

"2023-08-15T14:30:00.000Z"

updatedAt
string<date-time>
required

Timestamp when this lobby was last updated

Example:

"2023-08-15T15:45:00.000Z"