curl --request GET \
--url https://softmax.com/api/observatory/v2/experience-requests/{experience_request_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://softmax.com/api/observatory/v2/experience-requests/{experience_request_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/experience-requests/{experience_request_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/experience-requests/{experience_request_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/experience-requests/{experience_request_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/experience-requests/{experience_request_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://softmax.com/api/observatory/v2/experience-requests/{experience_request_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>",
"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>",
"can_cancel": false,
"requested": {},
"cost_preview": {
"estimated_cost_credits": 123,
"player_pod_llm_spend_limit_usd": 123
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Get experience request
Returns one Experience Request with its target, child episodes, and current status.
curl --request GET \
--url https://softmax.com/api/observatory/v2/experience-requests/{experience_request_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://softmax.com/api/observatory/v2/experience-requests/{experience_request_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/experience-requests/{experience_request_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/experience-requests/{experience_request_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/experience-requests/{experience_request_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/experience-requests/{experience_request_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://softmax.com/api/observatory/v2/experience-requests/{experience_request_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>",
"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>",
"can_cancel": false,
"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
Path Parameters
Experience Request to return.
^xreq_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$Response
Successful Response
Experience request ID.
User who created the experience request.
Coworld used by the requested episodes.
Name of the Coworld used by the requested episodes.
Coworld version used by the requested episodes.
Coworld variant, or null when no variant was selected.
Current state of the experience request.
pending, submitted, running, completed, failed, cancelled Total episodes created for the request.
Episodes waiting to be submitted for execution.
Episodes submitted for execution but not yet running.
Episodes currently running.
Episodes that completed successfully.
Episodes that failed.
Request-level failure message, or null when none was recorded.
Time when the experience request was created.
Time when execution began, or null until it starts.
Time when execution finished, or null until it finishes.
Episode requests created by this experience request.
Show child attributes
Show child attributes
Display name of the requester.
Whether the caller can cancel this experience request.
Original purpose and roster request.
Admission-time cost estimate, present only in the create response.
Show child attributes
Show child attributes