> ## 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 Test Run Correction Revisions

> List correction revisions for one call and value.

### Overview

> [!NOTE]
>
> Dispositions are enabled per organization. If your organization does not have access, these endpoints return `404`.

Returns the correction history for one value on one call of a test run, newest revision first, up to 50 entries. Corrections are written with [Correct Test Run Value](https://docs.bland.ai/api-v2/put/agents-id-dispositions-disposition-id-runs-run-id-cases-call-id-annotations-value-id.md); only the newest revision counts as the current correction on [Get Test Run Rows](https://docs.bland.ai/api-v2/get/agents-id-dispositions-disposition-id-runs-run-id-rows.md) and in the CSV export.

### Headers

**authorization** `string` *required*

Your API key for authentication.

### Path Parameters

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

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

**run\_id** `string` *required*

The test run's unique identifier. Must be a UUID; otherwise returns `400` with the message `runId must be a valid UUID`. Returns `404 Test run not found` if it does not belong to this disposition.

**call\_id** `string` *required*

The call. Must be a UUID; otherwise returns `400` with the message `callId must be a valid UUID`. Returns `404` with the message `Test run case not found` if the call is not part of this run.

**value\_id** `string` *required*

The definition value. Must be a UUID; otherwise returns `400` with the message `valueId must be a valid UUID`. Returns `404` with the message `Disposition value not found in this run` if the run's definition snapshot has no such value.

### Response

**data.annotations** `array`

Correction revisions ordered by `revision` descending, at most 50. Empty if the cell was never corrected.

**correction object**

**id** `string`

Unique identifier for this revision.

**testRunId** `string`

The test run.

**testRunCaseId** `string`

Identifier of this call's execution within the run. Matches the `run_id` column of the CSV export.

**callId** `string`

The call.

**valueId** `string`

The definition value.

**revision** `number`

`1` for the first correction, incrementing with each later one.

**originalResult** `object`

The engine's result as it stood when the correction was saved: `valueId`, `state`, and, when present, `value`, `error`, `rationale`, `evidence`, and `executedVia`.

**correctedResult** `object`

`{ "valueId", "state" }` plus `value` when `state` is `produced`.

**explanation** `string`

The explanation supplied with the correction.

**createdBy** `string | null`

ID of the user who saved the correction, or `null` when saved with an org-level key.

**createdAt** `string`

ISO 8601 timestamp of the correction.

**data.truncated** `boolean`

`true` when more than 50 revisions exist and older ones were cut from the list.

**errors** `null | array`

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

```json Response theme={null}
{
  "data": {
    "annotations": [
      {
        "id": "71401be8-f0db-412c-9621-6fcc3a50195c",
        "testRunId": "77216b1c-2a91-496f-84df-76be610c8510",
        "testRunCaseId": "b3caa112-96c4-4bfc-b62f-20406b1f961f",
        "callId": "66a9ec46-33ea-4b56-bd4a-970706c652e8",
        "valueId": "d7e20249-0c03-49dd-9b28-70797904c6b4",
        "revision": 2,
        "originalResult": {
          "valueId": "d7e20249-0c03-49dd-9b28-70797904c6b4",
          "state": "produced",
          "value": false,
          "rationale": "No appointment time was agreed before the caller hung up."
        },
        "correctedResult": {
          "valueId": "d7e20249-0c03-49dd-9b28-70797904c6b4",
          "state": "no_value"
        },
        "explanation": "On a second listen the caller only asked about availability and never committed to a time, so there is no booking outcome to record.",
        "createdBy": "8367c610-f081-47f5-ba7d-2f9c89d26e47",
        "createdAt": "2026-09-10T21:02:15.114Z"
      },
      {
        "id": "2b34fbbf-d3cb-45fc-ad3f-cbfa95f2afbd",
        "testRunId": "77216b1c-2a91-496f-84df-76be610c8510",
        "testRunCaseId": "b3caa112-96c4-4bfc-b62f-20406b1f961f",
        "callId": "66a9ec46-33ea-4b56-bd4a-970706c652e8",
        "valueId": "d7e20249-0c03-49dd-9b28-70797904c6b4",
        "revision": 1,
        "originalResult": {
          "valueId": "d7e20249-0c03-49dd-9b28-70797904c6b4",
          "state": "produced",
          "value": false,
          "rationale": "No appointment time was agreed before the caller hung up."
        },
        "correctedResult": {
          "valueId": "d7e20249-0c03-49dd-9b28-70797904c6b4",
          "state": "produced",
          "value": true
        },
        "explanation": "The caller agreed to the slot at the very end of the call, after the agent's recap.",
        "createdBy": "8367c610-f081-47f5-ba7d-2f9c89d26e47",
        "createdAt": "2026-09-10T20:14:33.870Z"
      }
    ],
    "truncated": false
  },
  "errors": null
}
```

```json Not Found theme={null}
{
  "data": null,
  "errors": [
    {
      "error": "NOT_FOUND",
      "message": "Test run case 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.