curl --request POST \
--url https://softmax.com/api/observatory/v2/league-submissions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"league_id": "<string>",
"policy_version_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'import requests
url = "https://softmax.com/api/observatory/v2/league-submissions"
payload = {
"league_id": "<string>",
"policy_version_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
league_id: '<string>',
policy_version_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
})
};
fetch('https://softmax.com/api/observatory/v2/league-submissions', 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/league-submissions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'league_id' => '<string>',
'policy_version_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://softmax.com/api/observatory/v2/league-submissions"
payload := strings.NewReader("{\n \"league_id\": \"<string>\",\n \"policy_version_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.post("https://softmax.com/api/observatory/v2/league-submissions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"league_id\": \"<string>\",\n \"policy_version_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://softmax.com/api/observatory/v2/league-submissions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"league_id\": \"<string>\",\n \"policy_version_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"status": "pending",
"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>"
},
"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",
"auto_champion": "always",
"preferences": {},
"notes": "<string>",
"league_policy_membership_id": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Create league submission
Submit a policy version for league qualification; active versions cannot be submitted again.
curl --request POST \
--url https://softmax.com/api/observatory/v2/league-submissions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"league_id": "<string>",
"policy_version_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'import requests
url = "https://softmax.com/api/observatory/v2/league-submissions"
payload = {
"league_id": "<string>",
"policy_version_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
league_id: '<string>',
policy_version_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
})
};
fetch('https://softmax.com/api/observatory/v2/league-submissions', 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/league-submissions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'league_id' => '<string>',
'policy_version_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://softmax.com/api/observatory/v2/league-submissions"
payload := strings.NewReader("{\n \"league_id\": \"<string>\",\n \"policy_version_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.post("https://softmax.com/api/observatory/v2/league-submissions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"league_id\": \"<string>\",\n \"policy_version_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://softmax.com/api/observatory/v2/league-submissions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"league_id\": \"<string>\",\n \"policy_version_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"status": "pending",
"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>"
},
"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",
"auto_champion": "always",
"preferences": {},
"notes": "<string>",
"league_policy_membership_id": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
Bearer token issued by Softmax
Body
League receiving the submission.
^league_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$Policy version to submit.
Player credited for the submission, or null to use the policy owner's player.
^ply_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$Controls whether newer versions of this policy become the player's league champion.
always, never, lineage League-specific submission preferences.
Note attached to the submission.
Response
Successful Response
Submission ID.
Current submission state.
pending, processing, placed, rejected, withdrawn League receiving the submission.
Show child attributes
Show child attributes
Policy version submitted to the league.
Show child attributes
Show child attributes
Player credited for the submission, or null when none is assigned.
Show child attributes
Show child attributes
Time when the submission was created.
Controls whether newer versions of this policy become the player's league champion.
always, never, lineage League-specific submission preferences.
Note attached to the submission.
Membership created from the submission, or null until placement succeeds.