Dispositions
Get Disposition Draft
Retrieve a disposition’s live draft definition.
GET
/
v2
/
agents
/
{agent_id}
/
dispositions
/
{disposition_id}
/
draft
Get Disposition Draft
curl --request GET \
--url https://api.bland.ai/v2/agents/{agent_id}/dispositions/{disposition_id}/draft \
--header 'authorization: <authorization>'import requests
url = "https://api.bland.ai/v2/agents/{agent_id}/dispositions/{disposition_id}/draft"
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}/draft', 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}/draft",
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}/draft"
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}/draft")
.header("authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bland.ai/v2/agents/{agent_id}/dispositions/{disposition_id}/draft")
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": {
"dispositionId": "88b81ef5-3a12-4294-89a1-6cb88f111e05",
"revision": 4,
"baseVersionId": "dfc54fe8-59e1-4722-8123-2fc186ea7fd9",
"definition": {
"name": "Appointment outcome",
"description": "Did the caller book, and did they ask for a callback?",
"timing": "immediate",
"values": [
{
"id": "aab72385-5852-4da8-aeff-703ddfc4105d",
"key": "booked",
"label": "Appointment booked",
"schema": { "kind": "boolean" },
"source": {
"kind": "judge",
"judgeId": "4bddc575-a6b2-4257-b75f-0963b24dd55f",
"judgeVersionId": "4baad4cc-814b-4555-bbe6-58eeb9611e84",
"execution": { "reasoningEffort": "auto", "inputSourceIds": ["transcript"] }
}
},
{
"id": "d6d00a32-836b-4e50-9619-f2d11d988659",
"key": "callback_time",
"label": "Requested callback time",
"schema": {
"kind": "string",
"description": "When the caller asked to be called back. Preserve exact character-by-character spelling."
},
"source": {
"kind": "variable_extraction",
"variableKey": "callback_time",
"execution": { "reasoningEffort": "auto" }
}
}
],
"transformation": {
"version": 1,
"root": {
"kind": "object",
"fields": {
"booked": { "kind": "value", "valueId": "aab72385-5852-4da8-aeff-703ddfc4105d" },
"callback_time": { "kind": "value", "valueId": "d6d00a32-836b-4e50-9619-f2d11d988659" }
}
}
},
"postCallWebhook": { "mode": "hold" }
}
},
"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.revision. Send that revision back as expectedDraftRevision when you call Update Disposition Draft or Publish Disposition. Compare the draft against its published base with Get Disposition Version.
Headers
Path Parameters
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.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
The most recently published version, which is the base this draft is edited against.
null if the disposition has never been published.The draft definition. Same shape as the
definition body parameter of Create Disposition.Show definition object
Show definition object
Up to 50 value objects, each with
id, key, label, schema, and source. A structured_extraction source that has been through publish also carries a server-written frozen copy of the extractor’s prompt, output schema, and inference configuration; its inferenceConfig.modelProfileKey, when present, is one of balanced, fast, or high_accuracy.{ "version": 1, "root": node }, where the root node assembles the delivered payload from value ids and literals.{
"data": {
"dispositionId": "88b81ef5-3a12-4294-89a1-6cb88f111e05",
"revision": 4,
"baseVersionId": "dfc54fe8-59e1-4722-8123-2fc186ea7fd9",
"definition": {
"name": "Appointment outcome",
"description": "Did the caller book, and did they ask for a callback?",
"timing": "immediate",
"values": [
{
"id": "aab72385-5852-4da8-aeff-703ddfc4105d",
"key": "booked",
"label": "Appointment booked",
"schema": { "kind": "boolean" },
"source": {
"kind": "judge",
"judgeId": "4bddc575-a6b2-4257-b75f-0963b24dd55f",
"judgeVersionId": "4baad4cc-814b-4555-bbe6-58eeb9611e84",
"execution": { "reasoningEffort": "auto", "inputSourceIds": ["transcript"] }
}
},
{
"id": "d6d00a32-836b-4e50-9619-f2d11d988659",
"key": "callback_time",
"label": "Requested callback time",
"schema": {
"kind": "string",
"description": "When the caller asked to be called back. Preserve exact character-by-character spelling."
},
"source": {
"kind": "variable_extraction",
"variableKey": "callback_time",
"execution": { "reasoningEffort": "auto" }
}
}
],
"transformation": {
"version": 1,
"root": {
"kind": "object",
"fields": {
"booked": { "kind": "value", "valueId": "aab72385-5852-4da8-aeff-703ddfc4105d" },
"callback_time": { "kind": "value", "valueId": "d6d00a32-836b-4e50-9619-f2d11d988659" }
}
}
},
"postCallWebhook": { "mode": "hold" }
}
},
"errors": null
}
{
"data": null,
"errors": [
{
"error": "NOT_FOUND",
"message": "Disposition not found"
}
]
}
Docs for agents: llms.txt
Was this page helpful?
⌘I
Get Disposition Draft
curl --request GET \
--url https://api.bland.ai/v2/agents/{agent_id}/dispositions/{disposition_id}/draft \
--header 'authorization: <authorization>'import requests
url = "https://api.bland.ai/v2/agents/{agent_id}/dispositions/{disposition_id}/draft"
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}/draft', 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}/draft",
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}/draft"
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}/draft")
.header("authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bland.ai/v2/agents/{agent_id}/dispositions/{disposition_id}/draft")
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": {
"dispositionId": "88b81ef5-3a12-4294-89a1-6cb88f111e05",
"revision": 4,
"baseVersionId": "dfc54fe8-59e1-4722-8123-2fc186ea7fd9",
"definition": {
"name": "Appointment outcome",
"description": "Did the caller book, and did they ask for a callback?",
"timing": "immediate",
"values": [
{
"id": "aab72385-5852-4da8-aeff-703ddfc4105d",
"key": "booked",
"label": "Appointment booked",
"schema": { "kind": "boolean" },
"source": {
"kind": "judge",
"judgeId": "4bddc575-a6b2-4257-b75f-0963b24dd55f",
"judgeVersionId": "4baad4cc-814b-4555-bbe6-58eeb9611e84",
"execution": { "reasoningEffort": "auto", "inputSourceIds": ["transcript"] }
}
},
{
"id": "d6d00a32-836b-4e50-9619-f2d11d988659",
"key": "callback_time",
"label": "Requested callback time",
"schema": {
"kind": "string",
"description": "When the caller asked to be called back. Preserve exact character-by-character spelling."
},
"source": {
"kind": "variable_extraction",
"variableKey": "callback_time",
"execution": { "reasoningEffort": "auto" }
}
}
],
"transformation": {
"version": 1,
"root": {
"kind": "object",
"fields": {
"booked": { "kind": "value", "valueId": "aab72385-5852-4da8-aeff-703ddfc4105d" },
"callback_time": { "kind": "value", "valueId": "d6d00a32-836b-4e50-9619-f2d11d988659" }
}
}
},
"postCallWebhook": { "mode": "hold" }
}
},
"errors": null
}
{
"data": null,
"errors": [
{
"error": "NOT_FOUND",
"message": "Disposition not found"
}
]
}