> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bland.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Disposition Extractor

> Retrieve an extractor with its draft and published versions.

### Overview

<Note>
  Dispositions are enabled per organization. If your organization does not have access, these endpoints return `404`.
</Note>

Returns one extractor with its full `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](/api-v2/patch/agents-id-dispositions-extractors-extractor-id-draft) edits in place and [Publish Disposition Extractor](/api-v2/post/agents-id-dispositions-extractors-extractor-id-publish) archives. Use [List Disposition Extractors](/api-v2/get/agents-id-dispositions-extractors) to find extractor ids.

### Headers

<ParamField header="authorization" type="string" required>
  Your API key for authentication.
</ParamField>

### Path Parameters

<ParamField path="agent_id" type="string" required>
  The agent's unique identifier. A malformed id returns `400` with the message `agentId must be a valid UUID`.
</ParamField>

<ParamField path="extractor_id" type="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`.
</ParamField>

### Response

<ResponseField name="data.extractor" type="object">
  The extractor record.

  <Expandable title="extractor object">
    <ResponseField name="id" type="string">
      Unique identifier for the extractor.
    </ResponseField>

    <ResponseField name="agentId" type="string | null">
      `null` for an organization-wide extractor available to every agent. Otherwise the id of the one agent it is scoped to.
    </ResponseField>

    <ResponseField name="key" type="string">
      Stable machine key, unique within your organization.
    </ResponseField>

    <ResponseField name="name" type="string">
      The extractor's display name.
    </ResponseField>

    <ResponseField name="description" type="string | null">
      Optional description.
    </ResponseField>

    <ResponseField name="currentVersionId" type="string">
      The `editable` draft version, the same id as `data.currentVersion.id`. Pass it as `expectedVersionId` when updating or publishing.
    </ResponseField>

    <ResponseField name="activeVersionId" type="string | null">
      The most recently published version, the same id as `data.activeVersion.id`, or `null` if the extractor has never been published.
    </ResponseField>

    <ResponseField name="draftRevision" type="integer">
      Concurrency counter. Starts at `1` and increments on every draft update and publish. Pass it as `expectedDraftRevision` when updating or publishing.
    </ResponseField>

    <ResponseField name="createdAt" type="string">
      ISO 8601 timestamp of creation.
    </ResponseField>

    <ResponseField name="updatedAt" type="string">
      ISO 8601 timestamp of the last update.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="data.currentVersion" type="object">
  The `editable` draft version.

  <Expandable title="version object">
    <ResponseField name="id" type="string">
      Unique identifier for the version.
    </ResponseField>

    <ResponseField name="extractorId" type="string">
      The extractor this version belongs to.
    </ResponseField>

    <ResponseField name="versionNumber" type="integer">
      Starts at `1` and increments on each publish.
    </ResponseField>

    <ResponseField name="state" type="string">
      `editable` for the live draft, `archived` for a published version.
    </ResponseField>

    <ResponseField name="name" type="string">
      Display name at this version.
    </ResponseField>

    <ResponseField name="description" type="string | null">
      Description at this version.
    </ResponseField>

    <ResponseField name="systemPromptMd" type="string">
      The system prompt. Empty string when none was set.
    </ResponseField>

    <ResponseField name="promptMd" type="string">
      The extraction prompt.
    </ResponseField>

    <ResponseField name="outputSchema" type="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](/api-v2/post/agents-id-dispositions-extractors) for the full shape.
    </ResponseField>

    <ResponseField name="inferenceConfig" type="object">
      `modelProfileKey` (a `key` from [Get Model Profile Catalog](/api-v2/get/agents-id-dispositions-model-profile-catalog)), `contextSources` (the evidence the extractor reads), and, when set, `temperature`, `maxOutputTokens`, and `thinking`.
    </ResponseField>

    <ResponseField name="createdAt" type="string">
      ISO 8601 timestamp of creation.
    </ResponseField>

    <ResponseField name="updatedAt" type="string">
      ISO 8601 timestamp of the last update.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="data.activeVersion" type="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.
</ResponseField>

<ResponseField name="errors" type="null | array">
  `null` on success, or a list of error objects if the request failed.
</ResponseField>

<ResponseExample>
  ```json Response theme={null}
  {
    "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
  }
  ```

  ```json Not Found theme={null}
  {
    "data": null,
    "errors": [
      {
        "error": "NOT_FOUND",
        "message": "Disposition extractor not found"
      }
    ]
  }
  ```
</ResponseExample>

***

Docs for agents: [llms.txt](/llms.txt)
