curl --request POST \
--url https://softmax.com/api/observatory/v2/tournaments/{tournament_id}:cancel \
--header 'Authorization: Bearer <token>'import requests
url = "https://softmax.com/api/observatory/v2/tournaments/{tournament_id}:cancel"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://softmax.com/api/observatory/v2/tournaments/{tournament_id}:cancel', 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://softmax.com/api/observatory/v2/tournaments/{tournament_id}:cancel",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://softmax.com/api/observatory/v2/tournaments/{tournament_id}:cancel"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://softmax.com/api/observatory/v2/tournaments/{tournament_id}:cancel")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://softmax.com/api/observatory/v2/tournaments/{tournament_id}:cancel")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"tournament_id": "<string>",
"league_id": "<string>",
"name": "<string>",
"status": "draft",
"definition": {
"name": "<string>",
"schedule": {
"mode": "on_demand",
"starts_at": "2023-11-07T05:31:56Z",
"ends_at": "2023-11-07T05:31:56Z"
},
"roster_generator": {
"type": "explicit",
"entrants": [
{
"player_id": "<string>",
"policy_version_id": "<string>",
"display_name": "<string>"
}
],
"host_division_id": "<string>"
},
"round_generator": {
"strategy": "double_elimination",
"grand_final_reset": true,
"best_of": 1
},
"placements": {
"type": "bracket_finish",
"tiers": [
{
"name": "<string>",
"ranks": [
123,
123
]
}
]
}
},
"frozen_entrants": [
{
"entrant_id": "<string>",
"player_id": "<string>",
"policy_version_id": "<string>",
"seed": 123,
"display_name": "<string>",
"league_policy_membership_id": "<string>"
}
],
"visualization": {
"strategy": "double_elimination",
"size": 123,
"grand_final_reset": true,
"entrants": [
{
"entrant_id": "<string>",
"player_id": "<string>",
"policy_version_id": "<string>",
"seed": 123,
"display_name": "<string>"
}
],
"matches": [
{
"match_id": "<string>",
"bracket": "winners",
"round_index": 123,
"slot_index": 123,
"label": "<string>",
"series_format": "bo1",
"entrant_a_id": "<string>",
"entrant_b_id": "<string>",
"winner_entrant_id": "<string>",
"status": "pending",
"edges": [
{
"to_match_id": "<string>",
"slot": "a",
"kind": "advance"
}
]
}
],
"current_round_key": "<string>",
"highlight_match_ids": [
"<string>"
],
"champion_entrant_id": "<string>"
},
"placements": [
{
"entrant_id": "<string>",
"player_id": "<string>",
"rank": 123,
"tier": "<string>",
"score": 123
}
],
"locked_at": "2023-11-07T05:31:56Z",
"locked_by": "<string>",
"started_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"error": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"idempotency_key": "<string>",
"requester_user_id": "<string>",
"host_division_id": "<string>",
"wave_experience_request_ids": {}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Cancel tournament
Cancel a non-terminal tournament; repeated cancellation is idempotent.
curl --request POST \
--url https://softmax.com/api/observatory/v2/tournaments/{tournament_id}:cancel \
--header 'Authorization: Bearer <token>'import requests
url = "https://softmax.com/api/observatory/v2/tournaments/{tournament_id}:cancel"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://softmax.com/api/observatory/v2/tournaments/{tournament_id}:cancel', 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://softmax.com/api/observatory/v2/tournaments/{tournament_id}:cancel",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://softmax.com/api/observatory/v2/tournaments/{tournament_id}:cancel"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://softmax.com/api/observatory/v2/tournaments/{tournament_id}:cancel")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://softmax.com/api/observatory/v2/tournaments/{tournament_id}:cancel")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"tournament_id": "<string>",
"league_id": "<string>",
"name": "<string>",
"status": "draft",
"definition": {
"name": "<string>",
"schedule": {
"mode": "on_demand",
"starts_at": "2023-11-07T05:31:56Z",
"ends_at": "2023-11-07T05:31:56Z"
},
"roster_generator": {
"type": "explicit",
"entrants": [
{
"player_id": "<string>",
"policy_version_id": "<string>",
"display_name": "<string>"
}
],
"host_division_id": "<string>"
},
"round_generator": {
"strategy": "double_elimination",
"grand_final_reset": true,
"best_of": 1
},
"placements": {
"type": "bracket_finish",
"tiers": [
{
"name": "<string>",
"ranks": [
123,
123
]
}
]
}
},
"frozen_entrants": [
{
"entrant_id": "<string>",
"player_id": "<string>",
"policy_version_id": "<string>",
"seed": 123,
"display_name": "<string>",
"league_policy_membership_id": "<string>"
}
],
"visualization": {
"strategy": "double_elimination",
"size": 123,
"grand_final_reset": true,
"entrants": [
{
"entrant_id": "<string>",
"player_id": "<string>",
"policy_version_id": "<string>",
"seed": 123,
"display_name": "<string>"
}
],
"matches": [
{
"match_id": "<string>",
"bracket": "winners",
"round_index": 123,
"slot_index": 123,
"label": "<string>",
"series_format": "bo1",
"entrant_a_id": "<string>",
"entrant_b_id": "<string>",
"winner_entrant_id": "<string>",
"status": "pending",
"edges": [
{
"to_match_id": "<string>",
"slot": "a",
"kind": "advance"
}
]
}
],
"current_round_key": "<string>",
"highlight_match_ids": [
"<string>"
],
"champion_entrant_id": "<string>"
},
"placements": [
{
"entrant_id": "<string>",
"player_id": "<string>",
"rank": 123,
"tier": "<string>",
"score": 123
}
],
"locked_at": "2023-11-07T05:31:56Z",
"locked_by": "<string>",
"started_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"error": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"idempotency_key": "<string>",
"requester_user_id": "<string>",
"host_division_id": "<string>",
"wave_experience_request_ids": {}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
Bearer token issued by Softmax
Path Parameters
Tournament to cancel.
^tour_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$Response
Successful Response
Tournament definition, bracket state, entrants, and lifecycle status.
Tournament ID.
League that owns the tournament.
Tournament display name.
Current tournament lifecycle state.
draft, locked, running, completed, cancelled, failed Tournament configuration frozen for this record.
Show child attributes
Show child attributes
Entrants resolved at lock time, or null while the tournament is a draft.
Show child attributes
Show child attributes
Client-renderable bracket state after the tournament locks.
Show child attributes
Show child attributes
Final placements after completion.
Show child attributes
Show child attributes
Time the definition and entrants were locked.
User that locked the tournament.
Time tournament execution started.
Time the tournament reached a terminal state.
Terminal failure reason, when the tournament failed.
Time the tournament draft was created.
Caller-supplied key used to deduplicate tournament creation.
User that created the tournament.
Division used to execute tournament rounds.
Experience request IDs keyed by tournament wave.
Show child attributes
Show child attributes