Experiments
List Experiments
List an agent’s experiments, newest first.
GET
/
v2
/
agents
/
{agent_id}
/
experiments
List Experiments
curl --request GET \
--url https://api.bland.ai/v2/agents/{agent_id}/experiments \
--header 'authorization: <authorization>'import requests
url = "https://api.bland.ai/v2/agents/{agent_id}/experiments"
headers = {"authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {authorization: '<authorization>'}};
fetch('https://api.bland.ai/v2/agents/{agent_id}/experiments', 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/v2/agents/{agent_id}/experiments",
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/v2/agents/{agent_id}/experiments"
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/v2/agents/{agent_id}/experiments")
.header("authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bland.ai/v2/agents/{agent_id}/experiments")
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": {
"experiments": [
{
"id": "90384992-15ea-43bb-9656-fa76b5f15bc8",
"agent_id": "ee8fcf53-b284-4356-8942-63445fd42b7e",
"status": "active",
"completed_reason": null,
"baseline_env": "production",
"baseline_current_version_id": "b062d11d-7da4-4560-aad8-9f494e945fbb",
"variant_version_id": "7350f8e0-8b2e-40d5-9365-34318282afdc",
"traffic_percentage": 10,
"run_hours": null,
"starts_at": null,
"ends_at": null,
"variant_call_quota": null,
"variant_calls_routed": 137,
"created_by": "4cabf114-62e5-4cc4-a676-8890d0c19173",
"created_at": "2026-09-09T08:30:12.640Z",
"completed_at": null,
"rollout_id": null
},
{
"id": "de11a8bf-3222-4dca-bbfb-e0ad5e8927fa",
"agent_id": "ee8fcf53-b284-4356-8942-63445fd42b7e",
"status": "completed",
"completed_reason": "baseline_changed",
"baseline_env": "production",
"baseline_current_version_id": "b062d11d-7da4-4560-aad8-9f494e945fbb",
"variant_version_id": "9a838897-bb5c-4131-9db3-3e24fca4603e",
"traffic_percentage": 25,
"run_hours": null,
"starts_at": null,
"ends_at": "2026-09-15T00:00:00.000Z",
"variant_call_quota": 1000,
"variant_calls_routed": 412,
"created_by": "4cabf114-62e5-4cc4-a676-8890d0c19173",
"created_at": "2026-08-28T13:02:51.115Z",
"completed_at": "2026-09-08T17:45:09.882Z",
"rollout_id": null
}
]
},
"errors": null
}
{
"data": null,
"errors": [
{
"error": "NOT_FOUND",
"message": "Agent not found"
}
]
}
Overview
Returns every experiment on the agent, active and completed, newest first. At most one isactive. An active experiment whose ends_at has passed is completed with date_ended before it is returned, so the list never reports a stale active experiment. For a single experiment with its live progress, use Get Experiment.
Experiments are available on enterprise plans. Other organizations get 403 ENTERPRISE_REQUIRED.
Headers
Path Parameters
Response
Array of experiment objects, newest first.
Show experiment object
Show experiment object
null while active. On completion, one of manual (stopped through the API), date_ended, quota_reached, or baseline_changed (the baseline environment was repointed).The version currently pinned to
baseline_env, read at request time. For a completed experiment this may no longer be the version it ran against.Weekly schedule (
timezone plus per-day { start, end } windows) during which the variant receives traffic, or null when always eligible.Connected calls and new text conversations routed to the variant. Live while active, frozen at completion.
ID of the user who created the experiment, or
null when no user is recorded. For a request made with an API key, this is the user who created the key.ID of the rollout that opened and drives this experiment, or
null for an experiment created with Create Experiment.{
"data": {
"experiments": [
{
"id": "90384992-15ea-43bb-9656-fa76b5f15bc8",
"agent_id": "ee8fcf53-b284-4356-8942-63445fd42b7e",
"status": "active",
"completed_reason": null,
"baseline_env": "production",
"baseline_current_version_id": "b062d11d-7da4-4560-aad8-9f494e945fbb",
"variant_version_id": "7350f8e0-8b2e-40d5-9365-34318282afdc",
"traffic_percentage": 10,
"run_hours": null,
"starts_at": null,
"ends_at": null,
"variant_call_quota": null,
"variant_calls_routed": 137,
"created_by": "4cabf114-62e5-4cc4-a676-8890d0c19173",
"created_at": "2026-09-09T08:30:12.640Z",
"completed_at": null,
"rollout_id": null
},
{
"id": "de11a8bf-3222-4dca-bbfb-e0ad5e8927fa",
"agent_id": "ee8fcf53-b284-4356-8942-63445fd42b7e",
"status": "completed",
"completed_reason": "baseline_changed",
"baseline_env": "production",
"baseline_current_version_id": "b062d11d-7da4-4560-aad8-9f494e945fbb",
"variant_version_id": "9a838897-bb5c-4131-9db3-3e24fca4603e",
"traffic_percentage": 25,
"run_hours": null,
"starts_at": null,
"ends_at": "2026-09-15T00:00:00.000Z",
"variant_call_quota": 1000,
"variant_calls_routed": 412,
"created_by": "4cabf114-62e5-4cc4-a676-8890d0c19173",
"created_at": "2026-08-28T13:02:51.115Z",
"completed_at": "2026-09-08T17:45:09.882Z",
"rollout_id": null
}
]
},
"errors": null
}
{
"data": null,
"errors": [
{
"error": "NOT_FOUND",
"message": "Agent not found"
}
]
}
Docs for agents: llms.txt
Was this page helpful?
⌘I
List Experiments
curl --request GET \
--url https://api.bland.ai/v2/agents/{agent_id}/experiments \
--header 'authorization: <authorization>'import requests
url = "https://api.bland.ai/v2/agents/{agent_id}/experiments"
headers = {"authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {authorization: '<authorization>'}};
fetch('https://api.bland.ai/v2/agents/{agent_id}/experiments', 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/v2/agents/{agent_id}/experiments",
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/v2/agents/{agent_id}/experiments"
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/v2/agents/{agent_id}/experiments")
.header("authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bland.ai/v2/agents/{agent_id}/experiments")
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": {
"experiments": [
{
"id": "90384992-15ea-43bb-9656-fa76b5f15bc8",
"agent_id": "ee8fcf53-b284-4356-8942-63445fd42b7e",
"status": "active",
"completed_reason": null,
"baseline_env": "production",
"baseline_current_version_id": "b062d11d-7da4-4560-aad8-9f494e945fbb",
"variant_version_id": "7350f8e0-8b2e-40d5-9365-34318282afdc",
"traffic_percentage": 10,
"run_hours": null,
"starts_at": null,
"ends_at": null,
"variant_call_quota": null,
"variant_calls_routed": 137,
"created_by": "4cabf114-62e5-4cc4-a676-8890d0c19173",
"created_at": "2026-09-09T08:30:12.640Z",
"completed_at": null,
"rollout_id": null
},
{
"id": "de11a8bf-3222-4dca-bbfb-e0ad5e8927fa",
"agent_id": "ee8fcf53-b284-4356-8942-63445fd42b7e",
"status": "completed",
"completed_reason": "baseline_changed",
"baseline_env": "production",
"baseline_current_version_id": "b062d11d-7da4-4560-aad8-9f494e945fbb",
"variant_version_id": "9a838897-bb5c-4131-9db3-3e24fca4603e",
"traffic_percentage": 25,
"run_hours": null,
"starts_at": null,
"ends_at": "2026-09-15T00:00:00.000Z",
"variant_call_quota": 1000,
"variant_calls_routed": 412,
"created_by": "4cabf114-62e5-4cc4-a676-8890d0c19173",
"created_at": "2026-08-28T13:02:51.115Z",
"completed_at": "2026-09-08T17:45:09.882Z",
"rollout_id": null
}
]
},
"errors": null
}
{
"data": null,
"errors": [
{
"error": "NOT_FOUND",
"message": "Agent not found"
}
]
}