curl --request DELETE \
--url https://api.computeflow.cloud/api/v3/lobbies/{config}/me/confirm-match \
--header 'api-key: <api-key>' \
--header 'x-player-id: <x-player-id>'import requests
url = "https://api.computeflow.cloud/api/v3/lobbies/{config}/me/confirm-match"
headers = {
"x-player-id": "<x-player-id>",
"api-key": "<api-key>"
}
response = requests.delete(url, headers=headers)
print(response.text)const options = {
method: 'DELETE',
headers: {'x-player-id': '<x-player-id>', 'api-key': '<api-key>'}
};
fetch('https://api.computeflow.cloud/api/v3/lobbies/{config}/me/confirm-match', 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/confirm-match",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://api.computeflow.cloud/api/v3/lobbies/{config}/me/confirm-match"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("x-player-id", "<x-player-id>")
req.Header.Add("api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.delete("https://api.computeflow.cloud/api/v3/lobbies/{config}/me/confirm-match")
.header("x-player-id", "<x-player-id>")
.header("api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.computeflow.cloud/api/v3/lobbies/{config}/me/confirm-match")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["x-player-id"] = '<x-player-id>'
request["api-key"] = '<api-key>'
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>"
}Decline a found match
Declines a match. Cancels the match for every participating lobby — all of them return to waiting. Players explicitly re-queue when ready.
Who can call: Any player in any lobby of the match.
Compare to cancel-matchmaking: Cancel-matchmaking exits the queue entirely (returns to waiting). Decline-match also returns to waiting but cancels the match for every participating lobby, not just yours.
curl --request DELETE \
--url https://api.computeflow.cloud/api/v3/lobbies/{config}/me/confirm-match \
--header 'api-key: <api-key>' \
--header 'x-player-id: <x-player-id>'import requests
url = "https://api.computeflow.cloud/api/v3/lobbies/{config}/me/confirm-match"
headers = {
"x-player-id": "<x-player-id>",
"api-key": "<api-key>"
}
response = requests.delete(url, headers=headers)
print(response.text)const options = {
method: 'DELETE',
headers: {'x-player-id': '<x-player-id>', 'api-key': '<api-key>'}
};
fetch('https://api.computeflow.cloud/api/v3/lobbies/{config}/me/confirm-match', 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/confirm-match",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://api.computeflow.cloud/api/v3/lobbies/{config}/me/confirm-match"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("x-player-id", "<x-player-id>")
req.Header.Add("api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.delete("https://api.computeflow.cloud/api/v3/lobbies/{config}/me/confirm-match")
.header("x-player-id", "<x-player-id>")
.header("api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.computeflow.cloud/api/v3/lobbies/{config}/me/confirm-match")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["x-player-id"] = '<x-player-id>'
request["api-key"] = '<api-key>'
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.
Path Parameters
Lobby configuration name or ID.
Response
Match declined. Lobby is back in waiting.
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.