> ## 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`.

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](https://docs.bland.ai/api-v2/patch/agents-id-dispositions-extractors-extractor-id-draft.md) edits in place and [Publish Disposition Extractor](https://docs.bland.ai/api-v2/post/agents-id-dispositions-extractors-extractor-id-publish.md) archives. Use [List Disposition Extractors](https://docs.bland.ai/api-v2/get/agents-id-dispositions-extractors.md) to find extractor ids.

### Headers

**authorization** `string` *required*

Your API key for authentication.

### Path Parameters

**agent\_id** `string` *required*

The agent's unique identifier. A malformed id returns `400` with the message `agentId must be a valid UUID`.

**extractor\_id** `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

**data.extractor** `object`

The extractor record.

**extractor object**

**id** `string`

Unique identifier for the extractor.

**agentId** `string | null`

`null` for an organization-wide extractor available to every agent. Otherwise the id of the one agent it is scoped to.

**key** `string`

Stable machine key, unique within your organization.

**name** `string`

The extractor's display name.

**description** `string | null`

Optional description.

**currentVersionId** `string`

The `editable` draft version, the same id as `data.currentVersion.id`. Pass it as `expectedVersionId` when updating or publishing.

**activeVersionId** `string | null`

The most recently published version, the same id as `data.activeVersion.id`, or `null` if the extractor has never been published.

**draftRevision** `integer`

Concurrency counter. Starts at `1` and increments on every draft update and publish. Pass it as `expectedDraftRevision` when updating or publishing.

**createdAt** `string`

ISO 8601 timestamp of creation.

**updatedAt** `string`

ISO 8601 timestamp of the last update.

**data.currentVersion** `object`

The `editable` draft version.

**version object**

**id** `string`

Unique identifier for the version.

**extractorId** `string`

The extractor this version belongs to.

**versionNumber** `integer`

Starts at `1` and increments on each publish.

**state** `string`

`editable` for the live draft, `archived` for a published version.

**name** `string`

Display name at this version.

**description** `string | null`

Description at this version.

**systemPromptMd** `string`

The system prompt. Empty string when none was set.

**promptMd** `string`

The extraction prompt.

**outputSchema** `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](https://docs.bland.ai/api-v2/post/agents-id-dispositions-extractors.md) for the full shape.

**inferenceConfig** `object`

`modelProfileKey` (a `key` from [Get Model Profile Catalog](https://docs.bland.ai/api-v2/get/agents-id-dispositions-model-profile-catalog.md)), `contextSources` (the evidence the extractor reads), and, when set, `temperature`, `maxOutputTokens`, and `thinking`.

**createdAt** `string`

ISO 8601 timestamp of creation.

**updatedAt** `string`

ISO 8601 timestamp of the last update.

**data.activeVersion** `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.

**errors** `null | array`

`null` on success, or a list of error objects if the request failed.

```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"
    }
  ]
}
```

***

Docs for agents: [llms.txt](https://docs.bland.ai/llms.txt)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.