curl --request GET \
--url https://api.example.com/api/v1/burn-in/test-executions/{id}/ \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.example.com/api/v1/burn-in/test-executions/{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.example.com/api/v1/burn-in/test-executions/{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.example.com/api/v1/burn-in/test-executions/{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.example.com/api/v1/burn-in/test-executions/{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.example.com/api/v1/burn-in/test-executions/{id}/")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/burn-in/test-executions/{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": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"job": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"test_slug": "multi-node.hello-world",
"stage": "single_node",
"status": "completed",
"execution_mode": "qualifying",
"freshness": "current",
"metrics": [
{
"name": "<string>",
"value": 123,
"unit": "<string>",
"evaluation": {
"passed": true,
"threshold": 123,
"comparator": "gt"
},
"statistics": {
"mean": {
"value": 123,
"evaluation": {
"passed": true,
"threshold": 123,
"comparator": "gt"
}
},
"min": {
"value": 123,
"evaluation": {
"passed": true,
"threshold": 123,
"comparator": "gt"
}
},
"max": {
"value": 123,
"evaluation": {
"passed": true,
"threshold": 123,
"comparator": "gt"
}
},
"median": {
"value": 123,
"evaluation": {
"passed": true,
"threshold": 123,
"comparator": "gt"
}
},
"stdev": {
"value": 123,
"evaluation": {
"passed": true,
"threshold": 123,
"comparator": "gt"
}
}
},
"detail": "<string>",
"reason": "<string>"
}
],
"marked_stale_at": "2023-11-07T05:31:56Z",
"active_stale_holds": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"source": "manual",
"operation_slug": "<string>",
"operation_label": "<string>",
"note": "<string>",
"created_by_display_name": "<string>",
"created_at": "2023-11-07T05:31:56Z"
}
],
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"links": {
"self": "<string>",
"collection": "<string>",
"job": "<string>",
"cohort": "<string>"
},
"job_name": "<string>",
"cohort_device_names": [
"<string>"
],
"cohort_hostlist": "<string>",
"cohort_size": 123,
"evaluation": {
"passed": true,
"reason": "<string>"
},
"device_diagnostics": [
{
"device_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"device_name": "<string>",
"failure_code": "UNMAPPED_APPLICATION_ERROR",
"failure_message": "<string>",
"ai_diagnosis": {
"headline": "<string>",
"explanation": "<string>"
}
}
],
"cohort": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"resolved_params": {},
"iteration_summary": {
"requested": 123,
"completed": 123,
"failed": 123,
"completed_iterations": [
123
]
},
"error_details": {
"message": "<string>",
"debug_bundle_s3_uri": "<string>",
"slurm_job_id": 1073741823
},
"nic_metrics": "<unknown>",
"artifact_uri": "<string>",
"started_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"slurm_job_id": 1073741823
}{
"detail": "<string>",
"code": "error",
"field_errors": [
{
"field": "<string>",
"messages": [
"<string>"
]
}
]
}{
"detail": "<string>",
"code": "error",
"field_errors": [
{
"field": "<string>",
"messages": [
"<string>"
]
}
]
}{
"detail": "<string>",
"code": "error",
"field_errors": [
{
"field": "<string>",
"messages": [
"<string>"
]
}
]
}Get test execution
List, retrieve, create (bulk), and update test executions.
Bulk creation is idempotent on (cohort, test_slug, resolved_params): existing rows are returned unchanged, never updated in place. Terminal writes materialise the row’s evaluation in the same transaction as the evidence. Updates go through update/partial_update, which invalidate and re-materialise the evaluation when evaluator inputs change.
curl --request GET \
--url https://api.example.com/api/v1/burn-in/test-executions/{id}/ \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.example.com/api/v1/burn-in/test-executions/{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.example.com/api/v1/burn-in/test-executions/{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.example.com/api/v1/burn-in/test-executions/{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.example.com/api/v1/burn-in/test-executions/{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.example.com/api/v1/burn-in/test-executions/{id}/")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/burn-in/test-executions/{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": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"job": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"test_slug": "multi-node.hello-world",
"stage": "single_node",
"status": "completed",
"execution_mode": "qualifying",
"freshness": "current",
"metrics": [
{
"name": "<string>",
"value": 123,
"unit": "<string>",
"evaluation": {
"passed": true,
"threshold": 123,
"comparator": "gt"
},
"statistics": {
"mean": {
"value": 123,
"evaluation": {
"passed": true,
"threshold": 123,
"comparator": "gt"
}
},
"min": {
"value": 123,
"evaluation": {
"passed": true,
"threshold": 123,
"comparator": "gt"
}
},
"max": {
"value": 123,
"evaluation": {
"passed": true,
"threshold": 123,
"comparator": "gt"
}
},
"median": {
"value": 123,
"evaluation": {
"passed": true,
"threshold": 123,
"comparator": "gt"
}
},
"stdev": {
"value": 123,
"evaluation": {
"passed": true,
"threshold": 123,
"comparator": "gt"
}
}
},
"detail": "<string>",
"reason": "<string>"
}
],
"marked_stale_at": "2023-11-07T05:31:56Z",
"active_stale_holds": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"source": "manual",
"operation_slug": "<string>",
"operation_label": "<string>",
"note": "<string>",
"created_by_display_name": "<string>",
"created_at": "2023-11-07T05:31:56Z"
}
],
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"links": {
"self": "<string>",
"collection": "<string>",
"job": "<string>",
"cohort": "<string>"
},
"job_name": "<string>",
"cohort_device_names": [
"<string>"
],
"cohort_hostlist": "<string>",
"cohort_size": 123,
"evaluation": {
"passed": true,
"reason": "<string>"
},
"device_diagnostics": [
{
"device_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"device_name": "<string>",
"failure_code": "UNMAPPED_APPLICATION_ERROR",
"failure_message": "<string>",
"ai_diagnosis": {
"headline": "<string>",
"explanation": "<string>"
}
}
],
"cohort": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"resolved_params": {},
"iteration_summary": {
"requested": 123,
"completed": 123,
"failed": 123,
"completed_iterations": [
123
]
},
"error_details": {
"message": "<string>",
"debug_bundle_s3_uri": "<string>",
"slurm_job_id": 1073741823
},
"nic_metrics": "<unknown>",
"artifact_uri": "<string>",
"started_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"slurm_job_id": 1073741823
}{
"detail": "<string>",
"code": "error",
"field_errors": [
{
"field": "<string>",
"messages": [
"<string>"
]
}
]
}{
"detail": "<string>",
"code": "error",
"field_errors": [
{
"field": "<string>",
"messages": [
"<string>"
]
}
]
}{
"detail": "<string>",
"code": "error",
"field_errors": [
{
"field": "<string>",
"messages": [
"<string>"
]
}
]
}Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Path Parameters
A UUID string identifying this test execution.
Response
Read serializer for TestExecution responses.
Overrides metrics to return EvaluatedMetric[] (consistent with
summary/history endpoints) and adds evaluation from context.
Exposes per-device diagnostics from JobDeviceStatus on device_diagnostics.
Denormalized from cohort for efficient job-level queries
multi-node.hello-world- multi-node.hello-worldmulti-node.iperf-matrix- multi-node.iperf-matrixmulti-node.nccl-all-gather- multi-node.nccl-all-gathermulti-node.nccl-all-reduce- multi-node.nccl-all-reducemulti-node.nccl-all-reduce-multi-rack- multi-node.nccl-all-reduce-multi-rackmulti-node.nccl-all-to-all- multi-node.nccl-all-to-allmulti-node.nvloom- multi-node.nvloommulti-node.pairwise-net-gpu.bw- multi-node.pairwise-net-gpu.bwmulti-node.pairwise-net-gpu.lat- multi-node.pairwise-net-gpu.latmulti-node.pairwise-net.bw- multi-node.pairwise-net.bwmulti-node.pairwise-net.lat- multi-node.pairwise-net.latmulti-node.s3-elbencho- multi-node.s3-elbenchomulti-node.storage-elbencho- multi-node.storage-elbenchomulti-node.training-gpt-oss-120b- multi-node.training-gpt-oss-120bmulti-node.training-llama3-1-405b- multi-node.training-llama3-1-405bmulti-node.training-llama3-70b- multi-node.training-llama3-70bmulti-node.training-nemotron-24x2h- multi-node.training-nemotron-24x2hmulti-node.training-nemotron-checkpoint- multi-node.training-nemotron-checkpointmulti-node.training-nemotron-h- multi-node.training-nemotron-hmulti-node.training-nemotron-h-multi-rack- multi-node.training-nemotron-h-multi-rackmulti-node.training-qwen3-235b- multi-node.training-qwen3-235bsingle-node.babelstream- single-node.babelstreamsingle-node.dcgmi-diag- single-node.dcgmi-diagsingle-node.gpu-fryer- single-node.gpu-fryersingle-node.hello-world- single-node.hello-worldsingle-node.hpl-cpu- single-node.hpl-cpusingle-node.hpl-gpu- single-node.hpl-gpusingle-node.lmbench-lat-mem-rd- single-node.lmbench-lat-mem-rdsingle-node.memtester- single-node.memtestersingle-node.nccl-all-gather- single-node.nccl-all-gathersingle-node.nccl-all-reduce- single-node.nccl-all-reducesingle-node.nccl-all-reduce-loopback- single-node.nccl-all-reduce-loopbacksingle-node.nccl-all-to-all- single-node.nccl-all-to-allsingle-node.node-health-check- single-node.node-health-checksingle-node.nvme-fio- single-node.nvme-fiosingle-node.nvme-self-test- single-node.nvme-self-testsingle-node.storage-elbencho- single-node.storage-elbenchosingle-node.stream- single-node.streamsingle-node.stress-ng-cpu- single-node.stress-ng-cpusingle-node.training-llama3-8b- single-node.training-llama3-8bsingle-node.training-nemotronh-8b- single-node.training-nemotronh-8b
multi-node.hello-world, multi-node.iperf-matrix, multi-node.nccl-all-gather, multi-node.nccl-all-reduce, multi-node.nccl-all-reduce-multi-rack, multi-node.nccl-all-to-all, multi-node.nvloom, multi-node.pairwise-net-gpu.bw, multi-node.pairwise-net-gpu.lat, multi-node.pairwise-net.bw, multi-node.pairwise-net.lat, multi-node.s3-elbencho, multi-node.storage-elbencho, multi-node.training-gpt-oss-120b, multi-node.training-llama3-1-405b, multi-node.training-llama3-70b, multi-node.training-nemotron-24x2h, multi-node.training-nemotron-checkpoint, multi-node.training-nemotron-h, multi-node.training-nemotron-h-multi-rack, multi-node.training-qwen3-235b, single-node.babelstream, single-node.dcgmi-diag, single-node.gpu-fryer, single-node.hello-world, single-node.hpl-cpu, single-node.hpl-gpu, single-node.lmbench-lat-mem-rd, single-node.memtester, single-node.nccl-all-gather, single-node.nccl-all-reduce, single-node.nccl-all-reduce-loopback, single-node.nccl-all-to-all, single-node.node-health-check, single-node.nvme-fio, single-node.nvme-self-test, single-node.storage-elbencho, single-node.stream, single-node.stress-ng-cpu, single-node.training-llama3-8b, single-node.training-nemotronh-8b Test stage (denormalized from test_slug for efficient filtering)
single_node- Single Nodepairwise- Pairwisecollective- Collective
single_node, pairwise, collective Test execution status (must be set explicitly - no default)
completed- Completedpassed- Passedfailed- Failederror- Error
completed, passed, failed, error Evidence execution mode. Qualifying runs may count toward contractual acceptance; debug runs are diagnostic evidence only.
qualifying- Qualifyingdebug- Debug
qualifying, debug Evidence freshness for lifecycle-sensitive acceptance. Stale evidence remains queryable but cannot satisfy acceptance gates.
current- Currentstale- Stale
current, stale Show child attributes
Show child attributes
Timestamp this record first went stale since it was last fully fresh. Not touched by later holds stacking on top of an already-stale record; cleared only once every active TestExecutionStaleHold referencing this record has been undone. Freshness, not this timestamp, is the authoritative current/stale state.
Show child attributes
Show child attributes
Serializer for test execution links.
Show child attributes
Show child attributes
OpenAPI schema for test-level evaluation (passed, reason).
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Cohort UUID. Either cohort or device_ids must be provided.
Resolved test parameters that actually ran. The resolved params key is derived server-side from this JSON.
Show child attributes
Show child attributes
OpenAPI schema for iteration execution summary.
Show child attributes
Show child attributes
Structured error information for infrastructure failures (status=ERROR)
Show child attributes
Show child attributes
Per-NIC metrics for pairwise tests (list of per-NIC result dicts)
S3 URI to test artifacts (e.g., 's3://bucket/org/site/job/cohort/')
1000SLURM job ID for hardware test execution (burn-in workflows only)
0 <= x <= 2147483647