List Agent Deployments
curl --request GET \
--url https://api.bland.ai/v2/agents/{agent_id}/deployments \
--header 'authorization: <authorization>'import requests
url = "https://api.bland.ai/v2/agents/{agent_id}/deployments"
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}/deployments', 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}/deployments",
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}/deployments"
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}/deployments")
.header("authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bland.ai/v2/agents/{agent_id}/deployments")
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": [
{
"id": "e787c15f-abe6-409d-a685-1b007aad977d",
"env_type": "production",
"agent_version_id": "6cd4ce35-a4d2-4d13-a708-2a05f86ed3d8",
"version_name": "Holiday hours",
"semver": "1.3.2",
"deployed_by": "f4cfacd2-d5b9-4498-ace1-8868e5b05b49",
"deployed_at": "2026-09-10T18:42:11.904Z",
"check_run": {
"id": "16a5fe15-9458-4237-b884-69ce44413aae",
"agent_id": "449bbc38-188a-4533-b73a-ebf1debdf535",
"env_type": "staging",
"agent_version_id": "6cd4ce35-a4d2-4d13-a708-2a05f86ed3d8",
"semver": "1.3.2",
"version_name": "Holiday hours",
"status": "PASSED",
"judge_names": [
"Greeting quality"
],
"scenario_count": 3,
"simulations_count": 2,
"overall_passed": true,
"verdicts": [
{
"eval_agent_id": "de2d68ac-cfc6-4c40-8b1a-d6e541133f3c",
"eval_agent_version_id": "e112f640-71be-46ca-8269-746abec3bcde",
"name": "Greeting quality",
"required": true,
"target_level_keys": [],
"match_rate": 1,
"score": 88,
"passed": true
}
],
"simulation_set_id": "0cb85a21-bd7d-4a73-ace4-738507fb36a0",
"eval_run_id": "968c3972-ecca-4878-acd5-273a21853d5b",
"error_message": null,
"triggered_by": "f4cfacd2-d5b9-4498-ace1-8868e5b05b49",
"created_at": "2026-09-10T18:30:02.117Z",
"started_at": "2026-09-10T18:30:03.540Z",
"completed_at": "2026-09-10T18:36:48.221Z"
},
"is_rollback_eligible": false
},
{
"id": "579eca61-40fa-433b-8066-809927758313",
"env_type": "production",
"agent_version_id": "0f5adeb8-94a2-4cc3-8e6e-015178f994b7",
"version_name": null,
"semver": "1.3.1",
"deployed_by": "f4cfacd2-d5b9-4498-ace1-8868e5b05b49",
"deployed_at": "2026-09-03T15:07:39.318Z",
"check_run": null,
"is_rollback_eligible": true
}
],
"errors": null
}
{
"data": null,
"errors": [
{
"error": "NOT_FOUND",
"message": "Agent not found"
}
]
}
Environments and Releases
List Agent Deployments
List an environment’s deployment history, newest first.
GET
/
v2
/
agents
/
{agent_id}
/
deployments
List Agent Deployments
curl --request GET \
--url https://api.bland.ai/v2/agents/{agent_id}/deployments \
--header 'authorization: <authorization>'import requests
url = "https://api.bland.ai/v2/agents/{agent_id}/deployments"
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}/deployments', 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}/deployments",
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}/deployments"
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}/deployments")
.header("authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bland.ai/v2/agents/{agent_id}/deployments")
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": [
{
"id": "e787c15f-abe6-409d-a685-1b007aad977d",
"env_type": "production",
"agent_version_id": "6cd4ce35-a4d2-4d13-a708-2a05f86ed3d8",
"version_name": "Holiday hours",
"semver": "1.3.2",
"deployed_by": "f4cfacd2-d5b9-4498-ace1-8868e5b05b49",
"deployed_at": "2026-09-10T18:42:11.904Z",
"check_run": {
"id": "16a5fe15-9458-4237-b884-69ce44413aae",
"agent_id": "449bbc38-188a-4533-b73a-ebf1debdf535",
"env_type": "staging",
"agent_version_id": "6cd4ce35-a4d2-4d13-a708-2a05f86ed3d8",
"semver": "1.3.2",
"version_name": "Holiday hours",
"status": "PASSED",
"judge_names": [
"Greeting quality"
],
"scenario_count": 3,
"simulations_count": 2,
"overall_passed": true,
"verdicts": [
{
"eval_agent_id": "de2d68ac-cfc6-4c40-8b1a-d6e541133f3c",
"eval_agent_version_id": "e112f640-71be-46ca-8269-746abec3bcde",
"name": "Greeting quality",
"required": true,
"target_level_keys": [],
"match_rate": 1,
"score": 88,
"passed": true
}
],
"simulation_set_id": "0cb85a21-bd7d-4a73-ace4-738507fb36a0",
"eval_run_id": "968c3972-ecca-4878-acd5-273a21853d5b",
"error_message": null,
"triggered_by": "f4cfacd2-d5b9-4498-ace1-8868e5b05b49",
"created_at": "2026-09-10T18:30:02.117Z",
"started_at": "2026-09-10T18:30:03.540Z",
"completed_at": "2026-09-10T18:36:48.221Z"
},
"is_rollback_eligible": false
},
{
"id": "579eca61-40fa-433b-8066-809927758313",
"env_type": "production",
"agent_version_id": "0f5adeb8-94a2-4cc3-8e6e-015178f994b7",
"version_name": null,
"semver": "1.3.1",
"deployed_by": "f4cfacd2-d5b9-4498-ace1-8868e5b05b49",
"deployed_at": "2026-09-03T15:07:39.318Z",
"check_run": null,
"is_rollback_eligible": true
}
],
"errors": null
}
{
"data": null,
"errors": [
{
"error": "NOT_FOUND",
"message": "Agent not found"
}
]
}
Overview
Every publish, promote, and rollback appends a deployment to the target environment’s history. This endpoint returns that history for one environment, newest first, with the latest check run recorded for each deployed version. Useis_rollback_eligible to find valid targets for Roll Back Agent.
Headers
string
required
Your API key for authentication.
Path Parameters
string
required
The agent’s unique identifier.
Query Parameters
string
default:"production"
Environment to list:
dev, staging, or production. Any other value falls back to production.integer
default:"50"
Maximum number of deployments to return. Minimum
1, maximum 200. Values outside that range are clamped; a non-numeric value falls back to 50.Response
array
Deployments for the requested environment, newest first.
Show deployment object
Show deployment object
string
Unique identifier for the deployment.
string
The environment this deployment was made to. Matches the
env query parameter.string
ID of the version that was deployed.
string | null
The version’s saved name, or
null if it was never named.string
The version number recorded on this deployment. Promotes and rollbacks re-record the version’s original number rather than minting a new one.
string | null
ID of the user who made the deployment, or
null when made with an org-level key.string
ISO 8601 timestamp of the deployment.
object | null
The newest check run that scored this deployment’s version, regardless of the environment the run targeted.
null if the version has never been checked. See data[].check_run below.boolean
true for production deployments whose version is not the current production pin. Always false for dev and staging.object | null
The check run attached to a deployment.
Show check run object
Show check run object
string
Unique identifier for the check run.
string
The agent the run belongs to.
string
The environment the run was started for:
staging or production.string
The version the run scored.
string | null
The scored version’s number, or
null if it had not been published when the run was read.string | null
The scored version’s saved name, or
null.string
One of
PENDING, RUNNING, PASSED, FAILED, ERROR, CANCELLED.string[]
Display names of the judges configured when the run started.
integer
Number of test scenarios in the run.
integer
Conversations generated per scenario.
boolean | null
true when every required judge passed, false when one failed, null while the run has no verdict.array | null
One entry per judge once the run finishes, otherwise
null. Each has eval_agent_id, eval_agent_version_id, name, required, target_level_keys (string array, empty for pass/fail judges), match_rate (number or null), score (0 to 100, or null), and passed (boolean or null).string | null
ID of the simulated conversation set, once created.
string | null
ID of the evaluation run that scored the simulations, once started.
string | null
Failure detail when
status is ERROR.string | null
ID of the user who started the run, or
null.string
ISO 8601 timestamp the run was created.
string | null
ISO 8601 timestamp the run began executing, or
null.string | null
ISO 8601 timestamp the run reached a terminal status, or
null.null | array
null on success, or a list of error objects if the request failed.{
"data": [
{
"id": "e787c15f-abe6-409d-a685-1b007aad977d",
"env_type": "production",
"agent_version_id": "6cd4ce35-a4d2-4d13-a708-2a05f86ed3d8",
"version_name": "Holiday hours",
"semver": "1.3.2",
"deployed_by": "f4cfacd2-d5b9-4498-ace1-8868e5b05b49",
"deployed_at": "2026-09-10T18:42:11.904Z",
"check_run": {
"id": "16a5fe15-9458-4237-b884-69ce44413aae",
"agent_id": "449bbc38-188a-4533-b73a-ebf1debdf535",
"env_type": "staging",
"agent_version_id": "6cd4ce35-a4d2-4d13-a708-2a05f86ed3d8",
"semver": "1.3.2",
"version_name": "Holiday hours",
"status": "PASSED",
"judge_names": [
"Greeting quality"
],
"scenario_count": 3,
"simulations_count": 2,
"overall_passed": true,
"verdicts": [
{
"eval_agent_id": "de2d68ac-cfc6-4c40-8b1a-d6e541133f3c",
"eval_agent_version_id": "e112f640-71be-46ca-8269-746abec3bcde",
"name": "Greeting quality",
"required": true,
"target_level_keys": [],
"match_rate": 1,
"score": 88,
"passed": true
}
],
"simulation_set_id": "0cb85a21-bd7d-4a73-ace4-738507fb36a0",
"eval_run_id": "968c3972-ecca-4878-acd5-273a21853d5b",
"error_message": null,
"triggered_by": "f4cfacd2-d5b9-4498-ace1-8868e5b05b49",
"created_at": "2026-09-10T18:30:02.117Z",
"started_at": "2026-09-10T18:30:03.540Z",
"completed_at": "2026-09-10T18:36:48.221Z"
},
"is_rollback_eligible": false
},
{
"id": "579eca61-40fa-433b-8066-809927758313",
"env_type": "production",
"agent_version_id": "0f5adeb8-94a2-4cc3-8e6e-015178f994b7",
"version_name": null,
"semver": "1.3.1",
"deployed_by": "f4cfacd2-d5b9-4498-ace1-8868e5b05b49",
"deployed_at": "2026-09-03T15:07:39.318Z",
"check_run": null,
"is_rollback_eligible": true
}
],
"errors": null
}
{
"data": null,
"errors": [
{
"error": "NOT_FOUND",
"message": "Agent not found"
}
]
}
Docs for agents: llms.txt
Was this page helpful?