Disable Disposition
curl --request POST \
--url https://api.bland.ai/v2/agents/{agent_id}/dispositions/{disposition_id}/disable \
--header 'authorization: <authorization>'import requests
url = "https://api.bland.ai/v2/agents/{agent_id}/dispositions/{disposition_id}/disable"
headers = {"authorization": "<authorization>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {authorization: '<authorization>'}};
fetch('https://api.bland.ai/v2/agents/{agent_id}/dispositions/{disposition_id}/disable', 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}/disable",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
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}/disable"
req, _ := http.NewRequest("POST", 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.post("https://api.bland.ai/v2/agents/{agent_id}/dispositions/{disposition_id}/disable")
.header("authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bland.ai/v2/agents/{agent_id}/dispositions/{disposition_id}/disable")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"data": {
"id": "81ac0fe3-ae66-4d43-b388-1e66237c342d",
"agentId": "dbca575b-2060-40db-ab94-9bf0055db8d0",
"key": "appointment_outcome",
"state": "disabled",
"publishedVersionId": "06fbabaa-668d-4699-9fa6-a798f2627ab7",
"publishedVersionNumber": 2,
"draftRevision": 5,
"draftValueCount": 2,
"hasUnpublishedChanges": false,
"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-10T19:03:27.640Z"
},
"errors": null
}
{
"data": null,
"errors": [
{
"error": "NOT_FOUND",
"message": "Disposition not found"
}
]
}
Dispositions
Disable Disposition
Stop a disposition from running on new calls.
POST
/
v2
/
agents
/
{agent_id}
/
dispositions
/
{disposition_id}
/
disable
Disable Disposition
curl --request POST \
--url https://api.bland.ai/v2/agents/{agent_id}/dispositions/{disposition_id}/disable \
--header 'authorization: <authorization>'import requests
url = "https://api.bland.ai/v2/agents/{agent_id}/dispositions/{disposition_id}/disable"
headers = {"authorization": "<authorization>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {authorization: '<authorization>'}};
fetch('https://api.bland.ai/v2/agents/{agent_id}/dispositions/{disposition_id}/disable', 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}/disable",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
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}/disable"
req, _ := http.NewRequest("POST", 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.post("https://api.bland.ai/v2/agents/{agent_id}/dispositions/{disposition_id}/disable")
.header("authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bland.ai/v2/agents/{agent_id}/dispositions/{disposition_id}/disable")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"data": {
"id": "81ac0fe3-ae66-4d43-b388-1e66237c342d",
"agentId": "dbca575b-2060-40db-ab94-9bf0055db8d0",
"key": "appointment_outcome",
"state": "disabled",
"publishedVersionId": "06fbabaa-668d-4699-9fa6-a798f2627ab7",
"publishedVersionNumber": 2,
"draftRevision": 5,
"draftValueCount": 2,
"hasUnpublishedChanges": false,
"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-10T19:03:27.640Z"
},
"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 to disabled so the disposition no longer runs on new completed calls. The request takes no body. The draft, version history, and publishedVersionId are left untouched, and test runs still work. There is no separate enable call: to turn it back on, publish the draft again, which creates a new version and sets state to enabled.
Requires an admin, owner, operator, or prompter role.
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 updated 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.
string
Always
disabled after this call.string | null
Unchanged: the most recently published version, or
null if never published.number | null
Unchanged.
number
Unchanged. Disabling is not a draft write.
number
Number of values in the current draft definition.
boolean
true when the draft differs from the published version.string
The draft definition’s name.
string
The draft definition’s description.
string
ISO 8601 timestamp of creation.
string
ISO 8601 timestamp of this update.
null | array
null on success, or a list of error objects if the request failed.{
"data": {
"id": "81ac0fe3-ae66-4d43-b388-1e66237c342d",
"agentId": "dbca575b-2060-40db-ab94-9bf0055db8d0",
"key": "appointment_outcome",
"state": "disabled",
"publishedVersionId": "06fbabaa-668d-4699-9fa6-a798f2627ab7",
"publishedVersionNumber": 2,
"draftRevision": 5,
"draftValueCount": 2,
"hasUnpublishedChanges": false,
"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-10T19:03:27.640Z"
},
"errors": null
}
{
"data": null,
"errors": [
{
"error": "NOT_FOUND",
"message": "Disposition not found"
}
]
}
Docs for agents: llms.txt
Was this page helpful?