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
},
{
"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"
}
]
},
"errors": null
}
{
"data": null,
"errors": [
{
"error": "NOT_FOUND",
"message": "Agent not found"
}
]
}
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
},
{
"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"
}
]
},
"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.
Headers
string
required
Your API key for authentication.
Path Parameters
string
required
The agent’s unique identifier.
Response
array
Array of experiment objects, newest first.
Show experiment object
Show experiment object
string
Unique identifier for the experiment.
string
The agent the experiment belongs to.
string
active or completed. Completion is terminal.string | null
null while active. On completion, one of manual (stopped through the API), date_ended, quota_reached, or baseline_changed (the baseline environment was repointed).string
The control environment:
production or staging.string | null
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.string
The version under test.
integer
Share of eligible calls routed to the variant,
1 to 100.object | null
Weekly schedule (
timezone plus per-day { start, end } windows) during which the variant receives traffic, or null when always eligible.string | null
When variant traffic begins, or
null for immediately.string | null
When the experiment completes on its own, or
null for no end date.integer | null
Maximum connected variant calls, or
null for no cap.integer
Connected calls routed to the variant. Live while active, frozen at completion.
string | null
ID of the user who created the experiment, or
null when created with an org-level key.string
ISO 8601 timestamp of creation.
string | null
ISO 8601 timestamp of completion, or
null while active.null | array
null on success, or a list of error objects if the request failed.{
"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
},
{
"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"
}
]
},
"errors": null
}
{
"data": null,
"errors": [
{
"error": "NOT_FOUND",
"message": "Agent not found"
}
]
}
Docs for agents: llms.txt
Was this page helpful?