curl --request PATCH \
--url https://api.computeflow.cloud/api/v3/lobbies/{config}/me/settings \
--header 'Content-Type: application/json' \
--header 'api-key: <api-key>' \
--header 'x-player-id: <x-player-id>' \
--data '
{
"name": "<string>",
"maxPlayers": 50,
"isPrivate": true,
"allowLateJoin": true,
"region": "<string>",
"settings": {}
}
'import requests
url = "https://api.computeflow.cloud/api/v3/lobbies/{config}/me/settings"
payload = {
"name": "<string>",
"maxPlayers": 50,
"isPrivate": True,
"allowLateJoin": True,
"region": "<string>",
"settings": {}
}
headers = {
"x-player-id": "<x-player-id>",
"api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {
'x-player-id': '<x-player-id>',
'api-key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: '<string>',
maxPlayers: 50,
isPrivate: true,
allowLateJoin: true,
region: '<string>',
settings: {}
})
};
fetch('https://api.computeflow.cloud/api/v3/lobbies/{config}/me/settings', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.computeflow.cloud/api/v3/lobbies/{config}/me/settings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'maxPlayers' => 50,
'isPrivate' => true,
'allowLateJoin' => true,
'region' => '<string>',
'settings' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"api-key: <api-key>",
"x-player-id: <x-player-id>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.computeflow.cloud/api/v3/lobbies/{config}/me/settings"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"maxPlayers\": 50,\n \"isPrivate\": true,\n \"allowLateJoin\": true,\n \"region\": \"<string>\",\n \"settings\": {}\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-player-id", "<x-player-id>")
req.Header.Add("api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.computeflow.cloud/api/v3/lobbies/{config}/me/settings")
.header("x-player-id", "<x-player-id>")
.header("api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"maxPlayers\": 50,\n \"isPrivate\": true,\n \"allowLateJoin\": true,\n \"region\": \"<string>\",\n \"settings\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.computeflow.cloud/api/v3/lobbies/{config}/me/settings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-player-id"] = '<x-player-id>'
request["api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"maxPlayers\": 50,\n \"isPrivate\": true,\n \"allowLateJoin\": true,\n \"region\": \"<string>\",\n \"settings\": {}\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"code": "<string>",
"config": "<string>",
"status": "waiting",
"host": "<string>",
"maxPlayers": 123,
"currentPlayers": 123,
"region": "<string>",
"isPrivate": true,
"allowLateJoin": true,
"settings": {},
"players": [
{
"id": "<string>",
"state": {},
"isHost": true
}
],
"server": {
"instance_id": "<string>",
"name": "<string>",
"status": "launching",
"network_ports": [
{
"name": "<string>",
"internal_port": 123,
"external_port": 123,
"protocol": "udp",
"host": "<string>",
"tls_enabled": true
}
],
"startup_args": "<string>",
"service_type": "match_based",
"compute_size": "<string>",
"region": "<string>",
"version_tag": "<string>",
"version": 123,
"started_at": "2023-11-07T05:31:56Z",
"stopped_at": "2023-11-07T05:31:56Z",
"auto_restart": true,
"custom_data": {},
"ttl": 123,
"is_pool_server": true,
"pool_claimed_at": "2023-11-07T05:31:56Z",
"match_id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
},
"matchmaking": {
"mode": "<string>",
"startedAt": "<string>",
"queueStats": {
"playersSearching": 123,
"lobbiesInQueue": 123,
"avgWaitSeconds": 123
},
"confirmation": {
"deadline": "<string>",
"confirmed": true
}
},
"createdAt": "<string>",
"updatedAt": "<string>",
"matchmakingError": "<string>"
}{
"error": "<string>",
"status": 123,
"detail": "<string>"
}{
"error": "<string>",
"status": 123,
"detail": "<string>"
}{
"error": "<string>",
"status": 123,
"detail": "<string>"
}Update lobby settings
Host only. Updates the lobby’s shared settings (name, max players, region, game settings, etc.).
All fields are optional. Omitted fields keep their current values. The settings object is merged with the existing settings (existing keys are preserved unless overwritten).
Example: Change the map and toggle private mode:
{ "isPrivate": true, "settings": { "map": "desert" } }
All players see setting changes in real-time via the SSE stream.
curl --request PATCH \
--url https://api.computeflow.cloud/api/v3/lobbies/{config}/me/settings \
--header 'Content-Type: application/json' \
--header 'api-key: <api-key>' \
--header 'x-player-id: <x-player-id>' \
--data '
{
"name": "<string>",
"maxPlayers": 50,
"isPrivate": true,
"allowLateJoin": true,
"region": "<string>",
"settings": {}
}
'import requests
url = "https://api.computeflow.cloud/api/v3/lobbies/{config}/me/settings"
payload = {
"name": "<string>",
"maxPlayers": 50,
"isPrivate": True,
"allowLateJoin": True,
"region": "<string>",
"settings": {}
}
headers = {
"x-player-id": "<x-player-id>",
"api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {
'x-player-id': '<x-player-id>',
'api-key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: '<string>',
maxPlayers: 50,
isPrivate: true,
allowLateJoin: true,
region: '<string>',
settings: {}
})
};
fetch('https://api.computeflow.cloud/api/v3/lobbies/{config}/me/settings', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.computeflow.cloud/api/v3/lobbies/{config}/me/settings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'maxPlayers' => 50,
'isPrivate' => true,
'allowLateJoin' => true,
'region' => '<string>',
'settings' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"api-key: <api-key>",
"x-player-id: <x-player-id>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.computeflow.cloud/api/v3/lobbies/{config}/me/settings"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"maxPlayers\": 50,\n \"isPrivate\": true,\n \"allowLateJoin\": true,\n \"region\": \"<string>\",\n \"settings\": {}\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-player-id", "<x-player-id>")
req.Header.Add("api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.computeflow.cloud/api/v3/lobbies/{config}/me/settings")
.header("x-player-id", "<x-player-id>")
.header("api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"maxPlayers\": 50,\n \"isPrivate\": true,\n \"allowLateJoin\": true,\n \"region\": \"<string>\",\n \"settings\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.computeflow.cloud/api/v3/lobbies/{config}/me/settings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-player-id"] = '<x-player-id>'
request["api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"maxPlayers\": 50,\n \"isPrivate\": true,\n \"allowLateJoin\": true,\n \"region\": \"<string>\",\n \"settings\": {}\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"code": "<string>",
"config": "<string>",
"status": "waiting",
"host": "<string>",
"maxPlayers": 123,
"currentPlayers": 123,
"region": "<string>",
"isPrivate": true,
"allowLateJoin": true,
"settings": {},
"players": [
{
"id": "<string>",
"state": {},
"isHost": true
}
],
"server": {
"instance_id": "<string>",
"name": "<string>",
"status": "launching",
"network_ports": [
{
"name": "<string>",
"internal_port": 123,
"external_port": 123,
"protocol": "udp",
"host": "<string>",
"tls_enabled": true
}
],
"startup_args": "<string>",
"service_type": "match_based",
"compute_size": "<string>",
"region": "<string>",
"version_tag": "<string>",
"version": 123,
"started_at": "2023-11-07T05:31:56Z",
"stopped_at": "2023-11-07T05:31:56Z",
"auto_restart": true,
"custom_data": {},
"ttl": 123,
"is_pool_server": true,
"pool_claimed_at": "2023-11-07T05:31:56Z",
"match_id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
},
"matchmaking": {
"mode": "<string>",
"startedAt": "<string>",
"queueStats": {
"playersSearching": 123,
"lobbiesInQueue": 123,
"avgWaitSeconds": 123
},
"confirmation": {
"deadline": "<string>",
"confirmed": true
}
},
"createdAt": "<string>",
"updatedAt": "<string>",
"matchmakingError": "<string>"
}{
"error": "<string>",
"status": 123,
"detail": "<string>"
}{
"error": "<string>",
"status": 123,
"detail": "<string>"
}{
"error": "<string>",
"status": 123,
"detail": "<string>"
}Authorizations
Headers
Unique player identifier. Must be the lobby host.
Path Parameters
Lobby configuration name or ID.
Body
Update lobby settings. Only the host can do this.
Response
Settings updated. Returns the full lobby state.
Full lobby state including players, server, and matchmaking info.
Lobby ID.
Invite code for joining (null if private mode is disabled).
Lobby config name.
Current lobby status.
waiting, in_queue, starting, matched, match_found, in_game Player ID of the host.
Maximum player capacity.
Current number of players.
Preferred game server region.
Whether the lobby is hidden from browsing.
Whether players can join mid-game.
Custom game settings.
Show child attributes
Show child attributes
Players in the lobby with their state.
Show child attributes
Show child attributes
Game server info (null when no game running).
Show child attributes
Show child attributes
Matchmaking info (null when not searching).
Show child attributes
Show child attributes
ISO 8601 creation timestamp.
ISO 8601 last update timestamp.
Set when a queue entry was failed after repeated server-create failures. Explains why the match never formed; the lobby is returned to waiting so the player can retry.