List Agent Snapshots
curl --request GET \
--url https://api.bland.ai/v1/evals/runs/{run_id}/agent-snapshots \
--header 'authorization: <authorization>'import requests
url = "https://api.bland.ai/v1/evals/runs/{run_id}/agent-snapshots"
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}/agent-snapshots', 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}/agent-snapshots",
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}/agent-snapshots"
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}/agent-snapshots")
.header("authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bland.ai/v1/evals/runs/{run_id}/agent-snapshots")
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": {
"object": "list",
"data": [
{
"id": "33333333-aaaa-bbbb-cccc-dddddddddddd",
"org_id": "f6a7b8c9-d0e1-2345-fabc-456789012345",
"eval_run_id": "e5f6a7b8-c9d0-1234-efab-345678901234",
"eval_agent_id": "11111111-aaaa-bbbb-cccc-dddddddddddd",
"eval_agent_version_id": "22222222-aaaa-bbbb-cccc-dddddddddddd",
"position": 0,
"key": "resolution_quality",
"name": "Resolution Quality",
"modality": "text",
"system_prompt_md": "You are an expert call quality analyst evaluating customer service interactions.",
"prompt_md": "Did the agent fully resolve the customer's issue without requiring a callback?",
"prompt_version": "v3.1.0",
"levels": [
{
"level_key": "pass",
"label": "Pass",
"prompt_md": "The agent resolved the issue completely and the customer confirmed satisfaction.",
"color": "#22c55e"
},
{
"level_key": "partial",
"label": "Partial",
"prompt_md": "The agent addressed the issue but the customer expressed some remaining concern.",
"color": "#f59e0b"
},
{
"level_key": "fail",
"label": "Fail",
"prompt_md": "The issue was not resolved or the customer was transferred unnecessarily.",
"color": "#ef4444"
}
],
"target_level_keys": ["pass"],
"weight": 100,
"created_at": "2026-05-27T10:00:00.000Z"
}
],
"has_more": false,
"next_cursor": null
},
"errors": null
}
Results
List Agent Snapshots
List the frozen agent configurations a run scored against.
GET
/
v1
/
evals
/
runs
/
{run_id}
/
agent-snapshots
List Agent Snapshots
curl --request GET \
--url https://api.bland.ai/v1/evals/runs/{run_id}/agent-snapshots \
--header 'authorization: <authorization>'import requests
url = "https://api.bland.ai/v1/evals/runs/{run_id}/agent-snapshots"
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}/agent-snapshots', 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}/agent-snapshots",
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}/agent-snapshots"
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}/agent-snapshots")
.header("authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bland.ai/v1/evals/runs/{run_id}/agent-snapshots")
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": {
"object": "list",
"data": [
{
"id": "33333333-aaaa-bbbb-cccc-dddddddddddd",
"org_id": "f6a7b8c9-d0e1-2345-fabc-456789012345",
"eval_run_id": "e5f6a7b8-c9d0-1234-efab-345678901234",
"eval_agent_id": "11111111-aaaa-bbbb-cccc-dddddddddddd",
"eval_agent_version_id": "22222222-aaaa-bbbb-cccc-dddddddddddd",
"position": 0,
"key": "resolution_quality",
"name": "Resolution Quality",
"modality": "text",
"system_prompt_md": "You are an expert call quality analyst evaluating customer service interactions.",
"prompt_md": "Did the agent fully resolve the customer's issue without requiring a callback?",
"prompt_version": "v3.1.0",
"levels": [
{
"level_key": "pass",
"label": "Pass",
"prompt_md": "The agent resolved the issue completely and the customer confirmed satisfaction.",
"color": "#22c55e"
},
{
"level_key": "partial",
"label": "Partial",
"prompt_md": "The agent addressed the issue but the customer expressed some remaining concern.",
"color": "#f59e0b"
},
{
"level_key": "fail",
"label": "Fail",
"prompt_md": "The issue was not resolved or the customer was transferred unnecessarily.",
"color": "#ef4444"
}
],
"target_level_keys": ["pass"],
"weight": 100,
"created_at": "2026-05-27T10:00:00.000Z"
}
],
"has_more": false,
"next_cursor": null
},
"errors": null
}
Headers
string
required
Your API key for authentication.
Path Parameters
string
required
The ID of the eval run.
Snapshots freeze each agent’s prompt, levels, and targets at submission time, so historical results never change if you later edit the agent.
Response
string
Always
"list".array of objects
All agent snapshots for the run. Returns all snapshots in a single page.
Show EvalRunAgentSnapshot fields
Show EvalRunAgentSnapshot fields
string
Unique identifier for this snapshot.
string
The organization that owns this snapshot.
string
The eval run this snapshot belongs to.
string
The source eval agent.
string
The specific version of the eval agent that was frozen.
integer
The ordering position of this agent within the run’s agent roster.
string
Machine-readable key identifying this agent in the run.
string
Human-readable name of the agent at snapshot time.
string
Scoring modality for this agent. One of
text or audio.string
The system prompt used by the judge, frozen at submission time.
string
The evaluation prompt, frozen at submission time.
string
Version identifier for the prompt.
array of objects
array of string
Level keys that are considered a passing result, frozen at submission time.
number
Relative weight of this agent in the overall score, 0-100.
string
ISO 8601 timestamp when this snapshot was created.
boolean
Always
false. All snapshots are returned in a single page.null
Always
null.{
"data": {
"object": "list",
"data": [
{
"id": "33333333-aaaa-bbbb-cccc-dddddddddddd",
"org_id": "f6a7b8c9-d0e1-2345-fabc-456789012345",
"eval_run_id": "e5f6a7b8-c9d0-1234-efab-345678901234",
"eval_agent_id": "11111111-aaaa-bbbb-cccc-dddddddddddd",
"eval_agent_version_id": "22222222-aaaa-bbbb-cccc-dddddddddddd",
"position": 0,
"key": "resolution_quality",
"name": "Resolution Quality",
"modality": "text",
"system_prompt_md": "You are an expert call quality analyst evaluating customer service interactions.",
"prompt_md": "Did the agent fully resolve the customer's issue without requiring a callback?",
"prompt_version": "v3.1.0",
"levels": [
{
"level_key": "pass",
"label": "Pass",
"prompt_md": "The agent resolved the issue completely and the customer confirmed satisfaction.",
"color": "#22c55e"
},
{
"level_key": "partial",
"label": "Partial",
"prompt_md": "The agent addressed the issue but the customer expressed some remaining concern.",
"color": "#f59e0b"
},
{
"level_key": "fail",
"label": "Fail",
"prompt_md": "The issue was not resolved or the customer was transferred unnecessarily.",
"color": "#ef4444"
}
],
"target_level_keys": ["pass"],
"weight": 100,
"created_at": "2026-05-27T10:00:00.000Z"
}
],
"has_more": false,
"next_cursor": null
},
"errors": null
}
Was this page helpful?
⌘I