Poll a job (returns job.json verbatim)
Serves the job’s job.json byte-for-byte, it is the single state
store, updated after every training generation and every stage
transition, so this endpoint doubles as live progress.
curl --request GET \
--url https://api.alakazam.gg/train/jobs/{job_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.alakazam.gg/train/jobs/{job_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.alakazam.gg/train/jobs/{job_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://api.alakazam.gg/train/jobs/{job_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://api.alakazam.gg/train/jobs/{job_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://api.alakazam.gg/train/jobs/{job_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.alakazam.gg/train/jobs/{job_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{
"job_id": "<string>",
"params": {
"job_id": "<string>",
"train": {
"pop": 123,
"gens": 123,
"T": 123,
"seed": 123,
"parent": {
"genome6": [
123
],
"job_id": "<string>",
"note": "<string>"
}
},
"exam": {
"episodes": 123
},
"policy": {
"format": "genome9",
"genome9": [
123
],
"module_b64": "<string>",
"entry": "<string>",
"class": "<string>"
}
},
"status": "running",
"started": "2023-11-07T05:31:56Z",
"stages": {
"train": {
"status": "running",
"started": "2023-11-07T05:31:56Z",
"finished": "2023-11-07T05:31:56Z",
"wall_s": 123
},
"exam": {
"status": "running",
"started": "2023-11-07T05:31:56Z",
"finished": "2023-11-07T05:31:56Z",
"wall_s": 123,
"contract": {
"DISC": "<string>",
"CTRL": "<string>",
"RANGE": "<string>",
"GATE3_PROX_MAP": "<string>",
"EPS": 123
}
}
},
"per_gen": [
{
"gen": 123,
"best": 123,
"mean": 123,
"best_so_far": 123,
"gen_wall_s": 123,
"rss_mb": 123
}
],
"finished": "2023-11-07T05:31:56Z",
"restarted_from": "2023-11-07T05:31:56Z",
"parent": {
"source": "inline",
"genome6": [
123
],
"job_id": "<string>",
"parent_dream_F": 123,
"note": "<string>"
},
"genome6": [
123
],
"genome9": [
123
],
"dream_F": 123,
"oracle": {
"verdict": {
"pass": true,
"why": [
"<string>"
]
},
"worlds": {
"arena": {
"episodes": [
{
"ep": 123,
"contacts": 123,
"min_clear": 123,
"p5_clear": 123,
"frac_ge_5cm": 123,
"path_len": 123,
"steps": 123,
"webots_phi": 123,
"mean_imax": 123
}
],
"summary": {
"n_eps": 123,
"contacts_total": 123,
"min_clear": 123,
"worst_frac_ge_5cm": 123,
"path_min": 123,
"path_mean": 123,
"cruiser_contacts": 123
}
},
"slalom": {
"episodes": [
{
"ep": 123,
"contacts": 123,
"min_clear": 123,
"p5_clear": 123,
"frac_ge_5cm": 123,
"path_len": 123,
"steps": 123,
"webots_phi": 123,
"mean_imax": 123
}
],
"summary": {
"n_eps": 123,
"contacts_total": 123,
"min_clear": 123,
"worst_frac_ge_5cm": 123,
"path_min": 123,
"path_mean": 123,
"cruiser_contacts": 123
}
}
},
"contract": {
"DISC": "<string>",
"CTRL": "<string>",
"RANGE": "<string>",
"GATE3_PROX_MAP": "<string>",
"EPS": 123
}
},
"artifact_paths": {}
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}Authorizations
Single per-partner bearer key, provisioned by Alakazam.
Path Parameters
^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$Response
Current job state (complete when status is done).
The job.json state document (single source of truth, atomic writes).
Show child attributes
Show child attributes
running, done, failed Show child attributes
Show child attributes
One record per completed training generation (streamed live).
Show child attributes
Show child attributes
Present when the job process was restarted (prior per-gen records kept).
Show child attributes
Show child attributes
Champion in compact 6-float form (null until training completes).
Champion expanded to the 9-float controller form the oracle consumes.
Champion dream fitness, NOT a capability claim; the oracle is the scoreboard.
Show child attributes
Show child attributes
Server-side artifact locations (raw episode jsonls, verdict, logs).
curl --request GET \
--url https://api.alakazam.gg/train/jobs/{job_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.alakazam.gg/train/jobs/{job_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.alakazam.gg/train/jobs/{job_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://api.alakazam.gg/train/jobs/{job_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://api.alakazam.gg/train/jobs/{job_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://api.alakazam.gg/train/jobs/{job_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.alakazam.gg/train/jobs/{job_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{
"job_id": "<string>",
"params": {
"job_id": "<string>",
"train": {
"pop": 123,
"gens": 123,
"T": 123,
"seed": 123,
"parent": {
"genome6": [
123
],
"job_id": "<string>",
"note": "<string>"
}
},
"exam": {
"episodes": 123
},
"policy": {
"format": "genome9",
"genome9": [
123
],
"module_b64": "<string>",
"entry": "<string>",
"class": "<string>"
}
},
"status": "running",
"started": "2023-11-07T05:31:56Z",
"stages": {
"train": {
"status": "running",
"started": "2023-11-07T05:31:56Z",
"finished": "2023-11-07T05:31:56Z",
"wall_s": 123
},
"exam": {
"status": "running",
"started": "2023-11-07T05:31:56Z",
"finished": "2023-11-07T05:31:56Z",
"wall_s": 123,
"contract": {
"DISC": "<string>",
"CTRL": "<string>",
"RANGE": "<string>",
"GATE3_PROX_MAP": "<string>",
"EPS": 123
}
}
},
"per_gen": [
{
"gen": 123,
"best": 123,
"mean": 123,
"best_so_far": 123,
"gen_wall_s": 123,
"rss_mb": 123
}
],
"finished": "2023-11-07T05:31:56Z",
"restarted_from": "2023-11-07T05:31:56Z",
"parent": {
"source": "inline",
"genome6": [
123
],
"job_id": "<string>",
"parent_dream_F": 123,
"note": "<string>"
},
"genome6": [
123
],
"genome9": [
123
],
"dream_F": 123,
"oracle": {
"verdict": {
"pass": true,
"why": [
"<string>"
]
},
"worlds": {
"arena": {
"episodes": [
{
"ep": 123,
"contacts": 123,
"min_clear": 123,
"p5_clear": 123,
"frac_ge_5cm": 123,
"path_len": 123,
"steps": 123,
"webots_phi": 123,
"mean_imax": 123
}
],
"summary": {
"n_eps": 123,
"contacts_total": 123,
"min_clear": 123,
"worst_frac_ge_5cm": 123,
"path_min": 123,
"path_mean": 123,
"cruiser_contacts": 123
}
},
"slalom": {
"episodes": [
{
"ep": 123,
"contacts": 123,
"min_clear": 123,
"p5_clear": 123,
"frac_ge_5cm": 123,
"path_len": 123,
"steps": 123,
"webots_phi": 123,
"mean_imax": 123
}
],
"summary": {
"n_eps": 123,
"contacts_total": 123,
"min_clear": 123,
"worst_frac_ge_5cm": 123,
"path_min": 123,
"path_mean": 123,
"cruiser_contacts": 123
}
}
},
"contract": {
"DISC": "<string>",
"CTRL": "<string>",
"RANGE": "<string>",
"GATE3_PROX_MAP": "<string>",
"EPS": 123
}
},
"artifact_paths": {}
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}
