Get Simulation Set
curl --request GET \
--url https://api.bland.ai/v1/agent-testing/simulation-sets/{id} \
--header 'authorization: <authorization>'import requests
url = "https://api.bland.ai/v1/agent-testing/simulation-sets/{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/agent-testing/simulation-sets/{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/agent-testing/simulation-sets/{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/agent-testing/simulation-sets/{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/agent-testing/simulation-sets/{id}")
.header("authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bland.ai/v1/agent-testing/simulation-sets/{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{
"id": "d4e5f6a7-89ab-cdef-0123-4567890abcde",
"status": "PASSED",
"simulations_per_scenario": 5,
"total_scenarios": 2,
"statistics": {
"per_scenario": {
"a1b2c3d4-5678-9abc-def0-1234567890ab": {
"scenario_id": "a1b2c3d4-5678-9abc-def0-1234567890ab",
"scenario_name": "Happy Path - Booking",
"total_runs": 5,
"passed": 5,
"failed": 0,
"pass_rate": 1.0,
"is_flaky": false,
"scores": {
"mean": 0.92,
"median": 0.93,
"stddev": 0.03,
"min": 0.87,
"max": 0.96
},
"worst_run_id": "b8c9d0e1-2345-6789-abcd-ef0123456789",
"common_failure_modes": [],
"confidence": "high"
},
"f6a7b8c9-0abc-def1-2345-67890abcdef0": {
"scenario_id": "f6a7b8c9-0abc-def1-2345-67890abcdef0",
"scenario_name": "Angry Caller Test",
"total_runs": 5,
"passed": 3,
"failed": 2,
"pass_rate": 0.6,
"is_flaky": true,
"scores": {
"mean": 0.68,
"median": 0.71,
"stddev": 0.15,
"min": 0.42,
"max": 0.85
},
"worst_run_id": "c9d0e1f2-3456-789a-bcde-f01234567890",
"common_failure_modes": [
"Agent failed to de-escalate within 3 turns",
"Agent used dismissive language"
],
"confidence": "medium"
}
},
"overall": {
"avg_pass_rate": 0.8,
"flaky_count": 1,
"reliable_count": 1,
"total_runs": 10
}
},
"created_at": "2026-04-14T10:00:00.000Z",
"completed_at": "2026-04-14T10:05:32.000Z"
}
Simulation Sets
Get Simulation Set
Retrieve a simulation set with its statistics including pass rates, flakiness detection, and score distributions.
GET
/
v1
/
agent-testing
/
simulation-sets
/
{id}
Get Simulation Set
curl --request GET \
--url https://api.bland.ai/v1/agent-testing/simulation-sets/{id} \
--header 'authorization: <authorization>'import requests
url = "https://api.bland.ai/v1/agent-testing/simulation-sets/{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/agent-testing/simulation-sets/{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/agent-testing/simulation-sets/{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/agent-testing/simulation-sets/{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/agent-testing/simulation-sets/{id}")
.header("authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bland.ai/v1/agent-testing/simulation-sets/{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{
"id": "d4e5f6a7-89ab-cdef-0123-4567890abcde",
"status": "PASSED",
"simulations_per_scenario": 5,
"total_scenarios": 2,
"statistics": {
"per_scenario": {
"a1b2c3d4-5678-9abc-def0-1234567890ab": {
"scenario_id": "a1b2c3d4-5678-9abc-def0-1234567890ab",
"scenario_name": "Happy Path - Booking",
"total_runs": 5,
"passed": 5,
"failed": 0,
"pass_rate": 1.0,
"is_flaky": false,
"scores": {
"mean": 0.92,
"median": 0.93,
"stddev": 0.03,
"min": 0.87,
"max": 0.96
},
"worst_run_id": "b8c9d0e1-2345-6789-abcd-ef0123456789",
"common_failure_modes": [],
"confidence": "high"
},
"f6a7b8c9-0abc-def1-2345-67890abcdef0": {
"scenario_id": "f6a7b8c9-0abc-def1-2345-67890abcdef0",
"scenario_name": "Angry Caller Test",
"total_runs": 5,
"passed": 3,
"failed": 2,
"pass_rate": 0.6,
"is_flaky": true,
"scores": {
"mean": 0.68,
"median": 0.71,
"stddev": 0.15,
"min": 0.42,
"max": 0.85
},
"worst_run_id": "c9d0e1f2-3456-789a-bcde-f01234567890",
"common_failure_modes": [
"Agent failed to de-escalate within 3 turns",
"Agent used dismissive language"
],
"confidence": "medium"
}
},
"overall": {
"avg_pass_rate": 0.8,
"flaky_count": 1,
"reliable_count": 1,
"total_runs": 10
}
},
"created_at": "2026-04-14T10:00:00.000Z",
"completed_at": "2026-04-14T10:05:32.000Z"
}
Headers
string
required
Your API key for authentication.
Path Parameters
string
required
The simulation set ID.
Response
string
Unique identifier for the simulation set.
string
Current status of the simulation set. One of
PENDING, RUNNING, PASSED, FAILED, or ERROR.integer
Number of times each scenario is run.
integer
Total number of scenarios in this set.
object
Aggregated statistics for the simulation set.
Show statistics object
Show statistics object
object
A map of scenario IDs to per-scenario statistics.
Show per-scenario stats
Show per-scenario stats
string
The scenario ID.
string
The scenario name.
integer
Total number of simulation runs for this scenario.
integer
Number of runs that passed.
integer
Number of runs that failed.
number
Pass rate as a decimal between 0 and 1.
boolean
Whether the scenario exhibited flaky behavior (some runs passed, some failed).
object
Score distribution statistics including
mean, median, stddev, min, and max.string
The ID of the worst-performing run.
array of strings
Most common failure reasons observed across runs.
string
Statistical confidence level. One of
low, medium, or high.string
ISO 8601 timestamp of when the simulation set was created.
string
ISO 8601 timestamp of when the simulation set completed (null if still running).
{
"id": "d4e5f6a7-89ab-cdef-0123-4567890abcde",
"status": "PASSED",
"simulations_per_scenario": 5,
"total_scenarios": 2,
"statistics": {
"per_scenario": {
"a1b2c3d4-5678-9abc-def0-1234567890ab": {
"scenario_id": "a1b2c3d4-5678-9abc-def0-1234567890ab",
"scenario_name": "Happy Path - Booking",
"total_runs": 5,
"passed": 5,
"failed": 0,
"pass_rate": 1.0,
"is_flaky": false,
"scores": {
"mean": 0.92,
"median": 0.93,
"stddev": 0.03,
"min": 0.87,
"max": 0.96
},
"worst_run_id": "b8c9d0e1-2345-6789-abcd-ef0123456789",
"common_failure_modes": [],
"confidence": "high"
},
"f6a7b8c9-0abc-def1-2345-67890abcdef0": {
"scenario_id": "f6a7b8c9-0abc-def1-2345-67890abcdef0",
"scenario_name": "Angry Caller Test",
"total_runs": 5,
"passed": 3,
"failed": 2,
"pass_rate": 0.6,
"is_flaky": true,
"scores": {
"mean": 0.68,
"median": 0.71,
"stddev": 0.15,
"min": 0.42,
"max": 0.85
},
"worst_run_id": "c9d0e1f2-3456-789a-bcde-f01234567890",
"common_failure_modes": [
"Agent failed to de-escalate within 3 turns",
"Agent used dismissive language"
],
"confidence": "medium"
}
},
"overall": {
"avg_pass_rate": 0.8,
"flaky_count": 1,
"reliable_count": 1,
"total_runs": 10
}
},
"created_at": "2026-04-14T10:00:00.000Z",
"completed_at": "2026-04-14T10:05:32.000Z"
}
Docs for agents: llms.txt
Was this page helpful?
⌘I