Get Eval Run
curl --request GET \
--url https://api.bland.ai/v1/evals/runs/{run_id} \
--header 'authorization: <authorization>'import requests
url = "https://api.bland.ai/v1/evals/runs/{run_id}"
headers = {"authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {authorization: '<authorization>'}};
fetch('https://api.bland.ai/v1/evals/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://api.bland.ai/v1/evals/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: <authorization>"
],
]);
$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.bland.ai/v1/evals/runs/{run_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("authorization", "<authorization>")
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.bland.ai/v1/evals/runs/{run_id}")
.header("authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bland.ai/v1/evals/runs/{run_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"data": {
"id": "e5f6a7b8-c9d0-1234-efab-345678901234",
"org_id": "f6a7b8c9-d0e1-2345-fabc-456789012345",
"status": "COMPLETE",
"triggered_by": "manual",
"run_mode": "text",
"submitted_call_ids": [
"a1b2c3d4-0000-0000-0000-000000000001",
"a1b2c3d4-0000-0000-0000-000000000002"
],
"submitted_attached_agents": [
{
"eval_agent_id": "11111111-aaaa-bbbb-cccc-dddddddddddd",
"eval_agent_version_id": "22222222-aaaa-bbbb-cccc-dddddddddddd",
"weight": 100,
"target_level_keys": ["pass"]
}
],
"workbench_setup_id": null,
"workbench_setup_version_id": null,
"resolved_call_count": 2,
"resolved_agent_count": 1,
"resolved_atom_count": 2,
"completed_atom_count": 2,
"summary": {
"overall_score_mean": 91.5,
"text_score_mean": 91.5,
"audio_score_mean": null,
"successful_call_count": 2,
"failed_call_count": 0,
"insufficient_evidence_count": 0,
"target_match_count": 2,
"pass_threshold_pct": 80,
"overall_pass": true
},
"billable_cost_usd": 0.04,
"error_code": null,
"error_message": null,
"workflow_id": null,
"metadata": {},
"created_at": "2026-05-27T10:00:00.000Z",
"started_at": "2026-05-27T10:00:05.000Z",
"completed_at": "2026-05-27T10:01:12.000Z"
},
"errors": null
}
Experiments
Get Eval Run
Fetch one eval run and its current status and summary.
GET
/
v1
/
evals
/
runs
/
{run_id}
Get Eval Run
curl --request GET \
--url https://api.bland.ai/v1/evals/runs/{run_id} \
--header 'authorization: <authorization>'import requests
url = "https://api.bland.ai/v1/evals/runs/{run_id}"
headers = {"authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {authorization: '<authorization>'}};
fetch('https://api.bland.ai/v1/evals/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://api.bland.ai/v1/evals/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: <authorization>"
],
]);
$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.bland.ai/v1/evals/runs/{run_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("authorization", "<authorization>")
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.bland.ai/v1/evals/runs/{run_id}")
.header("authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bland.ai/v1/evals/runs/{run_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"data": {
"id": "e5f6a7b8-c9d0-1234-efab-345678901234",
"org_id": "f6a7b8c9-d0e1-2345-fabc-456789012345",
"status": "COMPLETE",
"triggered_by": "manual",
"run_mode": "text",
"submitted_call_ids": [
"a1b2c3d4-0000-0000-0000-000000000001",
"a1b2c3d4-0000-0000-0000-000000000002"
],
"submitted_attached_agents": [
{
"eval_agent_id": "11111111-aaaa-bbbb-cccc-dddddddddddd",
"eval_agent_version_id": "22222222-aaaa-bbbb-cccc-dddddddddddd",
"weight": 100,
"target_level_keys": ["pass"]
}
],
"workbench_setup_id": null,
"workbench_setup_version_id": null,
"resolved_call_count": 2,
"resolved_agent_count": 1,
"resolved_atom_count": 2,
"completed_atom_count": 2,
"summary": {
"overall_score_mean": 91.5,
"text_score_mean": 91.5,
"audio_score_mean": null,
"successful_call_count": 2,
"failed_call_count": 0,
"insufficient_evidence_count": 0,
"target_match_count": 2,
"pass_threshold_pct": 80,
"overall_pass": true
},
"billable_cost_usd": 0.04,
"error_code": null,
"error_message": null,
"workflow_id": null,
"metadata": {},
"created_at": "2026-05-27T10:00:00.000Z",
"started_at": "2026-05-27T10:00:05.000Z",
"completed_at": "2026-05-27T10:01:12.000Z"
},
"errors": null
}
Headers
string
required
Your API key for authentication.
Path Parameters
string
required
The ID of the eval run to retrieve.
Response
string
Unique identifier for the eval run.
string
The organization that owns this run.
string
Current status. One of
PENDING, QUEUED, RUNNING, COMPLETE, PARTIAL, FAILED, CANCELLED.string
How the run was triggered. One of
manual, auto, backfill.string
The scoring modality. One of
text, audio, full.array of string
The call IDs submitted for scoring.
array of objects
The agent attachments submitted with the run. Each object contains
eval_agent_id, eval_agent_version_id, weight, and target_level_keys.string or null
The associated workbench setup, if any.
string or null
The pinned workbench setup version, if any.
integer
Number of calls resolved for the run.
integer
Number of eval agents resolved for the run.
integer
Total call-by-agent evaluations in the run.
integer
Number of evaluations completed so far.
object or null
Aggregate scoring summary, or
null if not yet available.Show Summary fields
Show Summary fields
number or null
Mean overall score across all completed evaluations, normalized 0-100.
number or null
Mean text-modality score, normalized 0-100.
number or null
Mean audio-modality score, normalized 0-100.
integer
Number of calls graded successfully.
integer
Number of calls that failed to grade.
integer
Number of evaluations where evidence was insufficient to produce a verdict.
integer
Number of evaluations where the selected level matched a target level.
number or null
The pass threshold configured for the run, 0-100.
boolean or null
Whether the run met its pass threshold, or
null if no threshold was set.number or null
Billable cost for this run in USD, or
null if not yet finalized.string or null
Error code if the run failed, otherwise
null.string or null
Human-readable error message if the run failed, otherwise
null.string or null
Internal workflow identifier, if applicable.
object
Key-value metadata attached to the run.
string
ISO 8601 timestamp when the run was created.
string or null
ISO 8601 timestamp when the run started, or
null if not yet started.string or null
ISO 8601 timestamp when the run completed, or
null if not yet complete.{
"data": {
"id": "e5f6a7b8-c9d0-1234-efab-345678901234",
"org_id": "f6a7b8c9-d0e1-2345-fabc-456789012345",
"status": "COMPLETE",
"triggered_by": "manual",
"run_mode": "text",
"submitted_call_ids": [
"a1b2c3d4-0000-0000-0000-000000000001",
"a1b2c3d4-0000-0000-0000-000000000002"
],
"submitted_attached_agents": [
{
"eval_agent_id": "11111111-aaaa-bbbb-cccc-dddddddddddd",
"eval_agent_version_id": "22222222-aaaa-bbbb-cccc-dddddddddddd",
"weight": 100,
"target_level_keys": ["pass"]
}
],
"workbench_setup_id": null,
"workbench_setup_version_id": null,
"resolved_call_count": 2,
"resolved_agent_count": 1,
"resolved_atom_count": 2,
"completed_atom_count": 2,
"summary": {
"overall_score_mean": 91.5,
"text_score_mean": 91.5,
"audio_score_mean": null,
"successful_call_count": 2,
"failed_call_count": 0,
"insufficient_evidence_count": 0,
"target_match_count": 2,
"pass_threshold_pct": 80,
"overall_pass": true
},
"billable_cost_usd": 0.04,
"error_code": null,
"error_message": null,
"workflow_id": null,
"metadata": {},
"created_at": "2026-05-27T10:00:00.000Z",
"started_at": "2026-05-27T10:00:05.000Z",
"completed_at": "2026-05-27T10:01:12.000Z"
},
"errors": null
}
Was this page helpful?