curl --request GET \
--url https://softmax.com/api/observatory/v2/rounds/{round_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://softmax.com/api/observatory/v2/rounds/{round_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://softmax.com/api/observatory/v2/rounds/{round_id}', 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/rounds/{round_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
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/rounds/{round_id}"
req, _ := http.NewRequest("GET", 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.get("https://softmax.com/api/observatory/v2/rounds/{round_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://softmax.com/api/observatory/v2/rounds/{round_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"round_number": 123,
"commissioner_key": "<string>",
"execution_backend": "dispatch",
"round_config": {},
"status": "pending",
"division": {
"id": "<string>",
"name": "<string>",
"level": 123,
"type": "<string>",
"hidden": true,
"league": {
"name": "<string>",
"commissioner_key": "<string>",
"id": "<string>",
"game": {
"name": "<string>",
"owner_user_id": "<string>",
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"coworld_name": "<string>",
"description": "<string>",
"notes": "<string>",
"default_league_id": "<string>",
"coworld_id": "<string>",
"canonical_coworld_id": "<string>",
"coworld_tags": [
"<string>"
]
},
"mod": {
"name": "<string>",
"owner_user_id": "<string>",
"id": "<string>",
"game": {
"name": "<string>",
"owner_user_id": "<string>",
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"coworld_name": "<string>",
"description": "<string>",
"notes": "<string>",
"default_league_id": "<string>",
"coworld_id": "<string>",
"canonical_coworld_id": "<string>",
"coworld_tags": [
"<string>"
]
},
"created_at": "2023-11-07T05:31:56Z",
"description": "<string>",
"notes": "<string>"
},
"created_at": "2023-11-07T05:31:56Z",
"logs_reporter_id": "<string>",
"handicaps": {},
"handicap_dynamic": {
"max_handicap": 0.5,
"curve": 1,
"min_entrants": 3,
"dominance_ratio_for_max": 3,
"winrate_for_max": 0.85
},
"short_name": "<string>",
"description": "<string>",
"commissioner_config": {},
"commissioner_migration_version": "<string>",
"rounds_paused_at": "2023-11-07T05:31:56Z",
"submissions_locked_at": "2023-11-07T05:31:56Z",
"settings": {},
"filler_policy_version_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"seed_policy_version_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"seed_policy_number": 123,
"rules": {},
"public": false,
"hidden": false,
"is_game_of_week": false,
"disabled_at": "2023-11-07T05:31:56Z",
"notes": "<string>"
},
"created_at": "2023-11-07T05:31:56Z",
"description": "<string>",
"archived_at": "2023-11-07T05:31:56Z",
"round_schedule": {},
"notes": "<string>",
"commissioner_description": {
"round_schedule": "<string>",
"round_structure": "<string>",
"leaderboard_rules": "<string>",
"next_round": "<string>",
"scoring_mechanics": "<string>",
"changelog": [
{
"date": "<string>",
"title": "<string>",
"detail": "<string>",
"category": "<string>"
}
]
}
},
"created_at": "2023-11-07T05:31:56Z",
"results": [
{
"id": "<string>",
"rank": 123,
"score": 123,
"policy_version": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"policy": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>"
},
"version": 123,
"label": "<string>",
"player_id": "<string>"
},
"player": {
"id": "<string>",
"name": "<string>",
"avatar_url": "<string>"
},
"created_at": "2023-11-07T05:31:56Z",
"result_metadata": {}
}
],
"entrant_count": 123,
"round_display": {},
"scheduled_by": "ladder",
"error": "<string>",
"skip_kind": "budget_refused",
"started_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"commissioner_report": {},
"has_commissioner_logs": false,
"has_commissioner_report_render": false
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Get round
Return one visible round with scored results and commissioner output metadata.
curl --request GET \
--url https://softmax.com/api/observatory/v2/rounds/{round_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://softmax.com/api/observatory/v2/rounds/{round_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://softmax.com/api/observatory/v2/rounds/{round_id}', 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/rounds/{round_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
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/rounds/{round_id}"
req, _ := http.NewRequest("GET", 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.get("https://softmax.com/api/observatory/v2/rounds/{round_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://softmax.com/api/observatory/v2/rounds/{round_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"round_number": 123,
"commissioner_key": "<string>",
"execution_backend": "dispatch",
"round_config": {},
"status": "pending",
"division": {
"id": "<string>",
"name": "<string>",
"level": 123,
"type": "<string>",
"hidden": true,
"league": {
"name": "<string>",
"commissioner_key": "<string>",
"id": "<string>",
"game": {
"name": "<string>",
"owner_user_id": "<string>",
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"coworld_name": "<string>",
"description": "<string>",
"notes": "<string>",
"default_league_id": "<string>",
"coworld_id": "<string>",
"canonical_coworld_id": "<string>",
"coworld_tags": [
"<string>"
]
},
"mod": {
"name": "<string>",
"owner_user_id": "<string>",
"id": "<string>",
"game": {
"name": "<string>",
"owner_user_id": "<string>",
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"coworld_name": "<string>",
"description": "<string>",
"notes": "<string>",
"default_league_id": "<string>",
"coworld_id": "<string>",
"canonical_coworld_id": "<string>",
"coworld_tags": [
"<string>"
]
},
"created_at": "2023-11-07T05:31:56Z",
"description": "<string>",
"notes": "<string>"
},
"created_at": "2023-11-07T05:31:56Z",
"logs_reporter_id": "<string>",
"handicaps": {},
"handicap_dynamic": {
"max_handicap": 0.5,
"curve": 1,
"min_entrants": 3,
"dominance_ratio_for_max": 3,
"winrate_for_max": 0.85
},
"short_name": "<string>",
"description": "<string>",
"commissioner_config": {},
"commissioner_migration_version": "<string>",
"rounds_paused_at": "2023-11-07T05:31:56Z",
"submissions_locked_at": "2023-11-07T05:31:56Z",
"settings": {},
"filler_policy_version_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"seed_policy_version_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"seed_policy_number": 123,
"rules": {},
"public": false,
"hidden": false,
"is_game_of_week": false,
"disabled_at": "2023-11-07T05:31:56Z",
"notes": "<string>"
},
"created_at": "2023-11-07T05:31:56Z",
"description": "<string>",
"archived_at": "2023-11-07T05:31:56Z",
"round_schedule": {},
"notes": "<string>",
"commissioner_description": {
"round_schedule": "<string>",
"round_structure": "<string>",
"leaderboard_rules": "<string>",
"next_round": "<string>",
"scoring_mechanics": "<string>",
"changelog": [
{
"date": "<string>",
"title": "<string>",
"detail": "<string>",
"category": "<string>"
}
]
}
},
"created_at": "2023-11-07T05:31:56Z",
"results": [
{
"id": "<string>",
"rank": 123,
"score": 123,
"policy_version": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"policy": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>"
},
"version": 123,
"label": "<string>",
"player_id": "<string>"
},
"player": {
"id": "<string>",
"name": "<string>",
"avatar_url": "<string>"
},
"created_at": "2023-11-07T05:31:56Z",
"result_metadata": {}
}
],
"entrant_count": 123,
"round_display": {},
"scheduled_by": "ladder",
"error": "<string>",
"skip_kind": "budget_refused",
"started_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"commissioner_report": {},
"has_commissioner_logs": false,
"has_commissioner_report_render": false
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
Bearer token issued by Softmax
Path Parameters
Round associated with the requested resource.
^round_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$Response
Successful Response
Round ID.
Sequential round number within the division.
Commissioner type used for this round.
Execution system used for the round.
dispatch Frozen configuration used to run the round.
Current round state.
pending, claimed, running, completed, failed, cancelled Division that owns this round.
Show child attributes
Show child attributes
Time when the round was created.
Scored results for this round.
Show child attributes
Show child attributes
Number of policy versions entered in the round.
Commissioner-authored display data, or null when none was published.
Workflow that scheduled the round.
ladder, api, campaign, landscape, pipeline, persistent, tournament Failure message, or null when no failure was recorded.
Reason the round ended without running, or null when it ran or has not finished.
budget_refused, league_credits_refused Time when round execution started, or null until it starts.
Time when the round finished, or null until it finishes.
Commissioner-authored scoring report, or null when none was published.
Whether commissioner execution logs are available.
Whether an HTML rendering of the commissioner report is available.