Create Simulation Set
curl --request POST \
--url https://api.bland.ai/v1/agent-testing/simulation-sets \
--header 'Content-Type: application/json' \
--header 'authorization: <authorization>' \
--data '
{
"scenario_ids": {},
"simulations_per_scenario": 123,
"pathway_id": "<string>",
"persona_id": "<string>",
"version_number": 123
}
'import requests
url = "https://api.bland.ai/v1/agent-testing/simulation-sets"
payload = {
"scenario_ids": {},
"simulations_per_scenario": 123,
"pathway_id": "<string>",
"persona_id": "<string>",
"version_number": 123
}
headers = {
"authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({
scenario_ids: {},
simulations_per_scenario: 123,
pathway_id: '<string>',
persona_id: '<string>',
version_number: 123
})
};
fetch('https://api.bland.ai/v1/agent-testing/simulation-sets', 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",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'scenario_ids' => [
],
'simulations_per_scenario' => 123,
'pathway_id' => '<string>',
'persona_id' => '<string>',
'version_number' => 123
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.bland.ai/v1/agent-testing/simulation-sets"
payload := strings.NewReader("{\n \"scenario_ids\": {},\n \"simulations_per_scenario\": 123,\n \"pathway_id\": \"<string>\",\n \"persona_id\": \"<string>\",\n \"version_number\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("authorization", "<authorization>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.bland.ai/v1/agent-testing/simulation-sets")
.header("authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"scenario_ids\": {},\n \"simulations_per_scenario\": 123,\n \"pathway_id\": \"<string>\",\n \"persona_id\": \"<string>\",\n \"version_number\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bland.ai/v1/agent-testing/simulation-sets")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"scenario_ids\": {},\n \"simulations_per_scenario\": 123,\n \"pathway_id\": \"<string>\",\n \"persona_id\": \"<string>\",\n \"version_number\": 123\n}"
response = http.request(request)
puts response.read_body{
"simulation_set_id": "d4e5f6a7-89ab-cdef-0123-4567890abcde",
"status": "PENDING",
"simulations_per_scenario": 5,
"total_scenarios": 3,
"created_at": "2026-04-14T10:00:00.000Z"
}
Simulation Sets
Create Simulation Set
Create a simulation set that runs each scenario multiple times to detect flaky behavior. Returns immediately while simulations execute asynchronously.
POST
/
v1
/
agent-testing
/
simulation-sets
Create Simulation Set
curl --request POST \
--url https://api.bland.ai/v1/agent-testing/simulation-sets \
--header 'Content-Type: application/json' \
--header 'authorization: <authorization>' \
--data '
{
"scenario_ids": {},
"simulations_per_scenario": 123,
"pathway_id": "<string>",
"persona_id": "<string>",
"version_number": 123
}
'import requests
url = "https://api.bland.ai/v1/agent-testing/simulation-sets"
payload = {
"scenario_ids": {},
"simulations_per_scenario": 123,
"pathway_id": "<string>",
"persona_id": "<string>",
"version_number": 123
}
headers = {
"authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({
scenario_ids: {},
simulations_per_scenario: 123,
pathway_id: '<string>',
persona_id: '<string>',
version_number: 123
})
};
fetch('https://api.bland.ai/v1/agent-testing/simulation-sets', 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",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'scenario_ids' => [
],
'simulations_per_scenario' => 123,
'pathway_id' => '<string>',
'persona_id' => '<string>',
'version_number' => 123
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.bland.ai/v1/agent-testing/simulation-sets"
payload := strings.NewReader("{\n \"scenario_ids\": {},\n \"simulations_per_scenario\": 123,\n \"pathway_id\": \"<string>\",\n \"persona_id\": \"<string>\",\n \"version_number\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("authorization", "<authorization>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.bland.ai/v1/agent-testing/simulation-sets")
.header("authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"scenario_ids\": {},\n \"simulations_per_scenario\": 123,\n \"pathway_id\": \"<string>\",\n \"persona_id\": \"<string>\",\n \"version_number\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bland.ai/v1/agent-testing/simulation-sets")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"scenario_ids\": {},\n \"simulations_per_scenario\": 123,\n \"pathway_id\": \"<string>\",\n \"persona_id\": \"<string>\",\n \"version_number\": 123\n}"
response = http.request(request)
puts response.read_body{
"simulation_set_id": "d4e5f6a7-89ab-cdef-0123-4567890abcde",
"status": "PENDING",
"simulations_per_scenario": 5,
"total_scenarios": 3,
"created_at": "2026-04-14T10:00:00.000Z"
}
Headers
string
required
Your API key for authentication.
Body
array of strings
required
Scenario IDs to include. All scenario IDs must belong to your organization.
integer
required
Number of times to run each scenario. Must be >= 1.
string
The pathway ID.
string
The persona ID.
integer
Pathway version to test.
This endpoint is rate limited. All
scenario_ids must belong to your organization.Response
string
The unique identifier for the newly created simulation set.
string
The initial status of the simulation set. Will be
PENDING upon creation.integer
The number of simulations that will be run per scenario.
integer
The total number of scenarios included in this set.
string
ISO 8601 timestamp of when the simulation set was created.
{
"simulation_set_id": "d4e5f6a7-89ab-cdef-0123-4567890abcde",
"status": "PENDING",
"simulations_per_scenario": 5,
"total_scenarios": 3,
"created_at": "2026-04-14T10:00:00.000Z"
}
Docs for agents: llms.txt
Was this page helpful?
⌘I