Get Disposition
curl --request GET \
--url https://api.bland.ai/v2/agents/{agent_id}/dispositions/{disposition_id} \
--header 'authorization: <authorization>'import requests
url = "https://api.bland.ai/v2/agents/{agent_id}/dispositions/{disposition_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/v2/agents/{agent_id}/dispositions/{disposition_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/v2/agents/{agent_id}/dispositions/{disposition_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/v2/agents/{agent_id}/dispositions/{disposition_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/v2/agents/{agent_id}/dispositions/{disposition_id}")
.header("authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bland.ai/v2/agents/{agent_id}/dispositions/{disposition_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{
"data": {
"id": "98f84865-1c4e-402e-a94b-8b8b19e2d82b",
"agentId": "e32e3af8-a938-44d6-9cf5-8877e59229c7",
"key": "appointment_outcome",
"state": "enabled",
"publishedVersionId": "e5460335-b787-4ec2-b015-f2527b526326",
"publishedVersionNumber": 2,
"draftRevision": 5,
"draftValueCount": 2,
"hasUnpublishedChanges": true,
"name": "Appointment outcome",
"description": "Did the caller book, and did they ask for a callback?",
"createdAt": "2026-08-30T15:21:04.118Z",
"updatedAt": "2026-09-10T08:12:40.077Z"
},
"errors": null
}
{
"data": null,
"errors": [
{
"error": "NOT_FOUND",
"message": "Disposition not found"
}
]
}
Dispositions
Get Disposition
Retrieve a disposition’s summary and lifecycle state.
GET
/
v2
/
agents
/
{agent_id}
/
dispositions
/
{disposition_id}
Get Disposition
curl --request GET \
--url https://api.bland.ai/v2/agents/{agent_id}/dispositions/{disposition_id} \
--header 'authorization: <authorization>'import requests
url = "https://api.bland.ai/v2/agents/{agent_id}/dispositions/{disposition_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/v2/agents/{agent_id}/dispositions/{disposition_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/v2/agents/{agent_id}/dispositions/{disposition_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/v2/agents/{agent_id}/dispositions/{disposition_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/v2/agents/{agent_id}/dispositions/{disposition_id}")
.header("authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bland.ai/v2/agents/{agent_id}/dispositions/{disposition_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{
"data": {
"id": "98f84865-1c4e-402e-a94b-8b8b19e2d82b",
"agentId": "e32e3af8-a938-44d6-9cf5-8877e59229c7",
"key": "appointment_outcome",
"state": "enabled",
"publishedVersionId": "e5460335-b787-4ec2-b015-f2527b526326",
"publishedVersionNumber": 2,
"draftRevision": 5,
"draftValueCount": 2,
"hasUnpublishedChanges": true,
"name": "Appointment outcome",
"description": "Did the caller book, and did they ask for a callback?",
"createdAt": "2026-08-30T15:21:04.118Z",
"updatedAt": "2026-09-10T08:12:40.077Z"
},
"errors": null
}
{
"data": null,
"errors": [
{
"error": "NOT_FOUND",
"message": "Disposition not found"
}
]
}
Overview
Dispositions are enabled per organization. If your organization does not have access, these endpoints return
404.state, the published version pointer, and the draft revision counter. A disposition is created disabled with only a draft. Publish Disposition freezes the draft into an immutable version and sets state to enabled, after which it runs on every new completed call. Disable Disposition sets state back to disabled without touching the draft or version history; publishing again re-enables it.
Headers
string
required
Your API key for authentication.
Path Parameters
string
required
The agent’s unique identifier. Must be a UUID; otherwise returns
400 with the message agentId must be a valid UUID. Returns 404 Agent not found if the agent is not in your organization.string
required
The disposition’s unique identifier. Must be a UUID; otherwise returns
400 with the message dispositionId must be a valid UUID. Returns 404 Disposition not found if it does not belong to this agent.Response
object
The disposition summary.
Show disposition object
Show disposition object
string
Unique identifier for the disposition.
string
The agent this disposition belongs to.
string
Stable slug, unique per agent. Set at creation and never changes.
string
disabled or enabled. Only enabled dispositions run on new calls.string | null
The most recently published version, or
null if never published. Disabling does not clear it.number | null
Sequential number of that version, starting at
1, or null if never published.number
Optimistic-concurrency counter for the draft. Starts at
1 and increments on every draft update and publish. Pass it back as expectedDraftRevision when writing.number
Number of values in the current draft definition.
boolean
true when the draft differs from the published version, or when nothing has been published yet.string
The draft definition’s name.
string
The draft definition’s description. May be an empty string.
string
ISO 8601 timestamp of creation.
string
ISO 8601 timestamp of the last update.
null | array
null on success, or a list of error objects if the request failed.{
"data": {
"id": "98f84865-1c4e-402e-a94b-8b8b19e2d82b",
"agentId": "e32e3af8-a938-44d6-9cf5-8877e59229c7",
"key": "appointment_outcome",
"state": "enabled",
"publishedVersionId": "e5460335-b787-4ec2-b015-f2527b526326",
"publishedVersionNumber": 2,
"draftRevision": 5,
"draftValueCount": 2,
"hasUnpublishedChanges": true,
"name": "Appointment outcome",
"description": "Did the caller book, and did they ask for a callback?",
"createdAt": "2026-08-30T15:21:04.118Z",
"updatedAt": "2026-09-10T08:12:40.077Z"
},
"errors": null
}
{
"data": null,
"errors": [
{
"error": "NOT_FOUND",
"message": "Disposition not found"
}
]
}
Docs for agents: llms.txt
Was this page helpful?