Get Test Analytics
curl --request GET \
--url https://api.bland.ai/v1/agent-testing/analytics/{pathwayId} \
--header 'authorization: <authorization>'import requests
url = "https://api.bland.ai/v1/agent-testing/analytics/{pathwayId}"
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/agent-testing/analytics/{pathwayId}', 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/agent-testing/analytics/{pathwayId}",
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/agent-testing/analytics/{pathwayId}"
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/agent-testing/analytics/{pathwayId}")
.header("authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bland.ai/v1/agent-testing/analytics/{pathwayId}")
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{
"total_runs": 48,
"passed": 39,
"failed": 9,
"pass_rate": 0.8125,
"avg_score": 0.84,
"runs": [
{
"id": "run_a1b2c3d4-5678-9abc-def0-1234567890ab",
"scenario_id": "scn_f0e1d2c3-b4a5-9687-7856-342109876543",
"scenario_name": "Happy Path - Appointment Booking",
"status": "passed",
"score": 0.95,
"created_at": "2026-04-13T14:22:00.000Z"
},
{
"id": "run_b2c3d4e5-6789-abcd-ef01-234567890abc",
"scenario_id": "scn_e1d2c3b4-a596-8778-5634-210987654321",
"scenario_name": "Angry Caller De-escalation",
"status": "failed",
"score": 0.42,
"created_at": "2026-04-13T14:18:00.000Z"
},
{
"id": "run_c3d4e5f6-789a-bcde-f012-34567890abcd",
"scenario_id": "scn_d2c3b4a5-9687-7856-3421-098765432109",
"scenario_name": "Voicemail Detection",
"status": "passed",
"score": 1.0,
"created_at": "2026-04-12T09:45:00.000Z"
}
]
}
Agent Testing
Get Test Analytics
Get basic testing analytics for a pathway over a time window.
GET
/
v1
/
agent-testing
/
analytics
/
{pathwayId}
Get Test Analytics
curl --request GET \
--url https://api.bland.ai/v1/agent-testing/analytics/{pathwayId} \
--header 'authorization: <authorization>'import requests
url = "https://api.bland.ai/v1/agent-testing/analytics/{pathwayId}"
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/agent-testing/analytics/{pathwayId}', 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/agent-testing/analytics/{pathwayId}",
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/agent-testing/analytics/{pathwayId}"
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/agent-testing/analytics/{pathwayId}")
.header("authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bland.ai/v1/agent-testing/analytics/{pathwayId}")
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{
"total_runs": 48,
"passed": 39,
"failed": 9,
"pass_rate": 0.8125,
"avg_score": 0.84,
"runs": [
{
"id": "run_a1b2c3d4-5678-9abc-def0-1234567890ab",
"scenario_id": "scn_f0e1d2c3-b4a5-9687-7856-342109876543",
"scenario_name": "Happy Path - Appointment Booking",
"status": "passed",
"score": 0.95,
"created_at": "2026-04-13T14:22:00.000Z"
},
{
"id": "run_b2c3d4e5-6789-abcd-ef01-234567890abc",
"scenario_id": "scn_e1d2c3b4-a596-8778-5634-210987654321",
"scenario_name": "Angry Caller De-escalation",
"status": "failed",
"score": 0.42,
"created_at": "2026-04-13T14:18:00.000Z"
},
{
"id": "run_c3d4e5f6-789a-bcde-f012-34567890abcd",
"scenario_id": "scn_d2c3b4a5-9687-7856-3421-098765432109",
"scenario_name": "Voicemail Detection",
"status": "passed",
"score": 1.0,
"created_at": "2026-04-12T09:45:00.000Z"
}
]
}
Headers
string
required
Your API key for authentication.
Path Parameters
string
required
The pathway ID.
Query Parameters
integer
default:"30"
Number of days to look back. Maximum value is 365.
Response
integer
Total number of test runs in the time window.
integer
Number of test runs that passed.
integer
Number of test runs that failed.
number
Pass rate as a decimal from 0 to 1.
number
Average score across all runs, from 0 to 1.
array
Individual run summaries for the time window.
{
"total_runs": 48,
"passed": 39,
"failed": 9,
"pass_rate": 0.8125,
"avg_score": 0.84,
"runs": [
{
"id": "run_a1b2c3d4-5678-9abc-def0-1234567890ab",
"scenario_id": "scn_f0e1d2c3-b4a5-9687-7856-342109876543",
"scenario_name": "Happy Path - Appointment Booking",
"status": "passed",
"score": 0.95,
"created_at": "2026-04-13T14:22:00.000Z"
},
{
"id": "run_b2c3d4e5-6789-abcd-ef01-234567890abc",
"scenario_id": "scn_e1d2c3b4-a596-8778-5634-210987654321",
"scenario_name": "Angry Caller De-escalation",
"status": "failed",
"score": 0.42,
"created_at": "2026-04-13T14:18:00.000Z"
},
{
"id": "run_c3d4e5f6-789a-bcde-f012-34567890abcd",
"scenario_id": "scn_d2c3b4a5-9687-7856-3421-098765432109",
"scenario_name": "Voicemail Detection",
"status": "passed",
"score": 1.0,
"created_at": "2026-04-12T09:45:00.000Z"
}
]
}
Docs for agents: llms.txt
Was this page helpful?
⌘I