List evaluation runs
curl --request GET \
--url https://api.recursion.labelbox.com/managed-agents/v1/evaluation-runs \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.recursion.labelbox.com/managed-agents/v1/evaluation-runs"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.recursion.labelbox.com/managed-agents/v1/evaluation-runs', 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.recursion.labelbox.com/managed-agents/v1/evaluation-runs",
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.recursion.labelbox.com/managed-agents/v1/evaluation-runs"
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.recursion.labelbox.com/managed-agents/v1/evaluation-runs")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.recursion.labelbox.com/managed-agents/v1/evaluation-runs")
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{
"evaluation_runs": [
{
"created_at": "2026-02-18T09:30:00.000Z",
"evaluator_agent_id": "9f8b1c2d-3e4f-5a6b-7c8d-9e0f1a2b3c4d",
"evaluator_agent_version_id": "9f8b1c2d-3e4f-5a6b-7c8d-9e0f1a2b3c4d",
"execution_state": "provisioning",
"fail_count": 1,
"not_applicable_count": 1,
"pass_count": 1,
"run_session_id": "9f8b1c2d-3e4f-5a6b-7c8d-9e0f1a2b3c4d",
"status": "active",
"targets_total": 1,
"updated_at": "2026-02-18T09:30:00.000Z",
"verdicts_total": 1
}
],
"next_page_token": "example"
}{
"code": "analytics",
"message": "<string>",
"details": {}
}{
"code": "analytics",
"message": "<string>",
"details": {}
}{
"code": "forbidden",
"message": "<string>",
"details": {}
}{
"code": "analytics",
"message": "<string>",
"details": {}
}{
"code": "analytics",
"message": "<string>",
"details": {}
}{
"code": "bad_gateway",
"message": "<string>",
"details": {}
}{
"code": "analytics",
"message": "<string>",
"details": {}
}{
"code": "gateway_timeout",
"message": "<string>",
"details": {}
}Evaluations
List evaluation runs
Returns evaluation runs newest first, including active runs and failed runs with no verdicts. Each run’s target and verdict counts are read at one consistent point in time.
GET
/
managed-agents
/
v1
/
evaluation-runs
List evaluation runs
curl --request GET \
--url https://api.recursion.labelbox.com/managed-agents/v1/evaluation-runs \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.recursion.labelbox.com/managed-agents/v1/evaluation-runs"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.recursion.labelbox.com/managed-agents/v1/evaluation-runs', 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.recursion.labelbox.com/managed-agents/v1/evaluation-runs",
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.recursion.labelbox.com/managed-agents/v1/evaluation-runs"
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.recursion.labelbox.com/managed-agents/v1/evaluation-runs")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.recursion.labelbox.com/managed-agents/v1/evaluation-runs")
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{
"evaluation_runs": [
{
"created_at": "2026-02-18T09:30:00.000Z",
"evaluator_agent_id": "9f8b1c2d-3e4f-5a6b-7c8d-9e0f1a2b3c4d",
"evaluator_agent_version_id": "9f8b1c2d-3e4f-5a6b-7c8d-9e0f1a2b3c4d",
"execution_state": "provisioning",
"fail_count": 1,
"not_applicable_count": 1,
"pass_count": 1,
"run_session_id": "9f8b1c2d-3e4f-5a6b-7c8d-9e0f1a2b3c4d",
"status": "active",
"targets_total": 1,
"updated_at": "2026-02-18T09:30:00.000Z",
"verdicts_total": 1
}
],
"next_page_token": "example"
}{
"code": "analytics",
"message": "<string>",
"details": {}
}{
"code": "analytics",
"message": "<string>",
"details": {}
}{
"code": "forbidden",
"message": "<string>",
"details": {}
}{
"code": "analytics",
"message": "<string>",
"details": {}
}{
"code": "analytics",
"message": "<string>",
"details": {}
}{
"code": "bad_gateway",
"message": "<string>",
"details": {}
}{
"code": "analytics",
"message": "<string>",
"details": {}
}{
"code": "gateway_timeout",
"message": "<string>",
"details": {}
}Authorizations
A Recursion API key, created in the console under API keys.
Query Parameters
Maximum runs to return. Defaults to 50.
Required range:
1 <= x <= 100Opaque signed continuation from next_page_token. It is bound to this organization and effective limit and expires after one hour.
Response
One page of organization-scoped evaluation-run summaries and an optional continuation.
One page of organization-scoped evaluation-run summaries and an optional continuation.