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

# List Disposition Versions

> List a disposition's published versions, newest first.

### Overview

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

Returns the immutable versions created by [Publish Disposition](/api-v2/post/agents-id-dispositions-disposition-id-publish), highest `versionNumber` first, 25 per page. Page backwards with `beforeVersion`. Each entry carries the full frozen definition; fetch a single one with [Get Disposition Version](/api-v2/get/agents-id-dispositions-disposition-id-versions-version-id).

### 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. 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.
</ParamField>

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

### Query Parameters

<ParamField query="beforeVersion" type="integer">
  Cursor for the next page: return only versions with `versionNumber` strictly less than this value. Use the `nextCursor` from the previous response. Must be a positive integer; otherwise returns `400` with the message `beforeVersion must be a positive safe integer`.
</ParamField>

### Response

<ResponseField name="data.versions" type="array">
  Up to 25 version objects, ordered by `versionNumber` descending.

  <Expandable title="version object">
    <ResponseField name="id" type="string">
      Unique identifier for the version. Pass it as `{version_id}` to Get Disposition Version.
    </ResponseField>

    <ResponseField name="dispositionId" type="string">
      The disposition this version belongs to.
    </ResponseField>

    <ResponseField name="versionNumber" type="number">
      Sequential number starting at `1`, unique per disposition.
    </ResponseField>

    <ResponseField name="definition" type="object">
      The frozen definition, same shape as the `definition` body parameter of [Create Disposition](/api-v2/post/agents-id-dispositions). `structured_extraction` sources carry the server-written `frozen` copy of the extractor prompt, output schema, and inference configuration that this version executes; `inferenceConfig.modelProfileKey`, when present, is one of `balanced`, `fast`, or `high_accuracy`.
    </ResponseField>

    <ResponseField name="publishedAt" type="string">
      ISO 8601 timestamp of publication.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="data.nextCursor" type="number | null">
  The `versionNumber` to pass as `beforeVersion` for the next page, or `null` when there are no older versions.
</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": {
      "versions": [
        {
          "id": "af219236-2cf3-44dc-b0d8-52f312ca1ca9",
          "dispositionId": "36c8c6ea-ab36-4510-97b7-59506262bd46",
          "versionNumber": 2,
          "definition": {
            "name": "Appointment outcome",
            "description": "Did the caller book an appointment?",
            "timing": "immediate",
            "values": [
              {
                "id": "1e3731a3-03fa-4e75-a292-03a87b06b1a8",
                "key": "booked",
                "label": "Appointment booked",
                "schema": { "kind": "boolean" },
                "source": {
                  "kind": "judge",
                  "judgeId": "06bf4d35-15f7-4fc3-a707-0f2bef6a21b2",
                  "judgeVersionId": "a1579eb4-41f6-4b43-beb1-8c73b203cb63",
                  "execution": { "reasoningEffort": "auto", "inputSourceIds": ["transcript"] }
                }
              }
            ],
            "transformation": {
              "version": 1,
              "root": {
                "kind": "object",
                "fields": {
                  "booked": { "kind": "value", "valueId": "1e3731a3-03fa-4e75-a292-03a87b06b1a8" }
                }
              }
            },
            "postCallWebhook": { "mode": "emit_followup" }
          },
          "publishedAt": "2026-09-09T11:47:52.903Z"
        },
        {
          "id": "6df49c21-73c0-4217-862d-453a0edd82b1",
          "dispositionId": "36c8c6ea-ab36-4510-97b7-59506262bd46",
          "versionNumber": 1,
          "definition": {
            "name": "Appointment outcome",
            "description": "",
            "timing": "immediate",
            "values": [
              {
                "id": "1e3731a3-03fa-4e75-a292-03a87b06b1a8",
                "key": "booked",
                "label": "Appointment booked",
                "schema": { "kind": "boolean" },
                "source": {
                  "kind": "judge",
                  "judgeId": "06bf4d35-15f7-4fc3-a707-0f2bef6a21b2",
                  "judgeVersionId": "a1579eb4-41f6-4b43-beb1-8c73b203cb63",
                  "execution": { "reasoningEffort": "auto", "inputSourceIds": ["transcript"] }
                }
              }
            ],
            "transformation": {
              "version": 1,
              "root": { "kind": "value", "valueId": "1e3731a3-03fa-4e75-a292-03a87b06b1a8" }
            },
            "postCallWebhook": { "mode": "emit_followup" }
          },
          "publishedAt": "2026-09-02T16:05:19.334Z"
        }
      ],
      "nextCursor": null
    },
    "errors": null
  }
  ```

  ```json Invalid Cursor theme={null}
  {
    "data": null,
    "errors": [
      {
        "error": "BAD_REQUEST",
        "message": "beforeVersion must be a positive safe integer"
      }
    ]
  }
  ```

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

***

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