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"
}
]
}
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
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
string
The disposition this draft belongs to.
number
The draft’s current revision. Every draft update and publish increments it.
string | null
The most recently published version, which is the base this draft is edited against.
null if the disposition has never been published.object
The draft definition. Same shape as the
definition body parameter of Create Disposition.Show definition object
Show definition object
string
Display name, 1 to 120 characters.
string
Free-text description, up to 2000 characters. May be empty.
string
immediate or within_24h.array
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.object
{ "version": 1, "root": node }, where the root node assembles the delivered payload from value ids and literals.object
{ "mode": "hold" } or { "mode": "emit_followup" }.null | array
null on success, or a list of error objects if the request failed.{
"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?