curl --request POST \
--url https://softmax.com/api/observatory/v2/experience-requests \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"roster": [
{
"player": {
"policy_ref": "<string>",
"top_n": 50,
"random": true
},
"slot": -1
}
],
"idempotency_key": "<string>",
"private": false,
"coworld_id": "<string>",
"variant_id": "<string>",
"target": {
"coworld_id": "<string>",
"variant_id": "<string>",
"league_id": "<string>",
"league_name": "<string>",
"division_id": "<string>",
"division_name": "<string>"
},
"game_config_overrides": {},
"game_config_overlay_secret": "<string>",
"state": {
"scope": "player",
"participants": [
{
"player_id": "<string>"
}
]
},
"included_players": [
"<string>"
],
"excluded_players": [
"<string>"
],
"num_episodes": 1,
"notes": "<string>",
"execution_backend": "k8s",
"reporters": [
{
"reporter": {
"reporter_version_id": "<string>",
"kind": "version"
},
"params": {},
"limits": {
"memory_mib": 1,
"guest_cpu_seconds": 1,
"wall_clock_seconds": 1,
"scratch_mib": 1,
"tool_calls": 1,
"llm_usd": 1,
"artifact_read_mib": 1,
"output_mib": 1
},
"dependencies": [
{
"reporter": {
"reporter_version_id": "<string>",
"kind": "version"
},
"params": {},
"limits": {
"memory_mib": 1,
"guest_cpu_seconds": 1,
"wall_clock_seconds": 1,
"scratch_mib": 1,
"tool_calls": 1,
"llm_usd": 1,
"artifact_read_mib": 1,
"output_mib": 1
},
"reuse": {
"completed": true,
"max_age_seconds": 1,
"in_flight": true
},
"dependencies": [
{}
]
}
]
}
]
}
'import requests
url = "https://softmax.com/api/observatory/v2/experience-requests"
payload = {
"roster": [
{
"player": {
"policy_ref": "<string>",
"top_n": 50,
"random": True
},
"slot": -1
}
],
"idempotency_key": "<string>",
"private": False,
"coworld_id": "<string>",
"variant_id": "<string>",
"target": {
"coworld_id": "<string>",
"variant_id": "<string>",
"league_id": "<string>",
"league_name": "<string>",
"division_id": "<string>",
"division_name": "<string>"
},
"game_config_overrides": {},
"game_config_overlay_secret": "<string>",
"state": {
"scope": "player",
"participants": [{ "player_id": "<string>" }]
},
"included_players": ["<string>"],
"excluded_players": ["<string>"],
"num_episodes": 1,
"notes": "<string>",
"execution_backend": "k8s",
"reporters": [
{
"reporter": {
"reporter_version_id": "<string>",
"kind": "version"
},
"params": {},
"limits": {
"memory_mib": 1,
"guest_cpu_seconds": 1,
"wall_clock_seconds": 1,
"scratch_mib": 1,
"tool_calls": 1,
"llm_usd": 1,
"artifact_read_mib": 1,
"output_mib": 1
},
"dependencies": [
{
"reporter": {
"reporter_version_id": "<string>",
"kind": "version"
},
"params": {},
"limits": {
"memory_mib": 1,
"guest_cpu_seconds": 1,
"wall_clock_seconds": 1,
"scratch_mib": 1,
"tool_calls": 1,
"llm_usd": 1,
"artifact_read_mib": 1,
"output_mib": 1
},
"reuse": {
"completed": True,
"max_age_seconds": 1,
"in_flight": True
},
"dependencies": [{}]
}
]
}
]
}
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({
roster: [{player: {policy_ref: '<string>', top_n: 50, random: true}, slot: -1}],
idempotency_key: '<string>',
private: false,
coworld_id: '<string>',
variant_id: '<string>',
target: {
coworld_id: '<string>',
variant_id: '<string>',
league_id: '<string>',
league_name: '<string>',
division_id: '<string>',
division_name: '<string>'
},
game_config_overrides: {},
game_config_overlay_secret: '<string>',
state: {scope: 'player', participants: [{player_id: '<string>'}]},
included_players: ['<string>'],
excluded_players: ['<string>'],
num_episodes: 1,
notes: '<string>',
execution_backend: 'k8s',
reporters: [
{
reporter: {reporter_version_id: '<string>', kind: 'version'},
params: {},
limits: {
memory_mib: 1,
guest_cpu_seconds: 1,
wall_clock_seconds: 1,
scratch_mib: 1,
tool_calls: 1,
llm_usd: 1,
artifact_read_mib: 1,
output_mib: 1
},
dependencies: [
{
reporter: {reporter_version_id: '<string>', kind: 'version'},
params: {},
limits: {
memory_mib: 1,
guest_cpu_seconds: 1,
wall_clock_seconds: 1,
scratch_mib: 1,
tool_calls: 1,
llm_usd: 1,
artifact_read_mib: 1,
output_mib: 1
},
reuse: {completed: true, max_age_seconds: 1, in_flight: true},
dependencies: [{}]
}
]
}
]
})
};
fetch('https://softmax.com/api/observatory/v2/experience-requests', 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/experience-requests",
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([
'roster' => [
[
'player' => [
'policy_ref' => '<string>',
'top_n' => 50,
'random' => true
],
'slot' => -1
]
],
'idempotency_key' => '<string>',
'private' => false,
'coworld_id' => '<string>',
'variant_id' => '<string>',
'target' => [
'coworld_id' => '<string>',
'variant_id' => '<string>',
'league_id' => '<string>',
'league_name' => '<string>',
'division_id' => '<string>',
'division_name' => '<string>'
],
'game_config_overrides' => [
],
'game_config_overlay_secret' => '<string>',
'state' => [
'scope' => 'player',
'participants' => [
[
'player_id' => '<string>'
]
]
],
'included_players' => [
'<string>'
],
'excluded_players' => [
'<string>'
],
'num_episodes' => 1,
'notes' => '<string>',
'execution_backend' => 'k8s',
'reporters' => [
[
'reporter' => [
'reporter_version_id' => '<string>',
'kind' => 'version'
],
'params' => [
],
'limits' => [
'memory_mib' => 1,
'guest_cpu_seconds' => 1,
'wall_clock_seconds' => 1,
'scratch_mib' => 1,
'tool_calls' => 1,
'llm_usd' => 1,
'artifact_read_mib' => 1,
'output_mib' => 1
],
'dependencies' => [
[
'reporter' => [
'reporter_version_id' => '<string>',
'kind' => 'version'
],
'params' => [
],
'limits' => [
'memory_mib' => 1,
'guest_cpu_seconds' => 1,
'wall_clock_seconds' => 1,
'scratch_mib' => 1,
'tool_calls' => 1,
'llm_usd' => 1,
'artifact_read_mib' => 1,
'output_mib' => 1
],
'reuse' => [
'completed' => true,
'max_age_seconds' => 1,
'in_flight' => true
],
'dependencies' => [
[
]
]
]
]
]
]
]),
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/experience-requests"
payload := strings.NewReader("{\n \"roster\": [\n {\n \"player\": {\n \"policy_ref\": \"<string>\",\n \"top_n\": 50,\n \"random\": true\n },\n \"slot\": -1\n }\n ],\n \"idempotency_key\": \"<string>\",\n \"private\": false,\n \"coworld_id\": \"<string>\",\n \"variant_id\": \"<string>\",\n \"target\": {\n \"coworld_id\": \"<string>\",\n \"variant_id\": \"<string>\",\n \"league_id\": \"<string>\",\n \"league_name\": \"<string>\",\n \"division_id\": \"<string>\",\n \"division_name\": \"<string>\"\n },\n \"game_config_overrides\": {},\n \"game_config_overlay_secret\": \"<string>\",\n \"state\": {\n \"scope\": \"player\",\n \"participants\": [\n {\n \"player_id\": \"<string>\"\n }\n ]\n },\n \"included_players\": [\n \"<string>\"\n ],\n \"excluded_players\": [\n \"<string>\"\n ],\n \"num_episodes\": 1,\n \"notes\": \"<string>\",\n \"execution_backend\": \"k8s\",\n \"reporters\": [\n {\n \"reporter\": {\n \"reporter_version_id\": \"<string>\",\n \"kind\": \"version\"\n },\n \"params\": {},\n \"limits\": {\n \"memory_mib\": 1,\n \"guest_cpu_seconds\": 1,\n \"wall_clock_seconds\": 1,\n \"scratch_mib\": 1,\n \"tool_calls\": 1,\n \"llm_usd\": 1,\n \"artifact_read_mib\": 1,\n \"output_mib\": 1\n },\n \"dependencies\": [\n {\n \"reporter\": {\n \"reporter_version_id\": \"<string>\",\n \"kind\": \"version\"\n },\n \"params\": {},\n \"limits\": {\n \"memory_mib\": 1,\n \"guest_cpu_seconds\": 1,\n \"wall_clock_seconds\": 1,\n \"scratch_mib\": 1,\n \"tool_calls\": 1,\n \"llm_usd\": 1,\n \"artifact_read_mib\": 1,\n \"output_mib\": 1\n },\n \"reuse\": {\n \"completed\": true,\n \"max_age_seconds\": 1,\n \"in_flight\": true\n },\n \"dependencies\": [\n {}\n ]\n }\n ]\n }\n ]\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/experience-requests")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"roster\": [\n {\n \"player\": {\n \"policy_ref\": \"<string>\",\n \"top_n\": 50,\n \"random\": true\n },\n \"slot\": -1\n }\n ],\n \"idempotency_key\": \"<string>\",\n \"private\": false,\n \"coworld_id\": \"<string>\",\n \"variant_id\": \"<string>\",\n \"target\": {\n \"coworld_id\": \"<string>\",\n \"variant_id\": \"<string>\",\n \"league_id\": \"<string>\",\n \"league_name\": \"<string>\",\n \"division_id\": \"<string>\",\n \"division_name\": \"<string>\"\n },\n \"game_config_overrides\": {},\n \"game_config_overlay_secret\": \"<string>\",\n \"state\": {\n \"scope\": \"player\",\n \"participants\": [\n {\n \"player_id\": \"<string>\"\n }\n ]\n },\n \"included_players\": [\n \"<string>\"\n ],\n \"excluded_players\": [\n \"<string>\"\n ],\n \"num_episodes\": 1,\n \"notes\": \"<string>\",\n \"execution_backend\": \"k8s\",\n \"reporters\": [\n {\n \"reporter\": {\n \"reporter_version_id\": \"<string>\",\n \"kind\": \"version\"\n },\n \"params\": {},\n \"limits\": {\n \"memory_mib\": 1,\n \"guest_cpu_seconds\": 1,\n \"wall_clock_seconds\": 1,\n \"scratch_mib\": 1,\n \"tool_calls\": 1,\n \"llm_usd\": 1,\n \"artifact_read_mib\": 1,\n \"output_mib\": 1\n },\n \"dependencies\": [\n {\n \"reporter\": {\n \"reporter_version_id\": \"<string>\",\n \"kind\": \"version\"\n },\n \"params\": {},\n \"limits\": {\n \"memory_mib\": 1,\n \"guest_cpu_seconds\": 1,\n \"wall_clock_seconds\": 1,\n \"scratch_mib\": 1,\n \"tool_calls\": 1,\n \"llm_usd\": 1,\n \"artifact_read_mib\": 1,\n \"output_mib\": 1\n },\n \"reuse\": {\n \"completed\": true,\n \"max_age_seconds\": 1,\n \"in_flight\": true\n },\n \"dependencies\": [\n {}\n ]\n }\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://softmax.com/api/observatory/v2/experience-requests")
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 \"roster\": [\n {\n \"player\": {\n \"policy_ref\": \"<string>\",\n \"top_n\": 50,\n \"random\": true\n },\n \"slot\": -1\n }\n ],\n \"idempotency_key\": \"<string>\",\n \"private\": false,\n \"coworld_id\": \"<string>\",\n \"variant_id\": \"<string>\",\n \"target\": {\n \"coworld_id\": \"<string>\",\n \"variant_id\": \"<string>\",\n \"league_id\": \"<string>\",\n \"league_name\": \"<string>\",\n \"division_id\": \"<string>\",\n \"division_name\": \"<string>\"\n },\n \"game_config_overrides\": {},\n \"game_config_overlay_secret\": \"<string>\",\n \"state\": {\n \"scope\": \"player\",\n \"participants\": [\n {\n \"player_id\": \"<string>\"\n }\n ]\n },\n \"included_players\": [\n \"<string>\"\n ],\n \"excluded_players\": [\n \"<string>\"\n ],\n \"num_episodes\": 1,\n \"notes\": \"<string>\",\n \"execution_backend\": \"k8s\",\n \"reporters\": [\n {\n \"reporter\": {\n \"reporter_version_id\": \"<string>\",\n \"kind\": \"version\"\n },\n \"params\": {},\n \"limits\": {\n \"memory_mib\": 1,\n \"guest_cpu_seconds\": 1,\n \"wall_clock_seconds\": 1,\n \"scratch_mib\": 1,\n \"tool_calls\": 1,\n \"llm_usd\": 1,\n \"artifact_read_mib\": 1,\n \"output_mib\": 1\n },\n \"dependencies\": [\n {\n \"reporter\": {\n \"reporter_version_id\": \"<string>\",\n \"kind\": \"version\"\n },\n \"params\": {},\n \"limits\": {\n \"memory_mib\": 1,\n \"guest_cpu_seconds\": 1,\n \"wall_clock_seconds\": 1,\n \"scratch_mib\": 1,\n \"tool_calls\": 1,\n \"llm_usd\": 1,\n \"artifact_read_mib\": 1,\n \"output_mib\": 1\n },\n \"reuse\": {\n \"completed\": true,\n \"max_age_seconds\": 1,\n \"in_flight\": true\n },\n \"dependencies\": [\n {}\n ]\n }\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"requester_user_id": "<string>",
"coworld_id": "<string>",
"coworld_name": "<string>",
"coworld_version": "<string>",
"variant_id": "<string>",
"status": "pending",
"episode_count": 123,
"pending_count": 123,
"submitted_count": 123,
"running_count": 123,
"completed_count": 123,
"failed_count": 123,
"error": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"started_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"episodes": [
{
"id": "<string>",
"requester_user_id": "<string>",
"status": "pending",
"policy_version_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"participants": [
{
"position": 123,
"policy_version_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"policy_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"policy_name": "<string>",
"version": 123,
"kind": "policy",
"player_id": "<string>",
"player_name": "<string>",
"is_filler": false,
"is_seed": false
}
],
"scores": [
{
"policy_version_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"score": 123
}
],
"created_at": "2023-11-07T05:31:56Z",
"round_id": "<string>",
"coworld_id": "<string>",
"coworld_name": "<string>",
"coworld_version": "<string>",
"variant_name": "<string>",
"max_steps": 123,
"job_index": 123,
"job_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"episode_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"replay_url": "<string>",
"live_url": "<string>",
"error_type": "<string>",
"error": "<string>",
"failed_policy_index": 123,
"failed_agent_index": 123,
"participant_scores": [
{
"position": 1,
"score": 123
}
],
"dispatched_at": "2023-11-07T05:31:56Z",
"running_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"cost_usd": 123,
"game_config": {}
}
],
"requester": "<string>",
"requested": {},
"cost_preview": {
"estimated_cost_credits": 123,
"player_pod_llm_spend_limit_usd": 123
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Create Experience Request
curl --request POST \
--url https://softmax.com/api/observatory/v2/experience-requests \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"roster": [
{
"player": {
"policy_ref": "<string>",
"top_n": 50,
"random": true
},
"slot": -1
}
],
"idempotency_key": "<string>",
"private": false,
"coworld_id": "<string>",
"variant_id": "<string>",
"target": {
"coworld_id": "<string>",
"variant_id": "<string>",
"league_id": "<string>",
"league_name": "<string>",
"division_id": "<string>",
"division_name": "<string>"
},
"game_config_overrides": {},
"game_config_overlay_secret": "<string>",
"state": {
"scope": "player",
"participants": [
{
"player_id": "<string>"
}
]
},
"included_players": [
"<string>"
],
"excluded_players": [
"<string>"
],
"num_episodes": 1,
"notes": "<string>",
"execution_backend": "k8s",
"reporters": [
{
"reporter": {
"reporter_version_id": "<string>",
"kind": "version"
},
"params": {},
"limits": {
"memory_mib": 1,
"guest_cpu_seconds": 1,
"wall_clock_seconds": 1,
"scratch_mib": 1,
"tool_calls": 1,
"llm_usd": 1,
"artifact_read_mib": 1,
"output_mib": 1
},
"dependencies": [
{
"reporter": {
"reporter_version_id": "<string>",
"kind": "version"
},
"params": {},
"limits": {
"memory_mib": 1,
"guest_cpu_seconds": 1,
"wall_clock_seconds": 1,
"scratch_mib": 1,
"tool_calls": 1,
"llm_usd": 1,
"artifact_read_mib": 1,
"output_mib": 1
},
"reuse": {
"completed": true,
"max_age_seconds": 1,
"in_flight": true
},
"dependencies": [
{}
]
}
]
}
]
}
'import requests
url = "https://softmax.com/api/observatory/v2/experience-requests"
payload = {
"roster": [
{
"player": {
"policy_ref": "<string>",
"top_n": 50,
"random": True
},
"slot": -1
}
],
"idempotency_key": "<string>",
"private": False,
"coworld_id": "<string>",
"variant_id": "<string>",
"target": {
"coworld_id": "<string>",
"variant_id": "<string>",
"league_id": "<string>",
"league_name": "<string>",
"division_id": "<string>",
"division_name": "<string>"
},
"game_config_overrides": {},
"game_config_overlay_secret": "<string>",
"state": {
"scope": "player",
"participants": [{ "player_id": "<string>" }]
},
"included_players": ["<string>"],
"excluded_players": ["<string>"],
"num_episodes": 1,
"notes": "<string>",
"execution_backend": "k8s",
"reporters": [
{
"reporter": {
"reporter_version_id": "<string>",
"kind": "version"
},
"params": {},
"limits": {
"memory_mib": 1,
"guest_cpu_seconds": 1,
"wall_clock_seconds": 1,
"scratch_mib": 1,
"tool_calls": 1,
"llm_usd": 1,
"artifact_read_mib": 1,
"output_mib": 1
},
"dependencies": [
{
"reporter": {
"reporter_version_id": "<string>",
"kind": "version"
},
"params": {},
"limits": {
"memory_mib": 1,
"guest_cpu_seconds": 1,
"wall_clock_seconds": 1,
"scratch_mib": 1,
"tool_calls": 1,
"llm_usd": 1,
"artifact_read_mib": 1,
"output_mib": 1
},
"reuse": {
"completed": True,
"max_age_seconds": 1,
"in_flight": True
},
"dependencies": [{}]
}
]
}
]
}
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({
roster: [{player: {policy_ref: '<string>', top_n: 50, random: true}, slot: -1}],
idempotency_key: '<string>',
private: false,
coworld_id: '<string>',
variant_id: '<string>',
target: {
coworld_id: '<string>',
variant_id: '<string>',
league_id: '<string>',
league_name: '<string>',
division_id: '<string>',
division_name: '<string>'
},
game_config_overrides: {},
game_config_overlay_secret: '<string>',
state: {scope: 'player', participants: [{player_id: '<string>'}]},
included_players: ['<string>'],
excluded_players: ['<string>'],
num_episodes: 1,
notes: '<string>',
execution_backend: 'k8s',
reporters: [
{
reporter: {reporter_version_id: '<string>', kind: 'version'},
params: {},
limits: {
memory_mib: 1,
guest_cpu_seconds: 1,
wall_clock_seconds: 1,
scratch_mib: 1,
tool_calls: 1,
llm_usd: 1,
artifact_read_mib: 1,
output_mib: 1
},
dependencies: [
{
reporter: {reporter_version_id: '<string>', kind: 'version'},
params: {},
limits: {
memory_mib: 1,
guest_cpu_seconds: 1,
wall_clock_seconds: 1,
scratch_mib: 1,
tool_calls: 1,
llm_usd: 1,
artifact_read_mib: 1,
output_mib: 1
},
reuse: {completed: true, max_age_seconds: 1, in_flight: true},
dependencies: [{}]
}
]
}
]
})
};
fetch('https://softmax.com/api/observatory/v2/experience-requests', 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/experience-requests",
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([
'roster' => [
[
'player' => [
'policy_ref' => '<string>',
'top_n' => 50,
'random' => true
],
'slot' => -1
]
],
'idempotency_key' => '<string>',
'private' => false,
'coworld_id' => '<string>',
'variant_id' => '<string>',
'target' => [
'coworld_id' => '<string>',
'variant_id' => '<string>',
'league_id' => '<string>',
'league_name' => '<string>',
'division_id' => '<string>',
'division_name' => '<string>'
],
'game_config_overrides' => [
],
'game_config_overlay_secret' => '<string>',
'state' => [
'scope' => 'player',
'participants' => [
[
'player_id' => '<string>'
]
]
],
'included_players' => [
'<string>'
],
'excluded_players' => [
'<string>'
],
'num_episodes' => 1,
'notes' => '<string>',
'execution_backend' => 'k8s',
'reporters' => [
[
'reporter' => [
'reporter_version_id' => '<string>',
'kind' => 'version'
],
'params' => [
],
'limits' => [
'memory_mib' => 1,
'guest_cpu_seconds' => 1,
'wall_clock_seconds' => 1,
'scratch_mib' => 1,
'tool_calls' => 1,
'llm_usd' => 1,
'artifact_read_mib' => 1,
'output_mib' => 1
],
'dependencies' => [
[
'reporter' => [
'reporter_version_id' => '<string>',
'kind' => 'version'
],
'params' => [
],
'limits' => [
'memory_mib' => 1,
'guest_cpu_seconds' => 1,
'wall_clock_seconds' => 1,
'scratch_mib' => 1,
'tool_calls' => 1,
'llm_usd' => 1,
'artifact_read_mib' => 1,
'output_mib' => 1
],
'reuse' => [
'completed' => true,
'max_age_seconds' => 1,
'in_flight' => true
],
'dependencies' => [
[
]
]
]
]
]
]
]),
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/experience-requests"
payload := strings.NewReader("{\n \"roster\": [\n {\n \"player\": {\n \"policy_ref\": \"<string>\",\n \"top_n\": 50,\n \"random\": true\n },\n \"slot\": -1\n }\n ],\n \"idempotency_key\": \"<string>\",\n \"private\": false,\n \"coworld_id\": \"<string>\",\n \"variant_id\": \"<string>\",\n \"target\": {\n \"coworld_id\": \"<string>\",\n \"variant_id\": \"<string>\",\n \"league_id\": \"<string>\",\n \"league_name\": \"<string>\",\n \"division_id\": \"<string>\",\n \"division_name\": \"<string>\"\n },\n \"game_config_overrides\": {},\n \"game_config_overlay_secret\": \"<string>\",\n \"state\": {\n \"scope\": \"player\",\n \"participants\": [\n {\n \"player_id\": \"<string>\"\n }\n ]\n },\n \"included_players\": [\n \"<string>\"\n ],\n \"excluded_players\": [\n \"<string>\"\n ],\n \"num_episodes\": 1,\n \"notes\": \"<string>\",\n \"execution_backend\": \"k8s\",\n \"reporters\": [\n {\n \"reporter\": {\n \"reporter_version_id\": \"<string>\",\n \"kind\": \"version\"\n },\n \"params\": {},\n \"limits\": {\n \"memory_mib\": 1,\n \"guest_cpu_seconds\": 1,\n \"wall_clock_seconds\": 1,\n \"scratch_mib\": 1,\n \"tool_calls\": 1,\n \"llm_usd\": 1,\n \"artifact_read_mib\": 1,\n \"output_mib\": 1\n },\n \"dependencies\": [\n {\n \"reporter\": {\n \"reporter_version_id\": \"<string>\",\n \"kind\": \"version\"\n },\n \"params\": {},\n \"limits\": {\n \"memory_mib\": 1,\n \"guest_cpu_seconds\": 1,\n \"wall_clock_seconds\": 1,\n \"scratch_mib\": 1,\n \"tool_calls\": 1,\n \"llm_usd\": 1,\n \"artifact_read_mib\": 1,\n \"output_mib\": 1\n },\n \"reuse\": {\n \"completed\": true,\n \"max_age_seconds\": 1,\n \"in_flight\": true\n },\n \"dependencies\": [\n {}\n ]\n }\n ]\n }\n ]\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/experience-requests")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"roster\": [\n {\n \"player\": {\n \"policy_ref\": \"<string>\",\n \"top_n\": 50,\n \"random\": true\n },\n \"slot\": -1\n }\n ],\n \"idempotency_key\": \"<string>\",\n \"private\": false,\n \"coworld_id\": \"<string>\",\n \"variant_id\": \"<string>\",\n \"target\": {\n \"coworld_id\": \"<string>\",\n \"variant_id\": \"<string>\",\n \"league_id\": \"<string>\",\n \"league_name\": \"<string>\",\n \"division_id\": \"<string>\",\n \"division_name\": \"<string>\"\n },\n \"game_config_overrides\": {},\n \"game_config_overlay_secret\": \"<string>\",\n \"state\": {\n \"scope\": \"player\",\n \"participants\": [\n {\n \"player_id\": \"<string>\"\n }\n ]\n },\n \"included_players\": [\n \"<string>\"\n ],\n \"excluded_players\": [\n \"<string>\"\n ],\n \"num_episodes\": 1,\n \"notes\": \"<string>\",\n \"execution_backend\": \"k8s\",\n \"reporters\": [\n {\n \"reporter\": {\n \"reporter_version_id\": \"<string>\",\n \"kind\": \"version\"\n },\n \"params\": {},\n \"limits\": {\n \"memory_mib\": 1,\n \"guest_cpu_seconds\": 1,\n \"wall_clock_seconds\": 1,\n \"scratch_mib\": 1,\n \"tool_calls\": 1,\n \"llm_usd\": 1,\n \"artifact_read_mib\": 1,\n \"output_mib\": 1\n },\n \"dependencies\": [\n {\n \"reporter\": {\n \"reporter_version_id\": \"<string>\",\n \"kind\": \"version\"\n },\n \"params\": {},\n \"limits\": {\n \"memory_mib\": 1,\n \"guest_cpu_seconds\": 1,\n \"wall_clock_seconds\": 1,\n \"scratch_mib\": 1,\n \"tool_calls\": 1,\n \"llm_usd\": 1,\n \"artifact_read_mib\": 1,\n \"output_mib\": 1\n },\n \"reuse\": {\n \"completed\": true,\n \"max_age_seconds\": 1,\n \"in_flight\": true\n },\n \"dependencies\": [\n {}\n ]\n }\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://softmax.com/api/observatory/v2/experience-requests")
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 \"roster\": [\n {\n \"player\": {\n \"policy_ref\": \"<string>\",\n \"top_n\": 50,\n \"random\": true\n },\n \"slot\": -1\n }\n ],\n \"idempotency_key\": \"<string>\",\n \"private\": false,\n \"coworld_id\": \"<string>\",\n \"variant_id\": \"<string>\",\n \"target\": {\n \"coworld_id\": \"<string>\",\n \"variant_id\": \"<string>\",\n \"league_id\": \"<string>\",\n \"league_name\": \"<string>\",\n \"division_id\": \"<string>\",\n \"division_name\": \"<string>\"\n },\n \"game_config_overrides\": {},\n \"game_config_overlay_secret\": \"<string>\",\n \"state\": {\n \"scope\": \"player\",\n \"participants\": [\n {\n \"player_id\": \"<string>\"\n }\n ]\n },\n \"included_players\": [\n \"<string>\"\n ],\n \"excluded_players\": [\n \"<string>\"\n ],\n \"num_episodes\": 1,\n \"notes\": \"<string>\",\n \"execution_backend\": \"k8s\",\n \"reporters\": [\n {\n \"reporter\": {\n \"reporter_version_id\": \"<string>\",\n \"kind\": \"version\"\n },\n \"params\": {},\n \"limits\": {\n \"memory_mib\": 1,\n \"guest_cpu_seconds\": 1,\n \"wall_clock_seconds\": 1,\n \"scratch_mib\": 1,\n \"tool_calls\": 1,\n \"llm_usd\": 1,\n \"artifact_read_mib\": 1,\n \"output_mib\": 1\n },\n \"dependencies\": [\n {\n \"reporter\": {\n \"reporter_version_id\": \"<string>\",\n \"kind\": \"version\"\n },\n \"params\": {},\n \"limits\": {\n \"memory_mib\": 1,\n \"guest_cpu_seconds\": 1,\n \"wall_clock_seconds\": 1,\n \"scratch_mib\": 1,\n \"tool_calls\": 1,\n \"llm_usd\": 1,\n \"artifact_read_mib\": 1,\n \"output_mib\": 1\n },\n \"reuse\": {\n \"completed\": true,\n \"max_age_seconds\": 1,\n \"in_flight\": true\n },\n \"dependencies\": [\n {}\n ]\n }\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"requester_user_id": "<string>",
"coworld_id": "<string>",
"coworld_name": "<string>",
"coworld_version": "<string>",
"variant_id": "<string>",
"status": "pending",
"episode_count": 123,
"pending_count": 123,
"submitted_count": 123,
"running_count": 123,
"completed_count": 123,
"failed_count": 123,
"error": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"started_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"episodes": [
{
"id": "<string>",
"requester_user_id": "<string>",
"status": "pending",
"policy_version_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"participants": [
{
"position": 123,
"policy_version_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"policy_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"policy_name": "<string>",
"version": 123,
"kind": "policy",
"player_id": "<string>",
"player_name": "<string>",
"is_filler": false,
"is_seed": false
}
],
"scores": [
{
"policy_version_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"score": 123
}
],
"created_at": "2023-11-07T05:31:56Z",
"round_id": "<string>",
"coworld_id": "<string>",
"coworld_name": "<string>",
"coworld_version": "<string>",
"variant_name": "<string>",
"max_steps": 123,
"job_index": 123,
"job_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"episode_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"replay_url": "<string>",
"live_url": "<string>",
"error_type": "<string>",
"error": "<string>",
"failed_policy_index": 123,
"failed_agent_index": 123,
"participant_scores": [
{
"position": 1,
"score": 123
}
],
"dispatched_at": "2023-11-07T05:31:56Z",
"running_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"cost_usd": 123,
"game_config": {}
}
],
"requester": "<string>",
"requested": {},
"cost_preview": {
"estimated_cost_credits": 123,
"player_pod_llm_spend_limit_usd": 123
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
Bearer token issued by Softmax
Body
One participant per seat.
Show child attributes
Show child attributes
5 - 200Restrict the XP and its derived episodes and artifacts to the requester.
openrouter, bedrock Direct Coworld target.
^cow_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$Direct Coworld variant.
Direct Coworld target or league/division selector.
Show child attributes
Show child attributes
Shallow game config override validated against the resolved Coworld schema.
Coworld-owner-published private coworld.game_config_overlay.v1 object to merge before public overrides.
^[A-Za-z0-9][A-Za-z0-9_.-]{0,127}$Typed game-owned state selection. Omit it for the Coworld's normal new-state start; head selects live mutable state and snapshot selects an immutable checkpoint.
Show child attributes
Show child attributes
If non-empty, restrict the top_n/random champion pool to only these players, as player IDs ('ply_...') or player names. Players named by policy_ref roster seats are always included. Entries that match no player are ignored.
Players to drop from the top_n/random champion pool entirely, as player IDs ('ply_...') or player names. Excluded players never appear in the pool, even after it regenerates mid-episode. Entries that match no player are ignored. Applied after included_players.
1 <= x <= 1001000"k8s"Reporter bindings to run over this request's episodes after completion. Each binding may include an optional dependency graph; runs are billed to the requester.
10Show child attributes
Show child attributes
Response
Successful Response
pending, submitted, running, completed, failed, cancelled Show child attributes
Show child attributes
Cost expectations for a just-created experience request (spec 0080 §3).
Show child attributes
Show child attributes