curl --request GET \
--url https://app.traceroot.ai/api/v1/public/evaluation-runs/{run_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.traceroot.ai/api/v1/public/evaluation-runs/{run_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.traceroot.ai/api/v1/public/evaluation-runs/{run_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://app.traceroot.ai/api/v1/public/evaluation-runs/{run_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://app.traceroot.ai/api/v1/public/evaluation-runs/{run_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://app.traceroot.ai/api/v1/public/evaluation-runs/{run_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.traceroot.ai/api/v1/public/evaluation-runs/{run_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{
"candidate_version": "<string>",
"dataset_id": "<string>",
"dataset_version_id": "<string>",
"environment": "<string>",
"errored_count": 4503599627370495,
"evaluation_id": "<string>",
"evaluation_name": "<string>",
"evaluation_run_id": "<string>",
"failed_count": 4503599627370495,
"not_scored_count": 4503599627370495,
"passed_count": 4503599627370495,
"result_count": 4503599627370495,
"run_number": 123,
"run_path": "<string>",
"run_url": "<string>",
"scored_count": 4503599627370495,
"scorer_error_count": 4503599627370495,
"started_at": "<string>",
"status": "running",
"task_error_count": 4503599627370495,
"completed_at": "<string>",
"evaluation_key": "<string>",
"metrics": [
{
"direction": "higher_is_better",
"name": "<string>",
"observed_count": 4503599627370495,
"value_type": "numeric",
"unit": "$",
"value": 123
}
],
"scores": [
{
"direction": "higher_is_better",
"name": "<string>",
"observed_count": 4503599627370495,
"value_type": "numeric",
"unit": "$",
"value": 123
}
]
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}Read an evaluation run's summary
Read a run’s own summary: status, result counts, and per-score and per-metric means over the run’s results.
Typed rather than left to the catch-all so it appears in the published OpenAPI: an endpoint a CLI is expected to call must be in the contract the CLI generates from. Summary only, so the response is bounded by scorer count rather than case count.
Comparing two runs is not part of this read. It is a different question with its own trust rules, and an optional parameter here would be too easily confused with the baseline a run stores at registration.
curl --request GET \
--url https://app.traceroot.ai/api/v1/public/evaluation-runs/{run_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.traceroot.ai/api/v1/public/evaluation-runs/{run_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.traceroot.ai/api/v1/public/evaluation-runs/{run_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://app.traceroot.ai/api/v1/public/evaluation-runs/{run_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://app.traceroot.ai/api/v1/public/evaluation-runs/{run_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://app.traceroot.ai/api/v1/public/evaluation-runs/{run_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.traceroot.ai/api/v1/public/evaluation-runs/{run_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{
"candidate_version": "<string>",
"dataset_id": "<string>",
"dataset_version_id": "<string>",
"environment": "<string>",
"errored_count": 4503599627370495,
"evaluation_id": "<string>",
"evaluation_name": "<string>",
"evaluation_run_id": "<string>",
"failed_count": 4503599627370495,
"not_scored_count": 4503599627370495,
"passed_count": 4503599627370495,
"result_count": 4503599627370495,
"run_number": 123,
"run_path": "<string>",
"run_url": "<string>",
"scored_count": 4503599627370495,
"scorer_error_count": 4503599627370495,
"started_at": "<string>",
"status": "running",
"task_error_count": 4503599627370495,
"completed_at": "<string>",
"evaluation_key": "<string>",
"metrics": [
{
"direction": "higher_is_better",
"name": "<string>",
"observed_count": 4503599627370495,
"value_type": "numeric",
"unit": "$",
"value": 123
}
],
"scores": [
{
"direction": "higher_is_better",
"name": "<string>",
"observed_count": 4503599627370495,
"value_type": "numeric",
"unit": "$",
"value": 123
}
]
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Query Parameters
Target project for the request. Required when authenticating with a user session token (a user credential is only meaningful scoped to a project); for an API key it is optional and, if given, must match the key's project.
Response
Successful Response
A run's SUMMARY — deliberately no per-case rows, so the payload is bounded by scorer count rather than case count and needs no truncation flag.
0 <= x <= 90071992547409910 <= x <= 90071992547409910 <= x <= 90071992547409910 <= x <= 90071992547409910 <= x <= 90071992547409910 <= x <= 90071992547409910 <= x <= 9007199254740991running, completed, completed_with_errors, failed, incomplete, cancelled 0 <= x <= 9007199254740991Show child attributes
Show child attributes
Show child attributes
Show child attributes

