Get Disposition Extractor
curl --request GET \
--url https://api.bland.ai/v2/agents/{agent_id}/dispositions/extractors/{extractor_id} \
--header 'authorization: <authorization>'import requests
url = "https://api.bland.ai/v2/agents/{agent_id}/dispositions/extractors/{extractor_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/extractors/{extractor_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/extractors/{extractor_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/extractors/{extractor_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/extractors/{extractor_id}")
.header("authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bland.ai/v2/agents/{agent_id}/dispositions/extractors/{extractor_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": {
"extractor": {
"id": "7710509b-1646-4217-95e5-82b2e92d7b93",
"agentId": null,
"key": "appointment_outcome",
"name": "Appointment outcome",
"description": "Whether an appointment was booked, rescheduled, or declined.",
"currentVersionId": "67d05bb3-2b38-4073-b90e-342bbd391e3a",
"activeVersionId": "bc65dd77-dfe5-4a56-b830-0463efc66d35",
"draftRevision": 2,
"createdAt": "2026-09-01T15:02:11.480Z",
"updatedAt": "2026-09-09T18:44:03.117Z"
},
"currentVersion": {
"id": "67d05bb3-2b38-4073-b90e-342bbd391e3a",
"extractorId": "7710509b-1646-4217-95e5-82b2e92d7b93",
"versionNumber": 2,
"state": "editable",
"name": "Appointment outcome",
"description": "Whether an appointment was booked, rescheduled, or declined.",
"systemPromptMd": "",
"promptMd": "Decide whether the caller booked, rescheduled, or declined an appointment. Return unclear if the call ended before a decision.",
"outputSchema": {
"kind": "enum",
"description": "Final appointment outcome for this call.",
"options": [
{ "key": "booked", "label": "Booked" },
{ "key": "rescheduled", "label": "Rescheduled" },
{ "key": "declined", "label": "Declined" },
{ "key": "unclear", "label": "Unclear" }
]
},
"inferenceConfig": {
"modelProfileKey": "balanced",
"thinking": "low",
"contextSources": ["transcript", "call_metadata"]
},
"createdAt": "2026-09-09T18:44:03.117Z",
"updatedAt": "2026-09-09T18:44:03.117Z"
},
"activeVersion": {
"id": "bc65dd77-dfe5-4a56-b830-0463efc66d35",
"extractorId": "7710509b-1646-4217-95e5-82b2e92d7b93",
"versionNumber": 1,
"state": "archived",
"name": "Appointment outcome",
"description": "Whether an appointment was booked, rescheduled, or declined.",
"systemPromptMd": "",
"promptMd": "Decide whether the caller booked, rescheduled, or declined an appointment. Return unclear if the call ended before a decision.",
"outputSchema": {
"kind": "enum",
"description": "Final appointment outcome for this call.",
"options": [
{ "key": "booked", "label": "Booked" },
{ "key": "rescheduled", "label": "Rescheduled" },
{ "key": "declined", "label": "Declined" },
{ "key": "unclear", "label": "Unclear" }
]
},
"inferenceConfig": {
"modelProfileKey": "balanced",
"thinking": "low",
"contextSources": ["transcript", "call_metadata"]
},
"createdAt": "2026-09-01T15:02:11.480Z",
"updatedAt": "2026-09-09T18:44:03.117Z"
}
},
"errors": null
}
{
"data": null,
"errors": [
{
"error": "NOT_FOUND",
"message": "Disposition extractor not found"
}
]
}
Extractors
Get Disposition Extractor
Retrieve an extractor with its draft and published versions.
GET
/
v2
/
agents
/
{agent_id}
/
dispositions
/
extractors
/
{extractor_id}
Get Disposition Extractor
curl --request GET \
--url https://api.bland.ai/v2/agents/{agent_id}/dispositions/extractors/{extractor_id} \
--header 'authorization: <authorization>'import requests
url = "https://api.bland.ai/v2/agents/{agent_id}/dispositions/extractors/{extractor_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/extractors/{extractor_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/extractors/{extractor_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/extractors/{extractor_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/extractors/{extractor_id}")
.header("authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bland.ai/v2/agents/{agent_id}/dispositions/extractors/{extractor_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": {
"extractor": {
"id": "7710509b-1646-4217-95e5-82b2e92d7b93",
"agentId": null,
"key": "appointment_outcome",
"name": "Appointment outcome",
"description": "Whether an appointment was booked, rescheduled, or declined.",
"currentVersionId": "67d05bb3-2b38-4073-b90e-342bbd391e3a",
"activeVersionId": "bc65dd77-dfe5-4a56-b830-0463efc66d35",
"draftRevision": 2,
"createdAt": "2026-09-01T15:02:11.480Z",
"updatedAt": "2026-09-09T18:44:03.117Z"
},
"currentVersion": {
"id": "67d05bb3-2b38-4073-b90e-342bbd391e3a",
"extractorId": "7710509b-1646-4217-95e5-82b2e92d7b93",
"versionNumber": 2,
"state": "editable",
"name": "Appointment outcome",
"description": "Whether an appointment was booked, rescheduled, or declined.",
"systemPromptMd": "",
"promptMd": "Decide whether the caller booked, rescheduled, or declined an appointment. Return unclear if the call ended before a decision.",
"outputSchema": {
"kind": "enum",
"description": "Final appointment outcome for this call.",
"options": [
{ "key": "booked", "label": "Booked" },
{ "key": "rescheduled", "label": "Rescheduled" },
{ "key": "declined", "label": "Declined" },
{ "key": "unclear", "label": "Unclear" }
]
},
"inferenceConfig": {
"modelProfileKey": "balanced",
"thinking": "low",
"contextSources": ["transcript", "call_metadata"]
},
"createdAt": "2026-09-09T18:44:03.117Z",
"updatedAt": "2026-09-09T18:44:03.117Z"
},
"activeVersion": {
"id": "bc65dd77-dfe5-4a56-b830-0463efc66d35",
"extractorId": "7710509b-1646-4217-95e5-82b2e92d7b93",
"versionNumber": 1,
"state": "archived",
"name": "Appointment outcome",
"description": "Whether an appointment was booked, rescheduled, or declined.",
"systemPromptMd": "",
"promptMd": "Decide whether the caller booked, rescheduled, or declined an appointment. Return unclear if the call ended before a decision.",
"outputSchema": {
"kind": "enum",
"description": "Final appointment outcome for this call.",
"options": [
{ "key": "booked", "label": "Booked" },
{ "key": "rescheduled", "label": "Rescheduled" },
{ "key": "declined", "label": "Declined" },
{ "key": "unclear", "label": "Unclear" }
]
},
"inferenceConfig": {
"modelProfileKey": "balanced",
"thinking": "low",
"contextSources": ["transcript", "call_metadata"]
},
"createdAt": "2026-09-01T15:02:11.480Z",
"updatedAt": "2026-09-09T18:44:03.117Z"
}
},
"errors": null
}
{
"data": null,
"errors": [
{
"error": "NOT_FOUND",
"message": "Disposition extractor not found"
}
]
}
Overview
Dispositions are enabled per organization. If your organization does not have access, these endpoints return
404.currentVersion (the editable draft) and activeVersion (the most recently published, archived version, or null if never published). An extractor always has exactly one editable version, which Update Disposition Extractor Draft edits in place and Publish Disposition Extractor archives. Use List Disposition Extractors to find extractor ids.
Headers
string
required
Your API key for authentication.
Path Parameters
string
required
The agent’s unique identifier. A malformed id returns
400 with the message agentId must be a valid UUID.string
required
The extractor’s unique identifier. Must be organization-wide or scoped to this agent; otherwise returns
404. A malformed id returns 400 with the message extractorId must be a valid UUID.Response
object
The extractor record.
Show extractor object
Show extractor object
string
Unique identifier for the extractor.
string | null
null for an organization-wide extractor available to every agent. Otherwise the id of the one agent it is scoped to.string
Stable machine key, unique within your organization.
string
The extractor’s display name.
string | null
Optional description.
string
The
editable draft version, the same id as data.currentVersion.id. Pass it as expectedVersionId when updating or publishing.string | null
The most recently published version, the same id as
data.activeVersion.id, or null if the extractor has never been published.integer
Concurrency counter. Starts at
1 and increments on every draft update and publish. Pass it as expectedDraftRevision when updating or publishing.string
ISO 8601 timestamp of creation.
string
ISO 8601 timestamp of the last update.
object
The
editable draft version.Show version object
Show version object
string
Unique identifier for the version.
string
The extractor this version belongs to.
integer
Starts at
1 and increments on each publish.string
editable for the live draft, archived for a published version.string
Display name at this version.
string | null
Description at this version.
string
The system prompt. Empty string when none was set.
string
The extraction prompt.
object
The value schema the extractor produces: a
kind of boolean, string, number, enum, array, or object plus kind-specific fields. See Create Disposition Extractor for the full shape.object
modelProfileKey (a key from Get Model Profile Catalog), contextSources (the evidence the extractor reads), and, when set, temperature, maxOutputTokens, and thinking.string
ISO 8601 timestamp of creation.
string
ISO 8601 timestamp of the last update.
object | null
The most recently published version, with the same fields as
data.currentVersion and state set to archived. null if the extractor has never been published.null | array
null on success, or a list of error objects if the request failed.{
"data": {
"extractor": {
"id": "7710509b-1646-4217-95e5-82b2e92d7b93",
"agentId": null,
"key": "appointment_outcome",
"name": "Appointment outcome",
"description": "Whether an appointment was booked, rescheduled, or declined.",
"currentVersionId": "67d05bb3-2b38-4073-b90e-342bbd391e3a",
"activeVersionId": "bc65dd77-dfe5-4a56-b830-0463efc66d35",
"draftRevision": 2,
"createdAt": "2026-09-01T15:02:11.480Z",
"updatedAt": "2026-09-09T18:44:03.117Z"
},
"currentVersion": {
"id": "67d05bb3-2b38-4073-b90e-342bbd391e3a",
"extractorId": "7710509b-1646-4217-95e5-82b2e92d7b93",
"versionNumber": 2,
"state": "editable",
"name": "Appointment outcome",
"description": "Whether an appointment was booked, rescheduled, or declined.",
"systemPromptMd": "",
"promptMd": "Decide whether the caller booked, rescheduled, or declined an appointment. Return unclear if the call ended before a decision.",
"outputSchema": {
"kind": "enum",
"description": "Final appointment outcome for this call.",
"options": [
{ "key": "booked", "label": "Booked" },
{ "key": "rescheduled", "label": "Rescheduled" },
{ "key": "declined", "label": "Declined" },
{ "key": "unclear", "label": "Unclear" }
]
},
"inferenceConfig": {
"modelProfileKey": "balanced",
"thinking": "low",
"contextSources": ["transcript", "call_metadata"]
},
"createdAt": "2026-09-09T18:44:03.117Z",
"updatedAt": "2026-09-09T18:44:03.117Z"
},
"activeVersion": {
"id": "bc65dd77-dfe5-4a56-b830-0463efc66d35",
"extractorId": "7710509b-1646-4217-95e5-82b2e92d7b93",
"versionNumber": 1,
"state": "archived",
"name": "Appointment outcome",
"description": "Whether an appointment was booked, rescheduled, or declined.",
"systemPromptMd": "",
"promptMd": "Decide whether the caller booked, rescheduled, or declined an appointment. Return unclear if the call ended before a decision.",
"outputSchema": {
"kind": "enum",
"description": "Final appointment outcome for this call.",
"options": [
{ "key": "booked", "label": "Booked" },
{ "key": "rescheduled", "label": "Rescheduled" },
{ "key": "declined", "label": "Declined" },
{ "key": "unclear", "label": "Unclear" }
]
},
"inferenceConfig": {
"modelProfileKey": "balanced",
"thinking": "low",
"contextSources": ["transcript", "call_metadata"]
},
"createdAt": "2026-09-01T15:02:11.480Z",
"updatedAt": "2026-09-09T18:44:03.117Z"
}
},
"errors": null
}
{
"data": null,
"errors": [
{
"error": "NOT_FOUND",
"message": "Disposition extractor not found"
}
]
}
Docs for agents: llms.txt
Was this page helpful?