# Data review service

The data review service manages the evaluation, disposition, and historical record of checks alerts.

OpenAPI file: [`DataReviewService.json`](https://dev.nominal.io/api/_downloads/f4cab688242b711f54af137053e652d4/DataReviewService.json)

## Endpoints

### Batch initiate

POST `/scout/v2/data-review/batch-initiate`

For each request, initiates data review for the requested run and checklist and executes the automatic checks against the run.

Body

`requests` array of [`CreateDataReviewRequest`](https://dev.nominal.io/api/rest/data-review-service.md#createdatareviewrequest)
:   ​

    Fields of `CreateDataReviewRequest`

    `runRid` string (RID) required
    :   ​

    `assetRid` string (RID)
    :   Selects asset to execute data review on. Required for multi-asset runs.

    `checklistRid` string (RID) required
    :   ​

    `commit` string
    :   ​

`notificationConfigurations` array of [`NotificationConfiguration`](https://dev.nominal.io/api/rest/data-review-service.md#notificationconfiguration)
:   If provided, checklist violations will be sent to the specified integrations.

    Fields of `NotificationConfiguration`

    `integrationRid` string (RID) required
    :   ​

    `notificationFilters` array of [`NotificationFilter`](https://dev.nominal.io/api/rest/data-review-service.md#notificationfilter)
    :   Specifies the type of notifications to filter. If not provided, all notifications are sent.

        Values of `NotificationFilter`

        `EXECUTION_ERROR`
        :   ​

    `appendedWorkbookRid` string (RID)
    :   If provided, appends a link to the workbook specified by the RID to the notification.

    `tags` array of string
    :   20 tags max, 50 characters max each. Tags are used to filter messages in Opsgenie. For other integrations, tags are ignored.

    `muteUntil` string (date-time)
    :   If provided, all notifications for this channel are suppressed until the specified time. The streaming checklist continues to evaluate, but no notifications are sent. Once the time has passed, notifications resume automatically.

Response

`rids` array of string (RID)
:   ​

Request

**curl**

```shell
curl -X POST "https://api.gov.nominal.io/api/scout/v2/data-review/batch-initiate" \
  -H "Authorization: Bearer <api key>" \
  -H "Content-Type: application/json" \
  --data '{
  "requests": [
    {
      "runRid": "<run rid>",
      "checklistRid": "<checklist rid>"
    }
  ],
  "notificationConfigurations": [
    {
      "integrationRid": "<integration rid>"
    }
  ]
}'
```

**requests**

```python
import requests

response = requests.post(
    "https://api.gov.nominal.io/api/scout/v2/data-review/batch-initiate",
    headers={"Authorization": "Bearer <api key>"},
    json={
        "requests": [{"runRid": "<run rid>", "checklistRid": "<checklist rid>"}],
        "notificationConfigurations": [{"integrationRid": "<integration rid>"}],
    },
)
response.raise_for_status()
print(response.json())
```

**httpx**

```python
import httpx

response = httpx.post(
    "https://api.gov.nominal.io/api/scout/v2/data-review/batch-initiate",
    headers={"Authorization": "Bearer <api key>"},
    json={
        "requests": [{"runRid": "<run rid>", "checklistRid": "<checklist rid>"}],
        "notificationConfigurations": [{"integrationRid": "<integration rid>"}],
    },
)
response.raise_for_status()
print(response.json())
```

**aiohttp**

```python
import asyncio

import aiohttp

async def main() -> None:
    async with aiohttp.ClientSession() as session:
        async with session.post(
            "https://api.gov.nominal.io/api/scout/v2/data-review/batch-initiate",
            headers={"Authorization": "Bearer <api key>"},
            json={
                "requests": [{"runRid": "<run rid>", "checklistRid": "<checklist rid>"}],
                "notificationConfigurations": [{"integrationRid": "<integration rid>"}],
            },
        ) as response:
            response.raise_for_status()
            print(await response.json())

asyncio.run(main())
```

Response: `200`

```json
{
  "rids": [
    "<data review rid>"
  ]
}
```

### Rerun failed automatic checks

POST `/scout/v2/data-review/rerun-failed-automatic-checks`

Re-executes the most recent failed automatic checks for the data review.

Body

`dataReviewRid` string (RID) required
:   ​

Response

No content (HTTP 204).

Request

**curl**

```shell
curl -X POST "https://api.gov.nominal.io/api/scout/v2/data-review/rerun-failed-automatic-checks" \
  -H "Authorization: Bearer <api key>" \
  -H "Content-Type: application/json" \
  --data '{
  "dataReviewRid": "<data review rid>"
}'
```

**requests**

```python
import requests

response = requests.post(
    "https://api.gov.nominal.io/api/scout/v2/data-review/rerun-failed-automatic-checks",
    headers={"Authorization": "Bearer <api key>"},
    json={"dataReviewRid": "<data review rid>"},
)
response.raise_for_status()
```

**httpx**

```python
import httpx

response = httpx.post(
    "https://api.gov.nominal.io/api/scout/v2/data-review/rerun-failed-automatic-checks",
    headers={"Authorization": "Bearer <api key>"},
    json={"dataReviewRid": "<data review rid>"},
)
response.raise_for_status()
```

**aiohttp**

```python
import asyncio

import aiohttp

async def main() -> None:
    async with aiohttp.ClientSession() as session:
        async with session.post(
            "https://api.gov.nominal.io/api/scout/v2/data-review/rerun-failed-automatic-checks",
            headers={"Authorization": "Bearer <api key>"},
            json={"dataReviewRid": "<data review rid>"},
        ) as response:
            response.raise_for_status()

asyncio.run(main())
```

Response: `204`

No content.

### Find data reviews

POST `/scout/v2/data-review/search`

Returns the data reviews under the provided search parameters.

Body

`runRids` array of string (RID)
:   ​

`assetRids` array of string (RID)
:   ​

`filterByBothRunsAndAssets` boolean
:   If true, results are filtered to data reviews w/ both run and asset in the requested runs/assets. Defaults to false, where assets are converted to runs and all data reviews under the linked runs (including data reviews on other assets sharing the parent run) will be returned. It is recommended to set this to true and pass in asset RIDs for multi-asset runs. Toggling this option has no effect if no asset RIDs are supplied.

`checklistRefs` array of [`ChecklistRef`](https://dev.nominal.io/api/rest/data-review-service.md#checklistref)
:   ​

    Fields of `ChecklistRef`

    `rid` string (RID) required
    :   ​

    `commit` string
    :   ​

`nextPageToken` string
:   ​

`pageSize` integer
:   Defaults to 1000. Will throw if larger than 1000.

`showArchived` boolean
:   To be deprecated. Use archivedStatuses instead. Allows for inclusion of archived data reviews in search results alongside non-archived ones. Defaults to false if not specified.

`archivedStatuses` array of [`ArchivedStatus`](https://dev.nominal.io/api/rest/data-review-service.md#archivedstatus)
:   Filters search on data reviews based on the archived statuses provided. Default is NOT_ARCHIVED only if none are provided.

    Values of `ArchivedStatus`

    `NOT_ARCHIVED`
    :   ​

    `ARCHIVED`
    :   ​

Response

`dataReviews` array of [`DataReview`](https://dev.nominal.io/api/rest/data-review-service.md#datareview)
:   ​

    Fields of `DataReview`

    `rid` string (RID)
    :   ​

    `runRid` string (RID)
    :   ​

    `assetRid` string (RID)
    :   ​

    `createdAt` string (date-time)
    :   ​

    `createdBy` string (RID)
    :   ​

    `checklist` [`ChecklistEvaluation`](https://dev.nominal.io/api/rest/data-review-service.md#checklistevaluation) deprecated
    :   **Deprecated:** This field is deprecated and will be removed in a future version.

        Fields of `ChecklistEvaluation`

        `checklist` [`PinnedChecklistRef`](https://dev.nominal.io/api/rest/data-review-service.md#pinnedchecklistref)
        :   ​

            Fields of `PinnedChecklistRef`

            `rid` string (RID)
            :   ​

            `commit` string
            :   ​

        `dataReviewRid` string (RID)
        :   ​

        `checks` array of [`CheckEvaluation`](https://dev.nominal.io/api/rest/data-review-service.md#checkevaluation)
        :   ​

            **automaticCheck**

            Set `type` to `"automaticCheck"`.

            `automaticCheck` [`AutomaticCheckEvaluation`](https://dev.nominal.io/api/rest/data-review-service.md#automaticcheckevaluation)
            :   ​

                Fields of `AutomaticCheckEvaluation`

                `rid` string (RID)
                :   ​

                `checkRid` string (RID)
                :   ​

                `checkImplementationIndex` integer
                :   Checks can define a single range computation which can evaluate over multiple implementations of a context. The check implementation index will correspond to the implementation index of the check condition.

                `dataReviewRid` string (RID)
                :   ​

                `state` [`AutomaticCheckEvaluationState`](https://dev.nominal.io/api/rest/data-review-service.md#automaticcheckevaluationstate)
                :   ​

                    **pendingExecution**

                    Set `type` to `"pendingExecution"`.

                    `pendingExecution` [`PendingExecutionState`](https://dev.nominal.io/api/rest/data-review-service.md#pendingexecutionstate)
                    :   ​

                        Fields of `PendingExecutionState`

                        `jobRid` string (RID)
                        :   ​

                    **failedToExecute**

                    Set `type` to `"failedToExecute"`.

                    `failedToExecute` [`FailedToExecuteState`](https://dev.nominal.io/api/rest/data-review-service.md#failedtoexecutestate)
                    :   ​

                        Fields of `FailedToExecuteState`

                        `jobRid` string (RID)
                        :   ​

                        `reviewState` [`CheckAlertState`](https://dev.nominal.io/api/rest/data-review-service.md#checkalertstate)
                        :   ​

                            **pendingReview**

                            Set `type` to `"pendingReview"`.

                            `pendingReview` [`PendingReviewAlertState`](https://dev.nominal.io/api/rest/data-review-service.md#pendingreviewalertstate)
                            :   ​

                            **closedWithFurtherAction**

                            Set `type` to `"closedWithFurtherAction"`.

                            `closedWithFurtherAction` [`ClosedWithFurtherActionAlertState`](https://dev.nominal.io/api/rest/data-review-service.md#closedwithfurtheractionalertstate)
                            :   ​

                                Fields of `ClosedWithFurtherActionAlertState`

                                `comment` string
                                :   ​

                                `closedBy` string (RID)
                                :   ​

                            **closedWithIgnore**

                            Set `type` to `"closedWithIgnore"`.

                            `closedWithIgnore` [`ClosedWithIgnoreAlertState`](https://dev.nominal.io/api/rest/data-review-service.md#closedwithignorealertstate)
                            :   ​

                                Fields of `ClosedWithIgnoreAlertState`

                                `comment` string
                                :   ​

                                `closedBy` string (RID)
                                :   ​

                        `reviewNotes` string
                        :   ​

                        `assigneeRids` array of string (RID)
                        :   ​

                    **passing**

                    Set `type` to `"passing"`.

                    `passing` [`PassingExecutionState`](https://dev.nominal.io/api/rest/data-review-service.md#passingexecutionstate)
                    :   ​

                    **generatedAlerts**

                    Set `type` to `"generatedAlerts"`.

                    `generatedAlerts` [`GeneratedAlertsState`](https://dev.nominal.io/api/rest/data-review-service.md#generatedalertsstate)
                    :   ​

                        Fields of `GeneratedAlertsState`

                        `rids` array of string (RID) deprecated
                        :   **Deprecated:** This field is deprecated and will be removed in a future version. Use eventRids instead.

                        `eventRids` array of string (RID)
                        :   ​

                    **tooManyAlerts**

                    Set `type` to `"tooManyAlerts"`.

                    `tooManyAlerts` [`TooManyAlertsState`](https://dev.nominal.io/api/rest/data-review-service.md#toomanyalertsstate)
                    :   ​

                    **executing**

                    Set `type` to `"executing"`.

                    `executing` [`ExecutingState`](https://dev.nominal.io/api/rest/data-review-service.md#executingstate)
                    :   ​

                        Fields of `ExecutingState`

                        `jobRid` string (RID)
                        :   ​

            **manualCheck**

            Set `type` to `"manualCheck"`.

            `manualCheck` [`ManualCheckEvaluation`](https://dev.nominal.io/api/rest/data-review-service.md#manualcheckevaluation)
            :   ​

                Fields of `ManualCheckEvaluation`

                `rid` string (RID)
                :   ​

                `checkRid` string (RID)
                :   ​

                `dataReviewRid` string (RID)
                :   ​

                `state` [`ManualCheckEvaluationState`](https://dev.nominal.io/api/rest/data-review-service.md#manualcheckevaluationstate)
                :   ​

                    **pendingReview**

                    Set `type` to `"pendingReview"`.

                    `pendingReview` [`PendingReviewState`](https://dev.nominal.io/api/rest/data-review-service.md#pendingreviewstate)
                    :   ​

                    **closedWithFurtherAction**

                    Set `type` to `"closedWithFurtherAction"`.

                    `closedWithFurtherAction` [`ClosedWithFurtherActionState`](https://dev.nominal.io/api/rest/data-review-service.md#closedwithfurtheractionstate)
                    :   ​

                        Fields of `ClosedWithFurtherActionState`

                        `comment` string
                        :   ​

                        `closedBy` string (RID)
                        :   ​

                    **passing**

                    Set `type` to `"passing"`.

                    `passing` [`PassState`](https://dev.nominal.io/api/rest/data-review-service.md#passstate)
                    :   ​

                        Fields of `PassState`

                        `comment` string
                        :   ​

                        `closedBy` string (RID)
                        :   ​

                `assigneeRids` array of string (RID)
                :   ​

                `chart` [`VersionedVizId`](https://dev.nominal.io/api/rest/data-review-service.md#versionedvizid) deprecated
                :   **Deprecated:** charts are no longer versioned resources.

                    Fields of `VersionedVizId`

                    `rid` string
                    :   ​

                    `version` integer
                    :   ​

                `notes` string
                :   ​

                `notebook` string (RID)
                :   ​

    `checklistRef` [`PinnedChecklistRef`](https://dev.nominal.io/api/rest/data-review-service.md#pinnedchecklistref)
    :   ​

    `checkEvaluations` array of [`AutomaticCheckEvaluation`](https://dev.nominal.io/api/rest/data-review-service.md#automaticcheckevaluation)
    :   ​

    `archived` boolean
    :   ​

`nextPageToken` string
:   ​

Request

**curl**

```shell
curl -X POST "https://api.gov.nominal.io/api/scout/v2/data-review/search" \
  -H "Authorization: Bearer <api key>" \
  -H "Content-Type: application/json" \
  --data '{
  "runRids": [
    "<run rid>"
  ],
  "assetRids": [
    "<asset rid>"
  ],
  "filterByBothRunsAndAssets": true,
  "checklistRefs": [
    {
      "rid": "<checklist rid>"
    }
  ],
  "nextPageToken": "<token>",
  "pageSize": 1,
  "showArchived": true,
  "archivedStatuses": [
    "NOT_ARCHIVED"
  ]
}'
```

**requests**

```python
import requests

response = requests.post(
    "https://api.gov.nominal.io/api/scout/v2/data-review/search",
    headers={"Authorization": "Bearer <api key>"},
    json={
        "runRids": ["<run rid>"],
        "assetRids": ["<asset rid>"],
        "filterByBothRunsAndAssets": True,
        "checklistRefs": [{"rid": "<checklist rid>"}],
        "nextPageToken": "<token>",
        "pageSize": 1,
        "showArchived": True,
        "archivedStatuses": ["NOT_ARCHIVED"],
    },
)
response.raise_for_status()
print(response.json())
```

**httpx**

```python
import httpx

response = httpx.post(
    "https://api.gov.nominal.io/api/scout/v2/data-review/search",
    headers={"Authorization": "Bearer <api key>"},
    json={
        "runRids": ["<run rid>"],
        "assetRids": ["<asset rid>"],
        "filterByBothRunsAndAssets": True,
        "checklistRefs": [{"rid": "<checklist rid>"}],
        "nextPageToken": "<token>",
        "pageSize": 1,
        "showArchived": True,
        "archivedStatuses": ["NOT_ARCHIVED"],
    },
)
response.raise_for_status()
print(response.json())
```

**aiohttp**

```python
import asyncio

import aiohttp

async def main() -> None:
    async with aiohttp.ClientSession() as session:
        async with session.post(
            "https://api.gov.nominal.io/api/scout/v2/data-review/search",
            headers={"Authorization": "Bearer <api key>"},
            json={
                "runRids": ["<run rid>"],
                "assetRids": ["<asset rid>"],
                "filterByBothRunsAndAssets": True,
                "checklistRefs": [{"rid": "<checklist rid>"}],
                "nextPageToken": "<token>",
                "pageSize": 1,
                "showArchived": True,
                "archivedStatuses": ["NOT_ARCHIVED"],
            },
        ) as response:
            response.raise_for_status()
            print(await response.json())

asyncio.run(main())
```

Response: `200`

```json
{
  "dataReviews": [
    {
      "rid": "<data review rid>",
      "runRid": "<run rid>",
      "assetRid": "<asset rid>",
      "createdAt": "2026-01-01T00:00:00Z",
      "createdBy": "<user rid>",
      "checklist": {
        "checklist": {
          "rid": "<checklist rid>",
          "commit": "<commit id>"
        },
        "dataReviewRid": "<data review rid>",
        "checks": [
          {
            "type": "automaticCheck",
            "automaticCheck": {
              "rid": "<automatic check evaluation rid>",
              "checkRid": "<check rid>",
              "checkImplementationIndex": 1,
              "dataReviewRid": "<data review rid>",
              "state": {
                "type": "pendingExecution",
                "pendingExecution": {
                  "jobRid": "<job rid>"
                }
              }
            }
          }
        ]
      },
      "checklistRef": {
        "rid": "<checklist rid>",
        "commit": "<commit id>"
      },
      "checkEvaluations": [
        {
          "rid": "<automatic check evaluation rid>",
          "checkRid": "<check rid>",
          "checkImplementationIndex": 1,
          "dataReviewRid": "<data review rid>",
          "state": {
            "type": "pendingExecution",
            "pendingExecution": {
              "jobRid": "<job rid>"
            }
          }
        }
      ],
      "archived": true
    }
  ],
  "nextPageToken": "<token>"
}
```

### Get

GET `/scout/v2/data-review/{dataReviewRid}`

Throws if not found.

Path parameters

`dataReviewRid` string (RID) required
:   ​

Response

`rid` string (RID)
:   ​

`runRid` string (RID)
:   ​

`assetRid` string (RID)
:   ​

`createdAt` string (date-time)
:   ​

`createdBy` string (RID)
:   ​

`checklist` [`ChecklistEvaluation`](https://dev.nominal.io/api/rest/data-review-service.md#checklistevaluation) deprecated
:   **Deprecated:** This field is deprecated and will be removed in a future version.

    Fields of `ChecklistEvaluation`

    `checklist` [`PinnedChecklistRef`](https://dev.nominal.io/api/rest/data-review-service.md#pinnedchecklistref)
    :   ​

        Fields of `PinnedChecklistRef`

        `rid` string (RID)
        :   ​

        `commit` string
        :   ​

    `dataReviewRid` string (RID)
    :   ​

    `checks` array of [`CheckEvaluation`](https://dev.nominal.io/api/rest/data-review-service.md#checkevaluation)
    :   ​

        **automaticCheck**

        Set `type` to `"automaticCheck"`.

        `automaticCheck` [`AutomaticCheckEvaluation`](https://dev.nominal.io/api/rest/data-review-service.md#automaticcheckevaluation)
        :   ​

            Fields of `AutomaticCheckEvaluation`

            `rid` string (RID)
            :   ​

            `checkRid` string (RID)
            :   ​

            `checkImplementationIndex` integer
            :   Checks can define a single range computation which can evaluate over multiple implementations of a context. The check implementation index will correspond to the implementation index of the check condition.

            `dataReviewRid` string (RID)
            :   ​

            `state` [`AutomaticCheckEvaluationState`](https://dev.nominal.io/api/rest/data-review-service.md#automaticcheckevaluationstate)
            :   ​

                **pendingExecution**

                Set `type` to `"pendingExecution"`.

                `pendingExecution` [`PendingExecutionState`](https://dev.nominal.io/api/rest/data-review-service.md#pendingexecutionstate)
                :   ​

                    Fields of `PendingExecutionState`

                    `jobRid` string (RID)
                    :   ​

                **failedToExecute**

                Set `type` to `"failedToExecute"`.

                `failedToExecute` [`FailedToExecuteState`](https://dev.nominal.io/api/rest/data-review-service.md#failedtoexecutestate)
                :   ​

                    Fields of `FailedToExecuteState`

                    `jobRid` string (RID)
                    :   ​

                    `reviewState` [`CheckAlertState`](https://dev.nominal.io/api/rest/data-review-service.md#checkalertstate)
                    :   ​

                        **pendingReview**

                        Set `type` to `"pendingReview"`.

                        `pendingReview` [`PendingReviewAlertState`](https://dev.nominal.io/api/rest/data-review-service.md#pendingreviewalertstate)
                        :   ​

                        **closedWithFurtherAction**

                        Set `type` to `"closedWithFurtherAction"`.

                        `closedWithFurtherAction` [`ClosedWithFurtherActionAlertState`](https://dev.nominal.io/api/rest/data-review-service.md#closedwithfurtheractionalertstate)
                        :   ​

                            Fields of `ClosedWithFurtherActionAlertState`

                            `comment` string
                            :   ​

                            `closedBy` string (RID)
                            :   ​

                        **closedWithIgnore**

                        Set `type` to `"closedWithIgnore"`.

                        `closedWithIgnore` [`ClosedWithIgnoreAlertState`](https://dev.nominal.io/api/rest/data-review-service.md#closedwithignorealertstate)
                        :   ​

                            Fields of `ClosedWithIgnoreAlertState`

                            `comment` string
                            :   ​

                            `closedBy` string (RID)
                            :   ​

                    `reviewNotes` string
                    :   ​

                    `assigneeRids` array of string (RID)
                    :   ​

                **passing**

                Set `type` to `"passing"`.

                `passing` [`PassingExecutionState`](https://dev.nominal.io/api/rest/data-review-service.md#passingexecutionstate)
                :   ​

                **generatedAlerts**

                Set `type` to `"generatedAlerts"`.

                `generatedAlerts` [`GeneratedAlertsState`](https://dev.nominal.io/api/rest/data-review-service.md#generatedalertsstate)
                :   ​

                    Fields of `GeneratedAlertsState`

                    `rids` array of string (RID) deprecated
                    :   **Deprecated:** This field is deprecated and will be removed in a future version. Use eventRids instead.

                    `eventRids` array of string (RID)
                    :   ​

                **tooManyAlerts**

                Set `type` to `"tooManyAlerts"`.

                `tooManyAlerts` [`TooManyAlertsState`](https://dev.nominal.io/api/rest/data-review-service.md#toomanyalertsstate)
                :   ​

                **executing**

                Set `type` to `"executing"`.

                `executing` [`ExecutingState`](https://dev.nominal.io/api/rest/data-review-service.md#executingstate)
                :   ​

                    Fields of `ExecutingState`

                    `jobRid` string (RID)
                    :   ​

        **manualCheck**

        Set `type` to `"manualCheck"`.

        `manualCheck` [`ManualCheckEvaluation`](https://dev.nominal.io/api/rest/data-review-service.md#manualcheckevaluation)
        :   ​

            Fields of `ManualCheckEvaluation`

            `rid` string (RID)
            :   ​

            `checkRid` string (RID)
            :   ​

            `dataReviewRid` string (RID)
            :   ​

            `state` [`ManualCheckEvaluationState`](https://dev.nominal.io/api/rest/data-review-service.md#manualcheckevaluationstate)
            :   ​

                **pendingReview**

                Set `type` to `"pendingReview"`.

                `pendingReview` [`PendingReviewState`](https://dev.nominal.io/api/rest/data-review-service.md#pendingreviewstate)
                :   ​

                **closedWithFurtherAction**

                Set `type` to `"closedWithFurtherAction"`.

                `closedWithFurtherAction` [`ClosedWithFurtherActionState`](https://dev.nominal.io/api/rest/data-review-service.md#closedwithfurtheractionstate)
                :   ​

                    Fields of `ClosedWithFurtherActionState`

                    `comment` string
                    :   ​

                    `closedBy` string (RID)
                    :   ​

                **passing**

                Set `type` to `"passing"`.

                `passing` [`PassState`](https://dev.nominal.io/api/rest/data-review-service.md#passstate)
                :   ​

                    Fields of `PassState`

                    `comment` string
                    :   ​

                    `closedBy` string (RID)
                    :   ​

            `assigneeRids` array of string (RID)
            :   ​

            `chart` [`VersionedVizId`](https://dev.nominal.io/api/rest/data-review-service.md#versionedvizid) deprecated
            :   **Deprecated:** charts are no longer versioned resources.

                Fields of `VersionedVizId`

                `rid` string
                :   ​

                `version` integer
                :   ​

            `notes` string
            :   ​

            `notebook` string (RID)
            :   ​

`checklistRef` [`PinnedChecklistRef`](https://dev.nominal.io/api/rest/data-review-service.md#pinnedchecklistref)
:   ​

`checkEvaluations` array of [`AutomaticCheckEvaluation`](https://dev.nominal.io/api/rest/data-review-service.md#automaticcheckevaluation)
:   ​

`archived` boolean
:   ​

Request

**curl**

```shell
curl "https://api.gov.nominal.io/api/scout/v2/data-review/<data review rid>" \
  -H "Authorization: Bearer <api key>"
```

**requests**

```python
import requests

response = requests.get(
    "https://api.gov.nominal.io/api/scout/v2/data-review/<data review rid>",
    headers={"Authorization": "Bearer <api key>"},
)
response.raise_for_status()
print(response.json())
```

**httpx**

```python
import httpx

response = httpx.get(
    "https://api.gov.nominal.io/api/scout/v2/data-review/<data review rid>",
    headers={"Authorization": "Bearer <api key>"},
)
response.raise_for_status()
print(response.json())
```

**aiohttp**

```python
import asyncio

import aiohttp

async def main() -> None:
    async with aiohttp.ClientSession() as session:
        async with session.get(
            "https://api.gov.nominal.io/api/scout/v2/data-review/<data review rid>",
            headers={"Authorization": "Bearer <api key>"},
        ) as response:
            response.raise_for_status()
            print(await response.json())

asyncio.run(main())
```

Response: `200`

```json
{
  "rid": "<data review rid>",
  "runRid": "<run rid>",
  "assetRid": "<asset rid>",
  "createdAt": "2026-01-01T00:00:00Z",
  "createdBy": "<user rid>",
  "checklist": {
    "checklist": {
      "rid": "<checklist rid>",
      "commit": "<commit id>"
    },
    "dataReviewRid": "<data review rid>",
    "checks": [
      {
        "type": "automaticCheck",
        "automaticCheck": {
          "rid": "<automatic check evaluation rid>",
          "checkRid": "<check rid>",
          "checkImplementationIndex": 1,
          "dataReviewRid": "<data review rid>",
          "state": {
            "type": "pendingExecution",
            "pendingExecution": {
              "jobRid": "<job rid>"
            }
          }
        }
      }
    ]
  },
  "checklistRef": {
    "rid": "<checklist rid>",
    "commit": "<commit id>"
  },
  "checkEvaluations": [
    {
      "rid": "<automatic check evaluation rid>",
      "checkRid": "<check rid>",
      "checkImplementationIndex": 1,
      "dataReviewRid": "<data review rid>",
      "state": {
        "type": "pendingExecution",
        "pendingExecution": {
          "jobRid": "<job rid>"
        }
      }
    }
  ],
  "archived": true
}
```

### Get check alert

GET `/scout/v2/data-review/check-alerts/{checkAlertRid}`

**Deprecated:** CheckAlerts have been replaced by Events. Please use the EventService instead.

Throws if not found.

Path parameters

`checkAlertRid` string (RID) required
:   ​

Response

`rid` string (RID)
:   ​

`checkRid` string (RID)
:   ​

`implementationIndex` integer
:   ​

`dataReviewRid` string (RID)
:   ​

`checkEvaluationRid` string (RID)
:   ​

`name` string
:   ​

`autogeneratedCheckTitle` string
:   ​

`autogeneratedCheckDescription` string
:   ​

`assigneeRids` array of string (RID)
:   ​

`start` [`Timestamp`](https://dev.nominal.io/api/rest/data-review-service.md#timestamp)
:   ​

    Fields of `Timestamp`

    `seconds` integer (int64)
    :   ​

    `nanos` integer (int64)
    :   ​

`end` [`Timestamp`](https://dev.nominal.io/api/rest/data-review-service.md#timestamp)
:   ​

`state` [`CheckAlertState`](https://dev.nominal.io/api/rest/data-review-service.md#checkalertstate)
:   ​

    **pendingReview**

    Set `type` to `"pendingReview"`.

    `pendingReview` [`PendingReviewAlertState`](https://dev.nominal.io/api/rest/data-review-service.md#pendingreviewalertstate)
    :   ​

    **closedWithFurtherAction**

    Set `type` to `"closedWithFurtherAction"`.

    `closedWithFurtherAction` [`ClosedWithFurtherActionAlertState`](https://dev.nominal.io/api/rest/data-review-service.md#closedwithfurtheractionalertstate)
    :   ​

        Fields of `ClosedWithFurtherActionAlertState`

        `comment` string
        :   ​

        `closedBy` string (RID)
        :   ​

    **closedWithIgnore**

    Set `type` to `"closedWithIgnore"`.

    `closedWithIgnore` [`ClosedWithIgnoreAlertState`](https://dev.nominal.io/api/rest/data-review-service.md#closedwithignorealertstate)
    :   ​

        Fields of `ClosedWithIgnoreAlertState`

        `comment` string
        :   ​

        `closedBy` string (RID)
        :   ​

`priority` [`Priority`](https://dev.nominal.io/api/rest/data-review-service.md#priority)
:   ​

    Values of `Priority`

    `P0`
    :   ​

    `P1`
    :   ​

    `P2`
    :   ​

    `P3`
    :   ​

    `P4`
    :   ​

`chart` [`VersionedVizId`](https://dev.nominal.io/api/rest/data-review-service.md#versionedvizid) deprecated
:   **Deprecated:** charts are no longer versioned resources.

    Fields of `VersionedVizId`

    `rid` string
    :   ​

    `version` integer
    :   ​

`notes` string
:   ​

`notebook` string (RID)
:   ​

Request

**curl**

```shell
curl "https://api.gov.nominal.io/api/scout/v2/data-review/check-alerts/<check alert rid>" \
  -H "Authorization: Bearer <api key>"
```

**requests**

```python
import requests

response = requests.get(
    "https://api.gov.nominal.io/api/scout/v2/data-review/check-alerts/<check alert rid>",
    headers={"Authorization": "Bearer <api key>"},
)
response.raise_for_status()
print(response.json())
```

**httpx**

```python
import httpx

response = httpx.get(
    "https://api.gov.nominal.io/api/scout/v2/data-review/check-alerts/<check alert rid>",
    headers={"Authorization": "Bearer <api key>"},
)
response.raise_for_status()
print(response.json())
```

**aiohttp**

```python
import asyncio

import aiohttp

async def main() -> None:
    async with aiohttp.ClientSession() as session:
        async with session.get(
            "https://api.gov.nominal.io/api/scout/v2/data-review/check-alerts/<check alert rid>",
            headers={"Authorization": "Bearer <api key>"},
        ) as response:
            response.raise_for_status()
            print(await response.json())

asyncio.run(main())
```

Response: `200`

```json
{
  "rid": "<check alert rid>",
  "checkRid": "<check rid>",
  "implementationIndex": 1,
  "dataReviewRid": "<data review rid>",
  "checkEvaluationRid": "<automatic check evaluation rid>",
  "name": "<name>",
  "autogeneratedCheckTitle": "<autogenerated check title>",
  "autogeneratedCheckDescription": "<autogenerated check description>",
  "assigneeRids": [
    "<user rid>"
  ],
  "start": {
    "seconds": 1,
    "nanos": 1
  },
  "end": {
    "seconds": 1,
    "nanos": 1
  },
  "state": {
    "type": "pendingReview",
    "pendingReview": {}
  },
  "priority": "P0",
  "chart": {
    "rid": "<viz id>",
    "version": 1
  },
  "notes": "<notes>",
  "notebook": "<notebook rid>"
}
```

### Perform check alert action

PUT `/scout/v2/data-review/check-alerts/{checkAlertRid}`

**Deprecated:** CheckAlerts have been replaced by Events. Please use the EventService instead.

Applies a check alert action to the specified check alert RID.

Path parameters

`checkAlertRid` string (RID) required
:   ​

Body

A [`CheckAlertAction`](https://dev.nominal.io/api/rest/data-review-service.md#checkalertaction) union.

**closeWithIgnore**

Set `type` to `"closeWithIgnore"`.

`closeWithIgnore` [`CloseWithIgnoreAlert`](https://dev.nominal.io/api/rest/data-review-service.md#closewithignorealert)
:   ​

    Fields of `CloseWithIgnoreAlert`

    `comment` string required
    :   ​

    `strategy` [`CloseStrategy`](https://dev.nominal.io/api/rest/data-review-service.md#closestrategy)
    :   Defines the strategy for closing the alert and any alerts linked via an associated notebook. If not provided, the default strategy is closeAllLinkedAlerts.

        **closeAllLinkedAlerts**

        Set `type` to `"closeAllLinkedAlerts"`.

        `closeAllLinkedAlerts` [`CloseAllLinkedAlerts`](https://dev.nominal.io/api/rest/data-review-service.md#closealllinkedalerts)
        :   ​

        **closeAndDetachFromNotebook**

        Set `type` to `"closeAndDetachFromNotebook"`.

        `closeAndDetachFromNotebook` [`CloseAndDetachFromNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#closeanddetachfromnotebook)
        :   ​

        **closeAndDuplicatePreviouslyLinkedNotebook**

        Set `type` to `"closeAndDuplicatePreviouslyLinkedNotebook"`.

        `closeAndDuplicatePreviouslyLinkedNotebook` [`CloseAndDuplicatePreviouslyLinkedNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#closeandduplicatepreviouslylinkednotebook)
        :   ​

**closeWithFurtherAction**

Set `type` to `"closeWithFurtherAction"`.

`closeWithFurtherAction` [`CloseWithFurtherAction`](https://dev.nominal.io/api/rest/data-review-service.md#closewithfurtheraction)
:   ​

    Fields of `CloseWithFurtherAction`

    `comment` string required
    :   ​

    `strategy` [`CloseStrategy`](https://dev.nominal.io/api/rest/data-review-service.md#closestrategy)
    :   Defines the strategy for reopening the alert and any alerts linked via an associated notebook. If not provided, the alert will be closed naively and throw if it leaves a linked notebook in an invalid state.

**reopen**

Set `type` to `"reopen"`.

`reopen` [`Reopen`](https://dev.nominal.io/api/rest/data-review-service.md#reopen)
:   ​

    Fields of `Reopen`

    `comment` string required
    :   ​

    `strategy` [`ReopenStrategy`](https://dev.nominal.io/api/rest/data-review-service.md#reopenstrategy)
    :   Defines the strategy for reopening the alert and any alerts linked via an associated notebook. If not provided, the default strategy is reopenAllLinkedAlerts.

        **reopenAllLinkedAlerts**

        Set `type` to `"reopenAllLinkedAlerts"`.

        `reopenAllLinkedAlerts` [`ReopenAllLinkedAlerts`](https://dev.nominal.io/api/rest/data-review-service.md#reopenalllinkedalerts)
        :   ​

        **reopenAndDetachFromNotebook**

        Set `type` to `"reopenAndDetachFromNotebook"`.

        `reopenAndDetachFromNotebook` [`ReopenAndDetachFromNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#reopenanddetachfromnotebook)
        :   ​

        **reopenAndDuplicatePreviouslyLinkedNotebook**

        Set `type` to `"reopenAndDuplicatePreviouslyLinkedNotebook"`.

        `reopenAndDuplicatePreviouslyLinkedNotebook` [`ReopenAndDuplicatePreviouslyLinkedNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#reopenandduplicatepreviouslylinkednotebook)
        :   ​

**reassign**

Set `type` to `"reassign"`.

`reassign` [`Reassign`](https://dev.nominal.io/api/rest/data-review-service.md#reassign)
:   ​

    Fields of `Reassign`

    `assigneeRids` array of string (RID)
    :   ​

**updateNotes**

Set `type` to `"updateNotes"`.

`updateNotes` [`UpdateNotes`](https://dev.nominal.io/api/rest/data-review-service.md#updatenotes)
:   ​

    Fields of `UpdateNotes`

    `notes` string required
    :   ​

**linkNotebook**

Set `type` to `"linkNotebook"`.

`linkNotebook` [`LinkNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#linknotebook)
:   ​

    Fields of `LinkNotebook`

    `rid` string (RID) required
    :   ​

    `strategy` [`LinkNotebookStrategy`](https://dev.nominal.io/api/rest/data-review-service.md#linknotebookstrategy)
    :   Defines the strategy for reconciling the alert with any linked alerts via the associated notebook. If not provided, the alert will be linked naively and throw if it leaves a linked notebook in an invalid state.

        **duplicateAndLinkToNewNotebook**

        Set `type` to `"duplicateAndLinkToNewNotebook"`.

        `duplicateAndLinkToNewNotebook` [`DuplicateAndLinkNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#duplicateandlinknotebook)
        :   ​

        **closeAndLink**

        Set `type` to `"closeAndLink"`.

        `closeAndLink` [`CloseAndLinkToNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#closeandlinktonotebook)
        :   ​

            Fields of `CloseAndLinkToNotebook`

            `closeAction` [`CloseAction`](https://dev.nominal.io/api/rest/data-review-service.md#closeaction) required
            :   ​

                **closeWithIgnore**

                Set `type` to `"closeWithIgnore"`.

                `closeWithIgnore` [`CloseWithIgnoreAlert`](https://dev.nominal.io/api/rest/data-review-service.md#closewithignorealert)
                :   ​

                **closeWithFurtherAction**

                Set `type` to `"closeWithFurtherAction"`.

                `closeWithFurtherAction` [`CloseWithFurtherAction`](https://dev.nominal.io/api/rest/data-review-service.md#closewithfurtheraction)
                :   ​

        **reopenAndLink**

        Set `type` to `"reopenAndLink"`.

        `reopenAndLink` [`ReopenAndLinkToNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#reopenandlinktonotebook)
        :   ​

            Fields of `ReopenAndLinkToNotebook`

            `comment` string required
            :   ​

**unlinkNotebook**

Set `type` to `"unlinkNotebook"`.

`unlinkNotebook` [`UnlinkNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#unlinknotebook)
:   ​

**archiveDataReview**

Set `type` to `"archiveDataReview"`.

`archiveDataReview` [`ArchiveDataReview`](https://dev.nominal.io/api/rest/data-review-service.md#archivedatareview)
:   ​

**unarchiveDataReview**

Set `type` to `"unarchiveDataReview"`.

`unarchiveDataReview` [`UnarchiveDataReview`](https://dev.nominal.io/api/rest/data-review-service.md#unarchivedatareview)
:   ​

Response

`rid` string (RID)
:   ​

`checkRid` string (RID)
:   ​

`implementationIndex` integer
:   ​

`dataReviewRid` string (RID)
:   ​

`checkEvaluationRid` string (RID)
:   ​

`name` string
:   ​

`autogeneratedCheckTitle` string
:   ​

`autogeneratedCheckDescription` string
:   ​

`assigneeRids` array of string (RID)
:   ​

`start` [`Timestamp`](https://dev.nominal.io/api/rest/data-review-service.md#timestamp)
:   ​

    Fields of `Timestamp`

    `seconds` integer (int64)
    :   ​

    `nanos` integer (int64)
    :   ​

`end` [`Timestamp`](https://dev.nominal.io/api/rest/data-review-service.md#timestamp)
:   ​

`state` [`CheckAlertState`](https://dev.nominal.io/api/rest/data-review-service.md#checkalertstate)
:   ​

    **pendingReview**

    Set `type` to `"pendingReview"`.

    `pendingReview` [`PendingReviewAlertState`](https://dev.nominal.io/api/rest/data-review-service.md#pendingreviewalertstate)
    :   ​

    **closedWithFurtherAction**

    Set `type` to `"closedWithFurtherAction"`.

    `closedWithFurtherAction` [`ClosedWithFurtherActionAlertState`](https://dev.nominal.io/api/rest/data-review-service.md#closedwithfurtheractionalertstate)
    :   ​

        Fields of `ClosedWithFurtherActionAlertState`

        `comment` string
        :   ​

        `closedBy` string (RID)
        :   ​

    **closedWithIgnore**

    Set `type` to `"closedWithIgnore"`.

    `closedWithIgnore` [`ClosedWithIgnoreAlertState`](https://dev.nominal.io/api/rest/data-review-service.md#closedwithignorealertstate)
    :   ​

        Fields of `ClosedWithIgnoreAlertState`

        `comment` string
        :   ​

        `closedBy` string (RID)
        :   ​

`priority` [`Priority`](https://dev.nominal.io/api/rest/data-review-service.md#priority)
:   ​

    Values of `Priority`

    `P0`
    :   ​

    `P1`
    :   ​

    `P2`
    :   ​

    `P3`
    :   ​

    `P4`
    :   ​

`chart` [`VersionedVizId`](https://dev.nominal.io/api/rest/data-review-service.md#versionedvizid) deprecated
:   **Deprecated:** charts are no longer versioned resources.

    Fields of `VersionedVizId`

    `rid` string
    :   ​

    `version` integer
    :   ​

`notes` string
:   ​

`notebook` string (RID)
:   ​

Request

**curl**

```shell
curl -X PUT "https://api.gov.nominal.io/api/scout/v2/data-review/check-alerts/<check alert rid>" \
  -H "Authorization: Bearer <api key>" \
  -H "Content-Type: application/json" \
  --data '{
  "type": "closeWithIgnore",
  "closeWithIgnore": {
    "comment": "<comment>"
  }
}'
```

**requests**

```python
import requests

response = requests.put(
    "https://api.gov.nominal.io/api/scout/v2/data-review/check-alerts/<check alert rid>",
    headers={"Authorization": "Bearer <api key>"},
    json={"type": "closeWithIgnore", "closeWithIgnore": {"comment": "<comment>"}},
)
response.raise_for_status()
print(response.json())
```

**httpx**

```python
import httpx

response = httpx.put(
    "https://api.gov.nominal.io/api/scout/v2/data-review/check-alerts/<check alert rid>",
    headers={"Authorization": "Bearer <api key>"},
    json={"type": "closeWithIgnore", "closeWithIgnore": {"comment": "<comment>"}},
)
response.raise_for_status()
print(response.json())
```

**aiohttp**

```python
import asyncio

import aiohttp

async def main() -> None:
    async with aiohttp.ClientSession() as session:
        async with session.put(
            "https://api.gov.nominal.io/api/scout/v2/data-review/check-alerts/<check alert rid>",
            headers={"Authorization": "Bearer <api key>"},
            json={
                "type": "closeWithIgnore",
                "closeWithIgnore": {"comment": "<comment>"},
            },
        ) as response:
            response.raise_for_status()
            print(await response.json())

asyncio.run(main())
```

Response: `200`

```json
{
  "rid": "<check alert rid>",
  "checkRid": "<check rid>",
  "implementationIndex": 1,
  "dataReviewRid": "<data review rid>",
  "checkEvaluationRid": "<automatic check evaluation rid>",
  "name": "<name>",
  "autogeneratedCheckTitle": "<autogenerated check title>",
  "autogeneratedCheckDescription": "<autogenerated check description>",
  "assigneeRids": [
    "<user rid>"
  ],
  "start": {
    "seconds": 1,
    "nanos": 1
  },
  "end": {
    "seconds": 1,
    "nanos": 1
  },
  "state": {
    "type": "pendingReview",
    "pendingReview": {}
  },
  "priority": "P0",
  "chart": {
    "rid": "<viz id>",
    "version": 1
  },
  "notes": "<notes>",
  "notebook": "<notebook rid>"
}
```

### Get check alerts for data review

GET `/scout/v2/data-review/{dataReviewRid}/check-alerts`

**Deprecated:** CheckAlerts have been replaced by Events. Please use the EventService instead.

Gets all check alerts from the provided data review.

Path parameters

`dataReviewRid` string (RID) required
:   ​

Response

The body is an array of [`CheckAlert`](https://dev.nominal.io/api/rest/data-review-service.md#checkalert).

Fields of `CheckAlert`

`rid` string (RID)
:   ​

`checkRid` string (RID)
:   ​

`implementationIndex` integer
:   ​

`dataReviewRid` string (RID)
:   ​

`checkEvaluationRid` string (RID)
:   ​

`name` string
:   ​

`autogeneratedCheckTitle` string
:   ​

`autogeneratedCheckDescription` string
:   ​

`assigneeRids` array of string (RID)
:   ​

`start` [`Timestamp`](https://dev.nominal.io/api/rest/data-review-service.md#timestamp)
:   ​

    Fields of `Timestamp`

    `seconds` integer (int64)
    :   ​

    `nanos` integer (int64)
    :   ​

`end` [`Timestamp`](https://dev.nominal.io/api/rest/data-review-service.md#timestamp)
:   ​

`state` [`CheckAlertState`](https://dev.nominal.io/api/rest/data-review-service.md#checkalertstate)
:   ​

    **pendingReview**

    Set `type` to `"pendingReview"`.

    `pendingReview` [`PendingReviewAlertState`](https://dev.nominal.io/api/rest/data-review-service.md#pendingreviewalertstate)
    :   ​

    **closedWithFurtherAction**

    Set `type` to `"closedWithFurtherAction"`.

    `closedWithFurtherAction` [`ClosedWithFurtherActionAlertState`](https://dev.nominal.io/api/rest/data-review-service.md#closedwithfurtheractionalertstate)
    :   ​

        Fields of `ClosedWithFurtherActionAlertState`

        `comment` string
        :   ​

        `closedBy` string (RID)
        :   ​

    **closedWithIgnore**

    Set `type` to `"closedWithIgnore"`.

    `closedWithIgnore` [`ClosedWithIgnoreAlertState`](https://dev.nominal.io/api/rest/data-review-service.md#closedwithignorealertstate)
    :   ​

        Fields of `ClosedWithIgnoreAlertState`

        `comment` string
        :   ​

        `closedBy` string (RID)
        :   ​

`priority` [`Priority`](https://dev.nominal.io/api/rest/data-review-service.md#priority)
:   ​

    Values of `Priority`

    `P0`
    :   ​

    `P1`
    :   ​

    `P2`
    :   ​

    `P3`
    :   ​

    `P4`
    :   ​

`chart` [`VersionedVizId`](https://dev.nominal.io/api/rest/data-review-service.md#versionedvizid) deprecated
:   **Deprecated:** charts are no longer versioned resources.

    Fields of `VersionedVizId`

    `rid` string
    :   ​

    `version` integer
    :   ​

`notes` string
:   ​

`notebook` string (RID)
:   ​

Request

**curl**

```shell
curl "https://api.gov.nominal.io/api/scout/v2/data-review/<data review rid>/check-alerts" \
  -H "Authorization: Bearer <api key>"
```

**requests**

```python
import requests

response = requests.get(
    "https://api.gov.nominal.io/api/scout/v2/data-review/<data review rid>/check-alerts",
    headers={"Authorization": "Bearer <api key>"},
)
response.raise_for_status()
print(response.json())
```

**httpx**

```python
import httpx

response = httpx.get(
    "https://api.gov.nominal.io/api/scout/v2/data-review/<data review rid>/check-alerts",
    headers={"Authorization": "Bearer <api key>"},
)
response.raise_for_status()
print(response.json())
```

**aiohttp**

```python
import asyncio

import aiohttp

async def main() -> None:
    async with aiohttp.ClientSession() as session:
        async with session.get(
            "https://api.gov.nominal.io/api/scout/v2/data-review/<data review rid>/check-alerts",
            headers={"Authorization": "Bearer <api key>"},
        ) as response:
            response.raise_for_status()
            print(await response.json())

asyncio.run(main())
```

Response: `200`

```json
[
  {
    "rid": "<check alert rid>",
    "checkRid": "<check rid>",
    "implementationIndex": 1,
    "dataReviewRid": "<data review rid>",
    "checkEvaluationRid": "<automatic check evaluation rid>",
    "name": "<name>",
    "autogeneratedCheckTitle": "<autogenerated check title>",
    "autogeneratedCheckDescription": "<autogenerated check description>",
    "assigneeRids": [
      "<user rid>"
    ],
    "start": {
      "seconds": 1,
      "nanos": 1
    },
    "end": {
      "seconds": 1,
      "nanos": 1
    },
    "state": {
      "type": "pendingReview",
      "pendingReview": {}
    },
    "priority": "P0",
    "chart": {
      "rid": "<viz id>",
      "version": 1
    },
    "notes": "<notes>",
    "notebook": "<notebook rid>"
  }
]
```

### Get check alerts histogram

POST `/scout/v2/data-review/check-alerts/histogram`

**Deprecated:** CheckAlerts have been replaced by Events. Please use the EventService instead.

Returns a histogram of alerts that occur across the provided runs or assets. At least one run or asset must be specified.

Body

`numBins` integer
:   Defaults to 100. Throws if larger than 1_000.

`searchText` string
:   Matches on check name

`distributionVariable` [`HistogramDistributionVariable`](https://dev.nominal.io/api/rest/data-review-service.md#histogramdistributionvariable) required
:   Represents the data points on the x-axis of a histogram.

    **startTime**

    Set `type` to `"startTime"`.

    `startTime` [`HistogramStartTimeVariable`](https://dev.nominal.io/api/rest/data-review-service.md#histogramstarttimevariable)
    :   ​

`subGroupVariable` [`HistogramSubGroupVariable`](https://dev.nominal.io/api/rest/data-review-service.md#histogramsubgroupvariable)
:   The variable that divides the data into distinct groups for comparison within the histogram.

    **priority**

    Set `type` to `"priority"`.

    `priority` [`HistogramPriorityVariable`](https://dev.nominal.io/api/rest/data-review-service.md#histogrampriorityvariable)
    :   ​

    **status**

    Set `type` to `"status"`.

    `status` [`HistogramStatusVariable`](https://dev.nominal.io/api/rest/data-review-service.md#histogramstatusvariable)
    :   ​

`startTimeAfter` [`Timestamp`](https://dev.nominal.io/api/rest/data-review-service.md#timestamp) required
:   Filters to start times after this time, inclusive.

    Fields of `Timestamp`

    `seconds` integer (int64) required
    :   ​

    `nanos` integer (int64) required
    :   ​

`startTimeBefore` [`Timestamp`](https://dev.nominal.io/api/rest/data-review-service.md#timestamp) required
:   Filters to start times before this time, exclusive.

`status` array of [`CheckAlertStatus`](https://dev.nominal.io/api/rest/data-review-service.md#checkalertstatus)
:   ​

    Values of `CheckAlertStatus`

    `PENDING_REVIEW`
    :   ​

    `CLOSED_IGNORED`
    :   ​

    `CLOSED_REQUIRES_FURTHER_ACTION`
    :   ​

`checkRids` array of string (RID)
:   ​

`dataReviewRids` array of string (RID)
:   ​

`assigneeRids` array of string (RID)
:   ​

`priorities` array of [`Priority`](https://dev.nominal.io/api/rest/data-review-service.md#priority)
:   ​

    Values of `Priority`

    `P0`
    :   ​

    `P1`
    :   ​

    `P2`
    :   ​

    `P3`
    :   ​

    `P4`
    :   ​

`runRids` array of string (RID)
:   ​

`assetRids` array of string (RID)
:   ​

`pinnedChecklistRefs` array of [`PinnedChecklistRef`](https://dev.nominal.io/api/rest/data-review-service.md#pinnedchecklistref)
:   ​

    Fields of `PinnedChecklistRef`

    `rid` string (RID) required
    :   ​

    `commit` string required
    :   ​

`chartRids` array of [`VersionedVizId`](https://dev.nominal.io/api/rest/data-review-service.md#versionedvizid) deprecated
:   **Deprecated:** charts are no longer versioned resources.

    Fields of `VersionedVizId`

    `rid` string required
    :   ​

    `version` integer required
    :   ​

`notebookRids` array of string (RID)
:   ​

`showArchived` boolean
:   To be deprecated. Use archivedStatuses instead. If not present, will not show archived data reviews in search results.

`archivedStatuses` array of [`ArchivedStatus`](https://dev.nominal.io/api/rest/data-review-service.md#archivedstatus)
:   Filters search on check alerts based on the archived statuses provided. Default is NOT_ARCHIVED only if none are provided.

    Values of `ArchivedStatus`

    `NOT_ARCHIVED`
    :   ​

    `ARCHIVED`
    :   ​

Response

`buckets` [`CheckAlertsHistogramBuckets`](https://dev.nominal.io/api/rest/data-review-service.md#checkalertshistogrambuckets)
:   ​

    **unstacked**

    Set `type` to `"unstacked"`.

    `unstacked` [`CheckAlertsUnstackedHistogram`](https://dev.nominal.io/api/rest/data-review-service.md#checkalertsunstackedhistogram)
    :   ​

        Fields of `CheckAlertsUnstackedHistogram`

        `buckets` array of [`HistogramBucket`](https://dev.nominal.io/api/rest/data-review-service.md#histogrambucket)
        :   ​

            Fields of `HistogramBucket`

            `startInclusive` [`Timestamp`](https://dev.nominal.io/api/rest/data-review-service.md#timestamp)
            :   ​

                Fields of `Timestamp`

                `seconds` integer (int64)
                :   ​

                `nanos` integer (int64)
                :   ​

            `endExclusive` [`Timestamp`](https://dev.nominal.io/api/rest/data-review-service.md#timestamp)
            :   ​

            `count` integer
            :   ​

    **priority**

    Set `type` to `"priority"`.

    `priority` [`CheckAlertsPriorityHistogram`](https://dev.nominal.io/api/rest/data-review-service.md#checkalertspriorityhistogram)
    :   ​

        Fields of `CheckAlertsPriorityHistogram`

        `buckets` array of [`HistogramPriorityBucket`](https://dev.nominal.io/api/rest/data-review-service.md#histogramprioritybucket)
        :   ​

            Fields of `HistogramPriorityBucket`

            `startInclusive` [`Timestamp`](https://dev.nominal.io/api/rest/data-review-service.md#timestamp)
            :   ​

            `endExclusive` [`Timestamp`](https://dev.nominal.io/api/rest/data-review-service.md#timestamp)
            :   ​

            `counts` map of string to integer
            :   ​

    **status**

    Set `type` to `"status"`.

    `status` [`CheckAlertsStatusHistogram`](https://dev.nominal.io/api/rest/data-review-service.md#checkalertsstatushistogram)
    :   ​

        Fields of `CheckAlertsStatusHistogram`

        `buckets` array of [`HistogramStatusBucket`](https://dev.nominal.io/api/rest/data-review-service.md#histogramstatusbucket)
        :   ​

            Fields of `HistogramStatusBucket`

            `startInclusive` [`Timestamp`](https://dev.nominal.io/api/rest/data-review-service.md#timestamp)
            :   ​

            `endExclusive` [`Timestamp`](https://dev.nominal.io/api/rest/data-review-service.md#timestamp)
            :   ​

            `counts` map of string to integer
            :   ​

Request

**curl**

```shell
curl -X POST "https://api.gov.nominal.io/api/scout/v2/data-review/check-alerts/histogram" \
  -H "Authorization: Bearer <api key>" \
  -H "Content-Type: application/json" \
  --data '{
  "distributionVariable": {
    "type": "startTime",
    "startTime": {}
  },
  "startTimeAfter": {
    "seconds": 1,
    "nanos": 1
  },
  "startTimeBefore": {
    "seconds": 1,
    "nanos": 1
  }
}'
```

**requests**

```python
import requests

response = requests.post(
    "https://api.gov.nominal.io/api/scout/v2/data-review/check-alerts/histogram",
    headers={"Authorization": "Bearer <api key>"},
    json={
        "distributionVariable": {"type": "startTime", "startTime": {}},
        "startTimeAfter": {"seconds": 1, "nanos": 1},
        "startTimeBefore": {"seconds": 1, "nanos": 1},
    },
)
response.raise_for_status()
print(response.json())
```

**httpx**

```python
import httpx

response = httpx.post(
    "https://api.gov.nominal.io/api/scout/v2/data-review/check-alerts/histogram",
    headers={"Authorization": "Bearer <api key>"},
    json={
        "distributionVariable": {"type": "startTime", "startTime": {}},
        "startTimeAfter": {"seconds": 1, "nanos": 1},
        "startTimeBefore": {"seconds": 1, "nanos": 1},
    },
)
response.raise_for_status()
print(response.json())
```

**aiohttp**

```python
import asyncio

import aiohttp

async def main() -> None:
    async with aiohttp.ClientSession() as session:
        async with session.post(
            "https://api.gov.nominal.io/api/scout/v2/data-review/check-alerts/histogram",
            headers={"Authorization": "Bearer <api key>"},
            json={
                "distributionVariable": {"type": "startTime", "startTime": {}},
                "startTimeAfter": {"seconds": 1, "nanos": 1},
                "startTimeBefore": {"seconds": 1, "nanos": 1},
            },
        ) as response:
            response.raise_for_status()
            print(await response.json())

asyncio.run(main())
```

Response: `200`

```json
{
  "buckets": {
    "type": "unstacked",
    "unstacked": {
      "buckets": [
        {
          "startInclusive": {
            "seconds": 1,
            "nanos": 1
          },
          "endExclusive": {
            "seconds": 1,
            "nanos": 1
          },
          "count": 1
        }
      ]
    }
  }
}
```

### Search check alerts

POST `/scout/v2/data-review/check-alerts`

**Deprecated:** CheckAlerts have been replaced by Events. Please use the EventService instead.

Returns the check alerts under the provided search parameters. At least one run or asset must be specified.

Body

`nextPageToken` string
:   ​

`pageSize` integer
:   Defaults to 100. Will throw if larger than 1_000.

`sortBy` [`SearchCheckAlertsSortOptions`](https://dev.nominal.io/api/rest/data-review-service.md#searchcheckalertssortoptions)
:   If not present, will sort by start time in descending order.

    Fields of `SearchCheckAlertsSortOptions`

    `isDescending` boolean required
    :   ​

    `field` [`SearchCheckAlertsSortField`](https://dev.nominal.io/api/rest/data-review-service.md#searchcheckalertssortfield) required
    :   ​

        Values of `SearchCheckAlertsSortField`

        `CHECK_NAME`
        :   ​

        `START`
        :   ​

        `END`
        :   ​

        `STATUS`
        :   ​

        `PRIORITY`
        :   ​

        `DURATION`
        :   ​

`searchText` string
:   Matches on check name

`after` [`Timestamp`](https://dev.nominal.io/api/rest/data-review-service.md#timestamp)
:   Filters to start times after this time, inclusive.

    Fields of `Timestamp`

    `seconds` integer (int64) required
    :   ​

    `nanos` integer (int64) required
    :   ​

`before` [`Timestamp`](https://dev.nominal.io/api/rest/data-review-service.md#timestamp)
:   Filters to start times before this time, exclusive.

`status` array of [`CheckAlertStatus`](https://dev.nominal.io/api/rest/data-review-service.md#checkalertstatus)
:   ​

    Values of `CheckAlertStatus`

    `PENDING_REVIEW`
    :   ​

    `CLOSED_IGNORED`
    :   ​

    `CLOSED_REQUIRES_FURTHER_ACTION`
    :   ​

`checkRids` array of string (RID)
:   ​

`dataReviewRids` array of string (RID)
:   ​

`assigneeRids` array of string (RID)
:   ​

`priorities` array of [`Priority`](https://dev.nominal.io/api/rest/data-review-service.md#priority)
:   ​

    Values of `Priority`

    `P0`
    :   ​

    `P1`
    :   ​

    `P2`
    :   ​

    `P3`
    :   ​

    `P4`
    :   ​

`runRids` array of string (RID)
:   ​

`assetRids` array of string (RID)
:   ​

`pinnedChecklistRefs` array of [`PinnedChecklistRef`](https://dev.nominal.io/api/rest/data-review-service.md#pinnedchecklistref)
:   ​

    Fields of `PinnedChecklistRef`

    `rid` string (RID) required
    :   ​

    `commit` string required
    :   ​

`chartRids` array of [`VersionedVizId`](https://dev.nominal.io/api/rest/data-review-service.md#versionedvizid) deprecated
:   **Deprecated:** charts are no longer versioned resources.

    Fields of `VersionedVizId`

    `rid` string required
    :   ​

    `version` integer required
    :   ​

`notebookRids` array of string (RID)
:   ​

`showArchived` boolean
:   To be deprecated. Use archivedStatuses instead. If true, includes archived check alerts in the search results. If not present or false, will not show archived data reviews in search results

`archivedStatuses` array of [`ArchivedStatus`](https://dev.nominal.io/api/rest/data-review-service.md#archivedstatus)
:   Filters search on check alerts based on the archived statuses provided. Default is NOT_ARCHIVED only if none are provided.

    Values of `ArchivedStatus`

    `NOT_ARCHIVED`
    :   ​

    `ARCHIVED`
    :   ​

Response

`nextPageToken` string
:   ​

`checkAlerts` array of [`CheckAlert`](https://dev.nominal.io/api/rest/data-review-service.md#checkalert)
:   ​

    Fields of `CheckAlert`

    `rid` string (RID)
    :   ​

    `checkRid` string (RID)
    :   ​

    `implementationIndex` integer
    :   ​

    `dataReviewRid` string (RID)
    :   ​

    `checkEvaluationRid` string (RID)
    :   ​

    `name` string
    :   ​

    `autogeneratedCheckTitle` string
    :   ​

    `autogeneratedCheckDescription` string
    :   ​

    `assigneeRids` array of string (RID)
    :   ​

    `start` [`Timestamp`](https://dev.nominal.io/api/rest/data-review-service.md#timestamp)
    :   ​

        Fields of `Timestamp`

        `seconds` integer (int64)
        :   ​

        `nanos` integer (int64)
        :   ​

    `end` [`Timestamp`](https://dev.nominal.io/api/rest/data-review-service.md#timestamp)
    :   ​

    `state` [`CheckAlertState`](https://dev.nominal.io/api/rest/data-review-service.md#checkalertstate)
    :   ​

        **pendingReview**

        Set `type` to `"pendingReview"`.

        `pendingReview` [`PendingReviewAlertState`](https://dev.nominal.io/api/rest/data-review-service.md#pendingreviewalertstate)
        :   ​

        **closedWithFurtherAction**

        Set `type` to `"closedWithFurtherAction"`.

        `closedWithFurtherAction` [`ClosedWithFurtherActionAlertState`](https://dev.nominal.io/api/rest/data-review-service.md#closedwithfurtheractionalertstate)
        :   ​

            Fields of `ClosedWithFurtherActionAlertState`

            `comment` string
            :   ​

            `closedBy` string (RID)
            :   ​

        **closedWithIgnore**

        Set `type` to `"closedWithIgnore"`.

        `closedWithIgnore` [`ClosedWithIgnoreAlertState`](https://dev.nominal.io/api/rest/data-review-service.md#closedwithignorealertstate)
        :   ​

            Fields of `ClosedWithIgnoreAlertState`

            `comment` string
            :   ​

            `closedBy` string (RID)
            :   ​

    `priority` [`Priority`](https://dev.nominal.io/api/rest/data-review-service.md#priority)
    :   ​

        Values of `Priority`

        `P0`
        :   ​

        `P1`
        :   ​

        `P2`
        :   ​

        `P3`
        :   ​

        `P4`
        :   ​

    `chart` [`VersionedVizId`](https://dev.nominal.io/api/rest/data-review-service.md#versionedvizid) deprecated
    :   **Deprecated:** charts are no longer versioned resources.

        Fields of `VersionedVizId`

        `rid` string
        :   ​

        `version` integer
        :   ​

    `notes` string
    :   ​

    `notebook` string (RID)
    :   ​

Request

**curl**

```shell
curl -X POST "https://api.gov.nominal.io/api/scout/v2/data-review/check-alerts" \
  -H "Authorization: Bearer <api key>" \
  -H "Content-Type: application/json" \
  --data '{
  "nextPageToken": "<token>",
  "pageSize": 1,
  "sortBy": {
    "isDescending": true,
    "field": "CHECK_NAME"
  },
  "searchText": "<search text>",
  "after": {
    "seconds": 1,
    "nanos": 1
  },
  "before": {
    "seconds": 1,
    "nanos": 1
  },
  "status": [
    "PENDING_REVIEW"
  ],
  "checkRids": [
    "<check rid>"
  ],
  "dataReviewRids": [
    "<data review rid>"
  ],
  "assigneeRids": [
    "<user rid>"
  ],
  "priorities": [
    "P0"
  ],
  "runRids": [
    "<run rid>"
  ],
  "assetRids": [
    "<asset rid>"
  ],
  "pinnedChecklistRefs": [
    {
      "rid": "<checklist rid>",
      "commit": "<commit id>"
    }
  ],
  "chartRids": [
    {
      "rid": "<viz id>",
      "version": 1
    }
  ],
  "notebookRids": [
    "<notebook rid>"
  ],
  "showArchived": true,
  "archivedStatuses": [
    "NOT_ARCHIVED"
  ]
}'
```

**requests**

```python
import requests

response = requests.post(
    "https://api.gov.nominal.io/api/scout/v2/data-review/check-alerts",
    headers={"Authorization": "Bearer <api key>"},
    json={
        "nextPageToken": "<token>",
        "pageSize": 1,
        "sortBy": {"isDescending": True, "field": "CHECK_NAME"},
        "searchText": "<search text>",
        "after": {"seconds": 1, "nanos": 1},
        "before": {"seconds": 1, "nanos": 1},
        "status": ["PENDING_REVIEW"],
        "checkRids": ["<check rid>"],
        "dataReviewRids": ["<data review rid>"],
        "assigneeRids": ["<user rid>"],
        "priorities": ["P0"],
        "runRids": ["<run rid>"],
        "assetRids": ["<asset rid>"],
        "pinnedChecklistRefs": [{"rid": "<checklist rid>", "commit": "<commit id>"}],
        "chartRids": [{"rid": "<viz id>", "version": 1}],
        "notebookRids": ["<notebook rid>"],
        "showArchived": True,
        "archivedStatuses": ["NOT_ARCHIVED"],
    },
)
response.raise_for_status()
print(response.json())
```

**httpx**

```python
import httpx

response = httpx.post(
    "https://api.gov.nominal.io/api/scout/v2/data-review/check-alerts",
    headers={"Authorization": "Bearer <api key>"},
    json={
        "nextPageToken": "<token>",
        "pageSize": 1,
        "sortBy": {"isDescending": True, "field": "CHECK_NAME"},
        "searchText": "<search text>",
        "after": {"seconds": 1, "nanos": 1},
        "before": {"seconds": 1, "nanos": 1},
        "status": ["PENDING_REVIEW"],
        "checkRids": ["<check rid>"],
        "dataReviewRids": ["<data review rid>"],
        "assigneeRids": ["<user rid>"],
        "priorities": ["P0"],
        "runRids": ["<run rid>"],
        "assetRids": ["<asset rid>"],
        "pinnedChecklistRefs": [{"rid": "<checklist rid>", "commit": "<commit id>"}],
        "chartRids": [{"rid": "<viz id>", "version": 1}],
        "notebookRids": ["<notebook rid>"],
        "showArchived": True,
        "archivedStatuses": ["NOT_ARCHIVED"],
    },
)
response.raise_for_status()
print(response.json())
```

**aiohttp**

```python
import asyncio

import aiohttp

async def main() -> None:
    async with aiohttp.ClientSession() as session:
        async with session.post(
            "https://api.gov.nominal.io/api/scout/v2/data-review/check-alerts",
            headers={"Authorization": "Bearer <api key>"},
            json={
                "nextPageToken": "<token>",
                "pageSize": 1,
                "sortBy": {"isDescending": True, "field": "CHECK_NAME"},
                "searchText": "<search text>",
                "after": {"seconds": 1, "nanos": 1},
                "before": {"seconds": 1, "nanos": 1},
                "status": ["PENDING_REVIEW"],
                "checkRids": ["<check rid>"],
                "dataReviewRids": ["<data review rid>"],
                "assigneeRids": ["<user rid>"],
                "priorities": ["P0"],
                "runRids": ["<run rid>"],
                "assetRids": ["<asset rid>"],
                "pinnedChecklistRefs": [
                    {"rid": "<checklist rid>", "commit": "<commit id>"},
                ],
                "chartRids": [{"rid": "<viz id>", "version": 1}],
                "notebookRids": ["<notebook rid>"],
                "showArchived": True,
                "archivedStatuses": ["NOT_ARCHIVED"],
            },
        ) as response:
            response.raise_for_status()
            print(await response.json())

asyncio.run(main())
```

Response: `200`

```json
{
  "nextPageToken": "<token>",
  "checkAlerts": [
    {
      "rid": "<check alert rid>",
      "checkRid": "<check rid>",
      "implementationIndex": 1,
      "dataReviewRid": "<data review rid>",
      "checkEvaluationRid": "<automatic check evaluation rid>",
      "name": "<name>",
      "autogeneratedCheckTitle": "<autogenerated check title>",
      "autogeneratedCheckDescription": "<autogenerated check description>",
      "assigneeRids": [
        "<user rid>"
      ],
      "start": {
        "seconds": 1,
        "nanos": 1
      },
      "end": {
        "seconds": 1,
        "nanos": 1
      },
      "state": {
        "type": "pendingReview",
        "pendingReview": {}
      },
      "priority": "P0",
      "chart": {
        "rid": "<viz id>",
        "version": 1
      },
      "notes": "<notes>",
      "notebook": "<notebook rid>"
    }
  ]
}
```

### Get check alert action log

GET `/scout/v2/data-review/check-alerts/{checkAlertRid}/action-log`

**Deprecated:** CheckAlerts have been replaced by Events. Please use the EventService instead.

Returns a record of the historical actions taken on the provided check alert.

Path parameters

`checkAlertRid` string (RID) required
:   ​

Response

`entries` array of [`CheckAlertActionLogEntry`](https://dev.nominal.io/api/rest/data-review-service.md#checkalertactionlogentry)
:   ​

    Fields of `CheckAlertActionLogEntry`

    `performedBy` string (RID)
    :   ​

    `action` [`CheckAlertAction`](https://dev.nominal.io/api/rest/data-review-service.md#checkalertaction)
    :   ​

        **closeWithIgnore**

        Set `type` to `"closeWithIgnore"`.

        `closeWithIgnore` [`CloseWithIgnoreAlert`](https://dev.nominal.io/api/rest/data-review-service.md#closewithignorealert)
        :   ​

            Fields of `CloseWithIgnoreAlert`

            `comment` string
            :   ​

            `strategy` [`CloseStrategy`](https://dev.nominal.io/api/rest/data-review-service.md#closestrategy)
            :   Defines the strategy for closing the alert and any alerts linked via an associated notebook. If not provided, the default strategy is closeAllLinkedAlerts.

                **closeAllLinkedAlerts**

                Set `type` to `"closeAllLinkedAlerts"`.

                `closeAllLinkedAlerts` [`CloseAllLinkedAlerts`](https://dev.nominal.io/api/rest/data-review-service.md#closealllinkedalerts)
                :   ​

                **closeAndDetachFromNotebook**

                Set `type` to `"closeAndDetachFromNotebook"`.

                `closeAndDetachFromNotebook` [`CloseAndDetachFromNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#closeanddetachfromnotebook)
                :   ​

                **closeAndDuplicatePreviouslyLinkedNotebook**

                Set `type` to `"closeAndDuplicatePreviouslyLinkedNotebook"`.

                `closeAndDuplicatePreviouslyLinkedNotebook` [`CloseAndDuplicatePreviouslyLinkedNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#closeandduplicatepreviouslylinkednotebook)
                :   ​

        **closeWithFurtherAction**

        Set `type` to `"closeWithFurtherAction"`.

        `closeWithFurtherAction` [`CloseWithFurtherAction`](https://dev.nominal.io/api/rest/data-review-service.md#closewithfurtheraction)
        :   ​

            Fields of `CloseWithFurtherAction`

            `comment` string
            :   ​

            `strategy` [`CloseStrategy`](https://dev.nominal.io/api/rest/data-review-service.md#closestrategy)
            :   Defines the strategy for reopening the alert and any alerts linked via an associated notebook. If not provided, the alert will be closed naively and throw if it leaves a linked notebook in an invalid state.

        **reopen**

        Set `type` to `"reopen"`.

        `reopen` [`Reopen`](https://dev.nominal.io/api/rest/data-review-service.md#reopen)
        :   ​

            Fields of `Reopen`

            `comment` string
            :   ​

            `strategy` [`ReopenStrategy`](https://dev.nominal.io/api/rest/data-review-service.md#reopenstrategy)
            :   Defines the strategy for reopening the alert and any alerts linked via an associated notebook. If not provided, the default strategy is reopenAllLinkedAlerts.

                **reopenAllLinkedAlerts**

                Set `type` to `"reopenAllLinkedAlerts"`.

                `reopenAllLinkedAlerts` [`ReopenAllLinkedAlerts`](https://dev.nominal.io/api/rest/data-review-service.md#reopenalllinkedalerts)
                :   ​

                **reopenAndDetachFromNotebook**

                Set `type` to `"reopenAndDetachFromNotebook"`.

                `reopenAndDetachFromNotebook` [`ReopenAndDetachFromNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#reopenanddetachfromnotebook)
                :   ​

                **reopenAndDuplicatePreviouslyLinkedNotebook**

                Set `type` to `"reopenAndDuplicatePreviouslyLinkedNotebook"`.

                `reopenAndDuplicatePreviouslyLinkedNotebook` [`ReopenAndDuplicatePreviouslyLinkedNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#reopenandduplicatepreviouslylinkednotebook)
                :   ​

        **reassign**

        Set `type` to `"reassign"`.

        `reassign` [`Reassign`](https://dev.nominal.io/api/rest/data-review-service.md#reassign)
        :   ​

            Fields of `Reassign`

            `assigneeRids` array of string (RID)
            :   ​

        **updateNotes**

        Set `type` to `"updateNotes"`.

        `updateNotes` [`UpdateNotes`](https://dev.nominal.io/api/rest/data-review-service.md#updatenotes)
        :   ​

            Fields of `UpdateNotes`

            `notes` string
            :   ​

        **linkNotebook**

        Set `type` to `"linkNotebook"`.

        `linkNotebook` [`LinkNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#linknotebook)
        :   ​

            Fields of `LinkNotebook`

            `rid` string (RID)
            :   ​

            `strategy` [`LinkNotebookStrategy`](https://dev.nominal.io/api/rest/data-review-service.md#linknotebookstrategy)
            :   Defines the strategy for reconciling the alert with any linked alerts via the associated notebook. If not provided, the alert will be linked naively and throw if it leaves a linked notebook in an invalid state.

                **duplicateAndLinkToNewNotebook**

                Set `type` to `"duplicateAndLinkToNewNotebook"`.

                `duplicateAndLinkToNewNotebook` [`DuplicateAndLinkNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#duplicateandlinknotebook)
                :   ​

                **closeAndLink**

                Set `type` to `"closeAndLink"`.

                `closeAndLink` [`CloseAndLinkToNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#closeandlinktonotebook)
                :   ​

                    Fields of `CloseAndLinkToNotebook`

                    `closeAction` [`CloseAction`](https://dev.nominal.io/api/rest/data-review-service.md#closeaction)
                    :   ​

                        **closeWithIgnore**

                        Set `type` to `"closeWithIgnore"`.

                        `closeWithIgnore` [`CloseWithIgnoreAlert`](https://dev.nominal.io/api/rest/data-review-service.md#closewithignorealert)
                        :   ​

                        **closeWithFurtherAction**

                        Set `type` to `"closeWithFurtherAction"`.

                        `closeWithFurtherAction` [`CloseWithFurtherAction`](https://dev.nominal.io/api/rest/data-review-service.md#closewithfurtheraction)
                        :   ​

                **reopenAndLink**

                Set `type` to `"reopenAndLink"`.

                `reopenAndLink` [`ReopenAndLinkToNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#reopenandlinktonotebook)
                :   ​

                    Fields of `ReopenAndLinkToNotebook`

                    `comment` string
                    :   ​

        **unlinkNotebook**

        Set `type` to `"unlinkNotebook"`.

        `unlinkNotebook` [`UnlinkNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#unlinknotebook)
        :   ​

        **archiveDataReview**

        Set `type` to `"archiveDataReview"`.

        `archiveDataReview` [`ArchiveDataReview`](https://dev.nominal.io/api/rest/data-review-service.md#archivedatareview)
        :   ​

        **unarchiveDataReview**

        Set `type` to `"unarchiveDataReview"`.

        `unarchiveDataReview` [`UnarchiveDataReview`](https://dev.nominal.io/api/rest/data-review-service.md#unarchivedatareview)
        :   ​

    `timestamp` string (date-time)
    :   ​

Request

**curl**

```shell
curl "https://api.gov.nominal.io/api/scout/v2/data-review/check-alerts/<check alert rid>/action-log" \
  -H "Authorization: Bearer <api key>"
```

**requests**

```python
import requests

response = requests.get(
    "https://api.gov.nominal.io/api/scout/v2/data-review/check-alerts/<check alert rid>/action-log",
    headers={"Authorization": "Bearer <api key>"},
)
response.raise_for_status()
print(response.json())
```

**httpx**

```python
import httpx

response = httpx.get(
    "https://api.gov.nominal.io/api/scout/v2/data-review/check-alerts/<check alert rid>/action-log",
    headers={"Authorization": "Bearer <api key>"},
)
response.raise_for_status()
print(response.json())
```

**aiohttp**

```python
import asyncio

import aiohttp

async def main() -> None:
    async with aiohttp.ClientSession() as session:
        async with session.get(
            "https://api.gov.nominal.io/api/scout/v2/data-review/check-alerts/<check alert rid>/action-log",
            headers={"Authorization": "Bearer <api key>"},
        ) as response:
            response.raise_for_status()
            print(await response.json())

asyncio.run(main())
```

Response: `200`

```json
{
  "entries": [
    {
      "performedBy": "<user rid>",
      "action": {
        "type": "closeWithIgnore",
        "closeWithIgnore": {
          "comment": "<comment>",
          "strategy": {
            "type": "closeAllLinkedAlerts",
            "closeAllLinkedAlerts": {}
          }
        }
      },
      "timestamp": "2026-01-01T00:00:00Z"
    }
  ]
}
```

### Get check alert counts for notebooks

POST `/scout/v2/data-review/get-check-alert-counts-for-notebooks`

**Deprecated:** CheckAlerts have been replaced by Events. Please use the EventService instead.

Returns the number of alerts attached to each provided notebook.

Body

The body is an array of string (RID).

Response

The body is a map of `NotebookRid` to integer.

Request

**curl**

```shell
curl -X POST "https://api.gov.nominal.io/api/scout/v2/data-review/get-check-alert-counts-for-notebooks" \
  -H "Authorization: Bearer <api key>" \
  -H "Content-Type: application/json" \
  --data '[
  "<notebook rid>"
]'
```

**requests**

```python
import requests

response = requests.post(
    "https://api.gov.nominal.io/api/scout/v2/data-review/get-check-alert-counts-for-notebooks",
    headers={"Authorization": "Bearer <api key>"},
    json=["<notebook rid>"],
)
response.raise_for_status()
print(response.json())
```

**httpx**

```python
import httpx

response = httpx.post(
    "https://api.gov.nominal.io/api/scout/v2/data-review/get-check-alert-counts-for-notebooks",
    headers={"Authorization": "Bearer <api key>"},
    json=["<notebook rid>"],
)
response.raise_for_status()
print(response.json())
```

**aiohttp**

```python
import asyncio

import aiohttp

async def main() -> None:
    async with aiohttp.ClientSession() as session:
        async with session.post(
            "https://api.gov.nominal.io/api/scout/v2/data-review/get-check-alert-counts-for-notebooks",
            headers={"Authorization": "Bearer <api key>"},
            json=["<notebook rid>"],
        ) as response:
            response.raise_for_status()
            print(await response.json())

asyncio.run(main())
```

Response: `200`

```json
{
  "<key>": 1
}
```

### Get check alert status for notebooks

POST `/scout/v2/data-review/get-check-alert-status-for-notebooks`

**Deprecated:** CheckAlerts have been replaced by Events. Please use the EventService instead.

Returns the check alert status of any linked violations for the provided notebooks. If none exist, an empty optional is returned.

Body

The body is an array of string (RID).

Response

The body is a map of `NotebookRid` to [`CheckAlertStatus`](https://dev.nominal.io/api/rest/data-review-service.md#checkalertstatus).

Values of `CheckAlertStatus`

`PENDING_REVIEW`
:   ​

`CLOSED_IGNORED`
:   ​

`CLOSED_REQUIRES_FURTHER_ACTION`
:   ​

Request

**curl**

```shell
curl -X POST "https://api.gov.nominal.io/api/scout/v2/data-review/get-check-alert-status-for-notebooks" \
  -H "Authorization: Bearer <api key>" \
  -H "Content-Type: application/json" \
  --data '[
  "<notebook rid>"
]'
```

**requests**

```python
import requests

response = requests.post(
    "https://api.gov.nominal.io/api/scout/v2/data-review/get-check-alert-status-for-notebooks",
    headers={"Authorization": "Bearer <api key>"},
    json=["<notebook rid>"],
)
response.raise_for_status()
print(response.json())
```

**httpx**

```python
import httpx

response = httpx.post(
    "https://api.gov.nominal.io/api/scout/v2/data-review/get-check-alert-status-for-notebooks",
    headers={"Authorization": "Bearer <api key>"},
    json=["<notebook rid>"],
)
response.raise_for_status()
print(response.json())
```

**aiohttp**

```python
import asyncio

import aiohttp

async def main() -> None:
    async with aiohttp.ClientSession() as session:
        async with session.post(
            "https://api.gov.nominal.io/api/scout/v2/data-review/get-check-alert-status-for-notebooks",
            headers={"Authorization": "Bearer <api key>"},
            json=["<notebook rid>"],
        ) as response:
            response.raise_for_status()
            print(await response.json())

asyncio.run(main())
```

Response: `200`

```json
{
  "<key>": "PENDING_REVIEW"
}
```

### Batch perform check alert action

POST `/scout/v2/data-review/check-alerts/batch-perform-action`

**Deprecated:** CheckAlerts have been replaced by Events. Please use the EventService instead.

Applies a check alert action to the specified check alert RIDs. If any of the check actions fail, then none of the check actions will be applied.

Body

`checkAlertAction` [`CheckAlertAction`](https://dev.nominal.io/api/rest/data-review-service.md#checkalertaction) required
:   ​

    **closeWithIgnore**

    Set `type` to `"closeWithIgnore"`.

    `closeWithIgnore` [`CloseWithIgnoreAlert`](https://dev.nominal.io/api/rest/data-review-service.md#closewithignorealert)
    :   ​

        Fields of `CloseWithIgnoreAlert`

        `comment` string required
        :   ​

        `strategy` [`CloseStrategy`](https://dev.nominal.io/api/rest/data-review-service.md#closestrategy)
        :   Defines the strategy for closing the alert and any alerts linked via an associated notebook. If not provided, the default strategy is closeAllLinkedAlerts.

            **closeAllLinkedAlerts**

            Set `type` to `"closeAllLinkedAlerts"`.

            `closeAllLinkedAlerts` [`CloseAllLinkedAlerts`](https://dev.nominal.io/api/rest/data-review-service.md#closealllinkedalerts)
            :   ​

            **closeAndDetachFromNotebook**

            Set `type` to `"closeAndDetachFromNotebook"`.

            `closeAndDetachFromNotebook` [`CloseAndDetachFromNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#closeanddetachfromnotebook)
            :   ​

            **closeAndDuplicatePreviouslyLinkedNotebook**

            Set `type` to `"closeAndDuplicatePreviouslyLinkedNotebook"`.

            `closeAndDuplicatePreviouslyLinkedNotebook` [`CloseAndDuplicatePreviouslyLinkedNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#closeandduplicatepreviouslylinkednotebook)
            :   ​

    **closeWithFurtherAction**

    Set `type` to `"closeWithFurtherAction"`.

    `closeWithFurtherAction` [`CloseWithFurtherAction`](https://dev.nominal.io/api/rest/data-review-service.md#closewithfurtheraction)
    :   ​

        Fields of `CloseWithFurtherAction`

        `comment` string required
        :   ​

        `strategy` [`CloseStrategy`](https://dev.nominal.io/api/rest/data-review-service.md#closestrategy)
        :   Defines the strategy for reopening the alert and any alerts linked via an associated notebook. If not provided, the alert will be closed naively and throw if it leaves a linked notebook in an invalid state.

    **reopen**

    Set `type` to `"reopen"`.

    `reopen` [`Reopen`](https://dev.nominal.io/api/rest/data-review-service.md#reopen)
    :   ​

        Fields of `Reopen`

        `comment` string required
        :   ​

        `strategy` [`ReopenStrategy`](https://dev.nominal.io/api/rest/data-review-service.md#reopenstrategy)
        :   Defines the strategy for reopening the alert and any alerts linked via an associated notebook. If not provided, the default strategy is reopenAllLinkedAlerts.

            **reopenAllLinkedAlerts**

            Set `type` to `"reopenAllLinkedAlerts"`.

            `reopenAllLinkedAlerts` [`ReopenAllLinkedAlerts`](https://dev.nominal.io/api/rest/data-review-service.md#reopenalllinkedalerts)
            :   ​

            **reopenAndDetachFromNotebook**

            Set `type` to `"reopenAndDetachFromNotebook"`.

            `reopenAndDetachFromNotebook` [`ReopenAndDetachFromNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#reopenanddetachfromnotebook)
            :   ​

            **reopenAndDuplicatePreviouslyLinkedNotebook**

            Set `type` to `"reopenAndDuplicatePreviouslyLinkedNotebook"`.

            `reopenAndDuplicatePreviouslyLinkedNotebook` [`ReopenAndDuplicatePreviouslyLinkedNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#reopenandduplicatepreviouslylinkednotebook)
            :   ​

    **reassign**

    Set `type` to `"reassign"`.

    `reassign` [`Reassign`](https://dev.nominal.io/api/rest/data-review-service.md#reassign)
    :   ​

        Fields of `Reassign`

        `assigneeRids` array of string (RID)
        :   ​

    **updateNotes**

    Set `type` to `"updateNotes"`.

    `updateNotes` [`UpdateNotes`](https://dev.nominal.io/api/rest/data-review-service.md#updatenotes)
    :   ​

        Fields of `UpdateNotes`

        `notes` string required
        :   ​

    **linkNotebook**

    Set `type` to `"linkNotebook"`.

    `linkNotebook` [`LinkNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#linknotebook)
    :   ​

        Fields of `LinkNotebook`

        `rid` string (RID) required
        :   ​

        `strategy` [`LinkNotebookStrategy`](https://dev.nominal.io/api/rest/data-review-service.md#linknotebookstrategy)
        :   Defines the strategy for reconciling the alert with any linked alerts via the associated notebook. If not provided, the alert will be linked naively and throw if it leaves a linked notebook in an invalid state.

            **duplicateAndLinkToNewNotebook**

            Set `type` to `"duplicateAndLinkToNewNotebook"`.

            `duplicateAndLinkToNewNotebook` [`DuplicateAndLinkNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#duplicateandlinknotebook)
            :   ​

            **closeAndLink**

            Set `type` to `"closeAndLink"`.

            `closeAndLink` [`CloseAndLinkToNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#closeandlinktonotebook)
            :   ​

                Fields of `CloseAndLinkToNotebook`

                `closeAction` [`CloseAction`](https://dev.nominal.io/api/rest/data-review-service.md#closeaction) required
                :   ​

                    **closeWithIgnore**

                    Set `type` to `"closeWithIgnore"`.

                    `closeWithIgnore` [`CloseWithIgnoreAlert`](https://dev.nominal.io/api/rest/data-review-service.md#closewithignorealert)
                    :   ​

                    **closeWithFurtherAction**

                    Set `type` to `"closeWithFurtherAction"`.

                    `closeWithFurtherAction` [`CloseWithFurtherAction`](https://dev.nominal.io/api/rest/data-review-service.md#closewithfurtheraction)
                    :   ​

            **reopenAndLink**

            Set `type` to `"reopenAndLink"`.

            `reopenAndLink` [`ReopenAndLinkToNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#reopenandlinktonotebook)
            :   ​

                Fields of `ReopenAndLinkToNotebook`

                `comment` string required
                :   ​

    **unlinkNotebook**

    Set `type` to `"unlinkNotebook"`.

    `unlinkNotebook` [`UnlinkNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#unlinknotebook)
    :   ​

    **archiveDataReview**

    Set `type` to `"archiveDataReview"`.

    `archiveDataReview` [`ArchiveDataReview`](https://dev.nominal.io/api/rest/data-review-service.md#archivedatareview)
    :   ​

    **unarchiveDataReview**

    Set `type` to `"unarchiveDataReview"`.

    `unarchiveDataReview` [`UnarchiveDataReview`](https://dev.nominal.io/api/rest/data-review-service.md#unarchivedatareview)
    :   ​

`checkAlertRids` array of string (RID)
:   ​

Response

`checkAlerts` array of [`CheckAlert`](https://dev.nominal.io/api/rest/data-review-service.md#checkalert)
:   ​

    Fields of `CheckAlert`

    `rid` string (RID)
    :   ​

    `checkRid` string (RID)
    :   ​

    `implementationIndex` integer
    :   ​

    `dataReviewRid` string (RID)
    :   ​

    `checkEvaluationRid` string (RID)
    :   ​

    `name` string
    :   ​

    `autogeneratedCheckTitle` string
    :   ​

    `autogeneratedCheckDescription` string
    :   ​

    `assigneeRids` array of string (RID)
    :   ​

    `start` [`Timestamp`](https://dev.nominal.io/api/rest/data-review-service.md#timestamp)
    :   ​

        Fields of `Timestamp`

        `seconds` integer (int64)
        :   ​

        `nanos` integer (int64)
        :   ​

    `end` [`Timestamp`](https://dev.nominal.io/api/rest/data-review-service.md#timestamp)
    :   ​

    `state` [`CheckAlertState`](https://dev.nominal.io/api/rest/data-review-service.md#checkalertstate)
    :   ​

        **pendingReview**

        Set `type` to `"pendingReview"`.

        `pendingReview` [`PendingReviewAlertState`](https://dev.nominal.io/api/rest/data-review-service.md#pendingreviewalertstate)
        :   ​

        **closedWithFurtherAction**

        Set `type` to `"closedWithFurtherAction"`.

        `closedWithFurtherAction` [`ClosedWithFurtherActionAlertState`](https://dev.nominal.io/api/rest/data-review-service.md#closedwithfurtheractionalertstate)
        :   ​

            Fields of `ClosedWithFurtherActionAlertState`

            `comment` string
            :   ​

            `closedBy` string (RID)
            :   ​

        **closedWithIgnore**

        Set `type` to `"closedWithIgnore"`.

        `closedWithIgnore` [`ClosedWithIgnoreAlertState`](https://dev.nominal.io/api/rest/data-review-service.md#closedwithignorealertstate)
        :   ​

            Fields of `ClosedWithIgnoreAlertState`

            `comment` string
            :   ​

            `closedBy` string (RID)
            :   ​

    `priority` [`Priority`](https://dev.nominal.io/api/rest/data-review-service.md#priority)
    :   ​

        Values of `Priority`

        `P0`
        :   ​

        `P1`
        :   ​

        `P2`
        :   ​

        `P3`
        :   ​

        `P4`
        :   ​

    `chart` [`VersionedVizId`](https://dev.nominal.io/api/rest/data-review-service.md#versionedvizid) deprecated
    :   **Deprecated:** charts are no longer versioned resources.

        Fields of `VersionedVizId`

        `rid` string
        :   ​

        `version` integer
        :   ​

    `notes` string
    :   ​

    `notebook` string (RID)
    :   ​

Request

**curl**

```shell
curl -X POST "https://api.gov.nominal.io/api/scout/v2/data-review/check-alerts/batch-perform-action" \
  -H "Authorization: Bearer <api key>" \
  -H "Content-Type: application/json" \
  --data '{
  "checkAlertAction": {
    "type": "closeWithIgnore",
    "closeWithIgnore": {
      "comment": "<comment>"
    }
  }
}'
```

**requests**

```python
import requests

response = requests.post(
    "https://api.gov.nominal.io/api/scout/v2/data-review/check-alerts/batch-perform-action",
    headers={"Authorization": "Bearer <api key>"},
    json={
        "checkAlertAction": {
            "type": "closeWithIgnore",
            "closeWithIgnore": {"comment": "<comment>"},
        },
    },
)
response.raise_for_status()
print(response.json())
```

**httpx**

```python
import httpx

response = httpx.post(
    "https://api.gov.nominal.io/api/scout/v2/data-review/check-alerts/batch-perform-action",
    headers={"Authorization": "Bearer <api key>"},
    json={
        "checkAlertAction": {
            "type": "closeWithIgnore",
            "closeWithIgnore": {"comment": "<comment>"},
        },
    },
)
response.raise_for_status()
print(response.json())
```

**aiohttp**

```python
import asyncio

import aiohttp

async def main() -> None:
    async with aiohttp.ClientSession() as session:
        async with session.post(
            "https://api.gov.nominal.io/api/scout/v2/data-review/check-alerts/batch-perform-action",
            headers={"Authorization": "Bearer <api key>"},
            json={
                "checkAlertAction": {
                    "type": "closeWithIgnore",
                    "closeWithIgnore": {"comment": "<comment>"},
                },
            },
        ) as response:
            response.raise_for_status()
            print(await response.json())

asyncio.run(main())
```

Response: `200`

```json
{
  "checkAlerts": [
    {
      "rid": "<check alert rid>",
      "checkRid": "<check rid>",
      "implementationIndex": 1,
      "dataReviewRid": "<data review rid>",
      "checkEvaluationRid": "<automatic check evaluation rid>",
      "name": "<name>",
      "autogeneratedCheckTitle": "<autogenerated check title>",
      "autogeneratedCheckDescription": "<autogenerated check description>",
      "assigneeRids": [
        "<user rid>"
      ],
      "start": {
        "seconds": 1,
        "nanos": 1
      },
      "end": {
        "seconds": 1,
        "nanos": 1
      },
      "state": {
        "type": "pendingReview",
        "pendingReview": {}
      },
      "priority": "P0",
      "chart": {
        "rid": "<viz id>",
        "version": 1
      },
      "notes": "<notes>",
      "notebook": "<notebook rid>"
    }
  ]
}
```

### Batch perform automatic check evaluation review action

POST `/scout/v2/data-review/automatic-check-evaluation/batch-perform-action`

**Deprecated:** CheckAlerts have been replaced by Events. Please use the EventService instead.

Applies an action to the specified check evaluation RIDs. If any of the check actions fail, then none of the actions will be applied.

Body

`checkEvaluationAction` [`AutomaticCheckEvaluationReviewAction`](https://dev.nominal.io/api/rest/data-review-service.md#automaticcheckevaluationreviewaction) required
:   ​

    **closeWithIgnore**

    Set `type` to `"closeWithIgnore"`.

    `closeWithIgnore` [`CloseWithIgnoreAlert`](https://dev.nominal.io/api/rest/data-review-service.md#closewithignorealert)
    :   ​

        Fields of `CloseWithIgnoreAlert`

        `comment` string required
        :   ​

        `strategy` [`CloseStrategy`](https://dev.nominal.io/api/rest/data-review-service.md#closestrategy)
        :   Defines the strategy for closing the alert and any alerts linked via an associated notebook. If not provided, the default strategy is closeAllLinkedAlerts.

            **closeAllLinkedAlerts**

            Set `type` to `"closeAllLinkedAlerts"`.

            `closeAllLinkedAlerts` [`CloseAllLinkedAlerts`](https://dev.nominal.io/api/rest/data-review-service.md#closealllinkedalerts)
            :   ​

            **closeAndDetachFromNotebook**

            Set `type` to `"closeAndDetachFromNotebook"`.

            `closeAndDetachFromNotebook` [`CloseAndDetachFromNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#closeanddetachfromnotebook)
            :   ​

            **closeAndDuplicatePreviouslyLinkedNotebook**

            Set `type` to `"closeAndDuplicatePreviouslyLinkedNotebook"`.

            `closeAndDuplicatePreviouslyLinkedNotebook` [`CloseAndDuplicatePreviouslyLinkedNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#closeandduplicatepreviouslylinkednotebook)
            :   ​

    **closeWithFurtherAction**

    Set `type` to `"closeWithFurtherAction"`.

    `closeWithFurtherAction` [`CloseWithFurtherAction`](https://dev.nominal.io/api/rest/data-review-service.md#closewithfurtheraction)
    :   ​

        Fields of `CloseWithFurtherAction`

        `comment` string required
        :   ​

        `strategy` [`CloseStrategy`](https://dev.nominal.io/api/rest/data-review-service.md#closestrategy)
        :   Defines the strategy for reopening the alert and any alerts linked via an associated notebook. If not provided, the alert will be closed naively and throw if it leaves a linked notebook in an invalid state.

    **reopen**

    Set `type` to `"reopen"`.

    `reopen` [`Reopen`](https://dev.nominal.io/api/rest/data-review-service.md#reopen)
    :   ​

        Fields of `Reopen`

        `comment` string required
        :   ​

        `strategy` [`ReopenStrategy`](https://dev.nominal.io/api/rest/data-review-service.md#reopenstrategy)
        :   Defines the strategy for reopening the alert and any alerts linked via an associated notebook. If not provided, the default strategy is reopenAllLinkedAlerts.

            **reopenAllLinkedAlerts**

            Set `type` to `"reopenAllLinkedAlerts"`.

            `reopenAllLinkedAlerts` [`ReopenAllLinkedAlerts`](https://dev.nominal.io/api/rest/data-review-service.md#reopenalllinkedalerts)
            :   ​

            **reopenAndDetachFromNotebook**

            Set `type` to `"reopenAndDetachFromNotebook"`.

            `reopenAndDetachFromNotebook` [`ReopenAndDetachFromNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#reopenanddetachfromnotebook)
            :   ​

            **reopenAndDuplicatePreviouslyLinkedNotebook**

            Set `type` to `"reopenAndDuplicatePreviouslyLinkedNotebook"`.

            `reopenAndDuplicatePreviouslyLinkedNotebook` [`ReopenAndDuplicatePreviouslyLinkedNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#reopenandduplicatepreviouslylinkednotebook)
            :   ​

    **reassign**

    Set `type` to `"reassign"`.

    `reassign` [`Reassign`](https://dev.nominal.io/api/rest/data-review-service.md#reassign)
    :   ​

        Fields of `Reassign`

        `assigneeRids` array of string (RID)
        :   ​

    **updateNotes**

    Set `type` to `"updateNotes"`.

    `updateNotes` [`UpdateNotes`](https://dev.nominal.io/api/rest/data-review-service.md#updatenotes)
    :   ​

        Fields of `UpdateNotes`

        `notes` string required
        :   ​

`checkEvaluationRids` array of string (RID)
:   ​

Response

`checkEvaluations` array of [`AutomaticCheckEvaluation`](https://dev.nominal.io/api/rest/data-review-service.md#automaticcheckevaluation)
:   ​

    Fields of `AutomaticCheckEvaluation`

    `rid` string (RID)
    :   ​

    `checkRid` string (RID)
    :   ​

    `checkImplementationIndex` integer
    :   Checks can define a single range computation which can evaluate over multiple implementations of a context. The check implementation index will correspond to the implementation index of the check condition.

    `dataReviewRid` string (RID)
    :   ​

    `state` [`AutomaticCheckEvaluationState`](https://dev.nominal.io/api/rest/data-review-service.md#automaticcheckevaluationstate)
    :   ​

        **pendingExecution**

        Set `type` to `"pendingExecution"`.

        `pendingExecution` [`PendingExecutionState`](https://dev.nominal.io/api/rest/data-review-service.md#pendingexecutionstate)
        :   ​

            Fields of `PendingExecutionState`

            `jobRid` string (RID)
            :   ​

        **failedToExecute**

        Set `type` to `"failedToExecute"`.

        `failedToExecute` [`FailedToExecuteState`](https://dev.nominal.io/api/rest/data-review-service.md#failedtoexecutestate)
        :   ​

            Fields of `FailedToExecuteState`

            `jobRid` string (RID)
            :   ​

            `reviewState` [`CheckAlertState`](https://dev.nominal.io/api/rest/data-review-service.md#checkalertstate)
            :   ​

                **pendingReview**

                Set `type` to `"pendingReview"`.

                `pendingReview` [`PendingReviewAlertState`](https://dev.nominal.io/api/rest/data-review-service.md#pendingreviewalertstate)
                :   ​

                **closedWithFurtherAction**

                Set `type` to `"closedWithFurtherAction"`.

                `closedWithFurtherAction` [`ClosedWithFurtherActionAlertState`](https://dev.nominal.io/api/rest/data-review-service.md#closedwithfurtheractionalertstate)
                :   ​

                    Fields of `ClosedWithFurtherActionAlertState`

                    `comment` string
                    :   ​

                    `closedBy` string (RID)
                    :   ​

                **closedWithIgnore**

                Set `type` to `"closedWithIgnore"`.

                `closedWithIgnore` [`ClosedWithIgnoreAlertState`](https://dev.nominal.io/api/rest/data-review-service.md#closedwithignorealertstate)
                :   ​

                    Fields of `ClosedWithIgnoreAlertState`

                    `comment` string
                    :   ​

                    `closedBy` string (RID)
                    :   ​

            `reviewNotes` string
            :   ​

            `assigneeRids` array of string (RID)
            :   ​

        **passing**

        Set `type` to `"passing"`.

        `passing` [`PassingExecutionState`](https://dev.nominal.io/api/rest/data-review-service.md#passingexecutionstate)
        :   ​

        **generatedAlerts**

        Set `type` to `"generatedAlerts"`.

        `generatedAlerts` [`GeneratedAlertsState`](https://dev.nominal.io/api/rest/data-review-service.md#generatedalertsstate)
        :   ​

            Fields of `GeneratedAlertsState`

            `rids` array of string (RID) deprecated
            :   **Deprecated:** This field is deprecated and will be removed in a future version. Use eventRids instead.

            `eventRids` array of string (RID)
            :   ​

        **tooManyAlerts**

        Set `type` to `"tooManyAlerts"`.

        `tooManyAlerts` [`TooManyAlertsState`](https://dev.nominal.io/api/rest/data-review-service.md#toomanyalertsstate)
        :   ​

        **executing**

        Set `type` to `"executing"`.

        `executing` [`ExecutingState`](https://dev.nominal.io/api/rest/data-review-service.md#executingstate)
        :   ​

            Fields of `ExecutingState`

            `jobRid` string (RID)
            :   ​

Request

**curl**

```shell
curl -X POST "https://api.gov.nominal.io/api/scout/v2/data-review/automatic-check-evaluation/batch-perform-action" \
  -H "Authorization: Bearer <api key>" \
  -H "Content-Type: application/json" \
  --data '{
  "checkEvaluationAction": {
    "type": "closeWithIgnore",
    "closeWithIgnore": {
      "comment": "<comment>"
    }
  }
}'
```

**requests**

```python
import requests

response = requests.post(
    "https://api.gov.nominal.io/api/scout/v2/data-review/automatic-check-evaluation/batch-perform-action",
    headers={"Authorization": "Bearer <api key>"},
    json={
        "checkEvaluationAction": {
            "type": "closeWithIgnore",
            "closeWithIgnore": {"comment": "<comment>"},
        },
    },
)
response.raise_for_status()
print(response.json())
```

**httpx**

```python
import httpx

response = httpx.post(
    "https://api.gov.nominal.io/api/scout/v2/data-review/automatic-check-evaluation/batch-perform-action",
    headers={"Authorization": "Bearer <api key>"},
    json={
        "checkEvaluationAction": {
            "type": "closeWithIgnore",
            "closeWithIgnore": {"comment": "<comment>"},
        },
    },
)
response.raise_for_status()
print(response.json())
```

**aiohttp**

```python
import asyncio

import aiohttp

async def main() -> None:
    async with aiohttp.ClientSession() as session:
        async with session.post(
            "https://api.gov.nominal.io/api/scout/v2/data-review/automatic-check-evaluation/batch-perform-action",
            headers={"Authorization": "Bearer <api key>"},
            json={
                "checkEvaluationAction": {
                    "type": "closeWithIgnore",
                    "closeWithIgnore": {"comment": "<comment>"},
                },
            },
        ) as response:
            response.raise_for_status()
            print(await response.json())

asyncio.run(main())
```

Response: `200`

```json
{
  "checkEvaluations": [
    {
      "rid": "<automatic check evaluation rid>",
      "checkRid": "<check rid>",
      "checkImplementationIndex": 1,
      "dataReviewRid": "<data review rid>",
      "state": {
        "type": "pendingExecution",
        "pendingExecution": {
          "jobRid": "<job rid>"
        }
      }
    }
  ]
}
```

### Get automatic check evaluation action log

GET `/scout/v2/data-review/automatic-check-evaluation/{rid}/action-log`

**Deprecated:** CheckAlerts have been replaced by Events. Please use the EventService instead.

Path parameters

`rid` string (RID) required
:   ​

Response

`entries` array of [`AutomaticCheckEvaluationActionLogEntry`](https://dev.nominal.io/api/rest/data-review-service.md#automaticcheckevaluationactionlogentry)
:   ​

    Fields of `AutomaticCheckEvaluationActionLogEntry`

    `action` [`AutomaticCheckEvaluationAction`](https://dev.nominal.io/api/rest/data-review-service.md#automaticcheckevaluationaction)
    :   ​

        **executionFinished**

        Set `type` to `"executionFinished"`.

        `executionFinished` [`AutomaticCheckExecutionFinished`](https://dev.nominal.io/api/rest/data-review-service.md#automaticcheckexecutionfinished)
        :   ​

            Fields of `AutomaticCheckExecutionFinished`

            `jobRid` string (RID)
            :   ​

            `status` [`Status`](https://dev.nominal.io/api/rest/data-review-service.md#status)
            :   ​

                Values of `Status`

                `PASS`
                :   ​

                `FAIL`
                :   ​

        **executionFailedToRun**

        Set `type` to `"executionFailedToRun"`.

        `executionFailedToRun` [`AutomaticCheckExecutionFailedToRun`](https://dev.nominal.io/api/rest/data-review-service.md#automaticcheckexecutionfailedtorun)
        :   ​

            Fields of `AutomaticCheckExecutionFailedToRun`

            `jobRid` string (RID)
            :   ​

        **executionRetriggered**

        Set `type` to `"executionRetriggered"`.

        `executionRetriggered` [`ExecutionRetriggered`](https://dev.nominal.io/api/rest/data-review-service.md#executionretriggered)
        :   ​

            Fields of `ExecutionRetriggered`

            `jobRid` string (RID)
            :   ​

        **executionStarted**

        Set `type` to `"executionStarted"`.

        `executionStarted` [`AutomaticCheckExecutionStarted`](https://dev.nominal.io/api/rest/data-review-service.md#automaticcheckexecutionstarted)
        :   ​

            Fields of `AutomaticCheckExecutionStarted`

            `jobRid` string (RID)
            :   ​

    `timestamp` string (date-time)
    :   ​

Request

**curl**

```shell
curl "https://api.gov.nominal.io/api/scout/v2/data-review/automatic-check-evaluation/<rid>/action-log" \
  -H "Authorization: Bearer <api key>"
```

**requests**

```python
import requests

response = requests.get(
    "https://api.gov.nominal.io/api/scout/v2/data-review/automatic-check-evaluation/<rid>/action-log",
    headers={"Authorization": "Bearer <api key>"},
)
response.raise_for_status()
print(response.json())
```

**httpx**

```python
import httpx

response = httpx.get(
    "https://api.gov.nominal.io/api/scout/v2/data-review/automatic-check-evaluation/<rid>/action-log",
    headers={"Authorization": "Bearer <api key>"},
)
response.raise_for_status()
print(response.json())
```

**aiohttp**

```python
import asyncio

import aiohttp

async def main() -> None:
    async with aiohttp.ClientSession() as session:
        async with session.get(
            "https://api.gov.nominal.io/api/scout/v2/data-review/automatic-check-evaluation/<rid>/action-log",
            headers={"Authorization": "Bearer <api key>"},
        ) as response:
            response.raise_for_status()
            print(await response.json())

asyncio.run(main())
```

Response: `200`

```json
{
  "entries": [
    {
      "action": {
        "type": "executionFinished",
        "executionFinished": {
          "jobRid": "<job rid>",
          "status": "PASS"
        }
      },
      "timestamp": "2026-01-01T00:00:00Z"
    }
  ]
}
```

### Batch perform manual check alert action

POST `/scout/v2/data-review/manual-check-evaluation/batch-perform-action`

**Deprecated:** No longer in use

Applies an action to the specified check evaluation RIDs. If any of the check actions fail, then none of the actions will be applied.

Body

`checkAlertAction` [`ManualCheckAlertAction`](https://dev.nominal.io/api/rest/data-review-service.md#manualcheckalertaction) required
:   ​

    **pass**

    Set `type` to `"pass"`.

    `pass` [`Pass`](https://dev.nominal.io/api/rest/data-review-service.md#pass)
    :   ​

        Fields of `Pass`

        `comment` string required
        :   ​

    **closeWithFurtherAction**

    Set `type` to `"closeWithFurtherAction"`.

    `closeWithFurtherAction` [`CloseWithFurtherAction`](https://dev.nominal.io/api/rest/data-review-service.md#closewithfurtheraction)
    :   ​

        Fields of `CloseWithFurtherAction`

        `comment` string required
        :   ​

        `strategy` [`CloseStrategy`](https://dev.nominal.io/api/rest/data-review-service.md#closestrategy)
        :   Defines the strategy for reopening the alert and any alerts linked via an associated notebook. If not provided, the alert will be closed naively and throw if it leaves a linked notebook in an invalid state.

            **closeAllLinkedAlerts**

            Set `type` to `"closeAllLinkedAlerts"`.

            `closeAllLinkedAlerts` [`CloseAllLinkedAlerts`](https://dev.nominal.io/api/rest/data-review-service.md#closealllinkedalerts)
            :   ​

            **closeAndDetachFromNotebook**

            Set `type` to `"closeAndDetachFromNotebook"`.

            `closeAndDetachFromNotebook` [`CloseAndDetachFromNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#closeanddetachfromnotebook)
            :   ​

            **closeAndDuplicatePreviouslyLinkedNotebook**

            Set `type` to `"closeAndDuplicatePreviouslyLinkedNotebook"`.

            `closeAndDuplicatePreviouslyLinkedNotebook` [`CloseAndDuplicatePreviouslyLinkedNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#closeandduplicatepreviouslylinkednotebook)
            :   ​

    **reopen**

    Set `type` to `"reopen"`.

    `reopen` [`Reopen`](https://dev.nominal.io/api/rest/data-review-service.md#reopen)
    :   ​

        Fields of `Reopen`

        `comment` string required
        :   ​

        `strategy` [`ReopenStrategy`](https://dev.nominal.io/api/rest/data-review-service.md#reopenstrategy)
        :   Defines the strategy for reopening the alert and any alerts linked via an associated notebook. If not provided, the default strategy is reopenAllLinkedAlerts.

            **reopenAllLinkedAlerts**

            Set `type` to `"reopenAllLinkedAlerts"`.

            `reopenAllLinkedAlerts` [`ReopenAllLinkedAlerts`](https://dev.nominal.io/api/rest/data-review-service.md#reopenalllinkedalerts)
            :   ​

            **reopenAndDetachFromNotebook**

            Set `type` to `"reopenAndDetachFromNotebook"`.

            `reopenAndDetachFromNotebook` [`ReopenAndDetachFromNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#reopenanddetachfromnotebook)
            :   ​

            **reopenAndDuplicatePreviouslyLinkedNotebook**

            Set `type` to `"reopenAndDuplicatePreviouslyLinkedNotebook"`.

            `reopenAndDuplicatePreviouslyLinkedNotebook` [`ReopenAndDuplicatePreviouslyLinkedNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#reopenandduplicatepreviouslylinkednotebook)
            :   ​

    **reassign**

    Set `type` to `"reassign"`.

    `reassign` [`Reassign`](https://dev.nominal.io/api/rest/data-review-service.md#reassign)
    :   ​

        Fields of `Reassign`

        `assigneeRids` array of string (RID)
        :   ​

    **updateNotes**

    Set `type` to `"updateNotes"`.

    `updateNotes` [`UpdateNotes`](https://dev.nominal.io/api/rest/data-review-service.md#updatenotes)
    :   ​

        Fields of `UpdateNotes`

        `notes` string required
        :   ​

    **linkNotebook**

    Set `type` to `"linkNotebook"`.

    `linkNotebook` [`LinkNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#linknotebook)
    :   ​

        Fields of `LinkNotebook`

        `rid` string (RID) required
        :   ​

        `strategy` [`LinkNotebookStrategy`](https://dev.nominal.io/api/rest/data-review-service.md#linknotebookstrategy)
        :   Defines the strategy for reconciling the alert with any linked alerts via the associated notebook. If not provided, the alert will be linked naively and throw if it leaves a linked notebook in an invalid state.

            **duplicateAndLinkToNewNotebook**

            Set `type` to `"duplicateAndLinkToNewNotebook"`.

            `duplicateAndLinkToNewNotebook` [`DuplicateAndLinkNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#duplicateandlinknotebook)
            :   ​

            **closeAndLink**

            Set `type` to `"closeAndLink"`.

            `closeAndLink` [`CloseAndLinkToNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#closeandlinktonotebook)
            :   ​

                Fields of `CloseAndLinkToNotebook`

                `closeAction` [`CloseAction`](https://dev.nominal.io/api/rest/data-review-service.md#closeaction) required
                :   ​

                    **closeWithIgnore**

                    Set `type` to `"closeWithIgnore"`.

                    `closeWithIgnore` [`CloseWithIgnoreAlert`](https://dev.nominal.io/api/rest/data-review-service.md#closewithignorealert)
                    :   ​

                        Fields of `CloseWithIgnoreAlert`

                        `comment` string required
                        :   ​

                        `strategy` [`CloseStrategy`](https://dev.nominal.io/api/rest/data-review-service.md#closestrategy)
                        :   Defines the strategy for closing the alert and any alerts linked via an associated notebook. If not provided, the default strategy is closeAllLinkedAlerts.

                    **closeWithFurtherAction**

                    Set `type` to `"closeWithFurtherAction"`.

                    `closeWithFurtherAction` [`CloseWithFurtherAction`](https://dev.nominal.io/api/rest/data-review-service.md#closewithfurtheraction)
                    :   ​

            **reopenAndLink**

            Set `type` to `"reopenAndLink"`.

            `reopenAndLink` [`ReopenAndLinkToNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#reopenandlinktonotebook)
            :   ​

                Fields of `ReopenAndLinkToNotebook`

                `comment` string required
                :   ​

`checkEvaluationRids` array of string (RID)
:   ​

Response

No content (HTTP 204).

Request

**curl**

```shell
curl -X POST "https://api.gov.nominal.io/api/scout/v2/data-review/manual-check-evaluation/batch-perform-action" \
  -H "Authorization: Bearer <api key>" \
  -H "Content-Type: application/json" \
  --data '{
  "checkAlertAction": {
    "type": "pass",
    "pass": {
      "comment": "<comment>"
    }
  }
}'
```

**requests**

```python
import requests

response = requests.post(
    "https://api.gov.nominal.io/api/scout/v2/data-review/manual-check-evaluation/batch-perform-action",
    headers={"Authorization": "Bearer <api key>"},
    json={"checkAlertAction": {"type": "pass", "pass": {"comment": "<comment>"}}},
)
response.raise_for_status()
```

**httpx**

```python
import httpx

response = httpx.post(
    "https://api.gov.nominal.io/api/scout/v2/data-review/manual-check-evaluation/batch-perform-action",
    headers={"Authorization": "Bearer <api key>"},
    json={"checkAlertAction": {"type": "pass", "pass": {"comment": "<comment>"}}},
)
response.raise_for_status()
```

**aiohttp**

```python
import asyncio

import aiohttp

async def main() -> None:
    async with aiohttp.ClientSession() as session:
        async with session.post(
            "https://api.gov.nominal.io/api/scout/v2/data-review/manual-check-evaluation/batch-perform-action",
            headers={"Authorization": "Bearer <api key>"},
            json={
                "checkAlertAction": {"type": "pass", "pass": {"comment": "<comment>"}},
            },
        ) as response:
            response.raise_for_status()

asyncio.run(main())
```

Response: `204`

No content.

### Get manual check evaluation action log

GET `/scout/v2/data-review/manual-check-evaluation/{rid}/action-log`

**Deprecated:** No longer in use

Returns a record of the historical manual actions taken on the provided check evaluation.

Path parameters

`rid` string (RID) required
:   ​

Response

`entries` array of [`ManualCheckEvaluationActionLogEntry`](https://dev.nominal.io/api/rest/data-review-service.md#manualcheckevaluationactionlogentry)
:   ​

    Fields of `ManualCheckEvaluationActionLogEntry`

    `performedBy` string (RID)
    :   ​

    `action` [`ManualCheckAlertAction`](https://dev.nominal.io/api/rest/data-review-service.md#manualcheckalertaction)
    :   ​

        **pass**

        Set `type` to `"pass"`.

        `pass` [`Pass`](https://dev.nominal.io/api/rest/data-review-service.md#pass)
        :   ​

            Fields of `Pass`

            `comment` string
            :   ​

        **closeWithFurtherAction**

        Set `type` to `"closeWithFurtherAction"`.

        `closeWithFurtherAction` [`CloseWithFurtherAction`](https://dev.nominal.io/api/rest/data-review-service.md#closewithfurtheraction)
        :   ​

            Fields of `CloseWithFurtherAction`

            `comment` string
            :   ​

            `strategy` [`CloseStrategy`](https://dev.nominal.io/api/rest/data-review-service.md#closestrategy)
            :   Defines the strategy for reopening the alert and any alerts linked via an associated notebook. If not provided, the alert will be closed naively and throw if it leaves a linked notebook in an invalid state.

                **closeAllLinkedAlerts**

                Set `type` to `"closeAllLinkedAlerts"`.

                `closeAllLinkedAlerts` [`CloseAllLinkedAlerts`](https://dev.nominal.io/api/rest/data-review-service.md#closealllinkedalerts)
                :   ​

                **closeAndDetachFromNotebook**

                Set `type` to `"closeAndDetachFromNotebook"`.

                `closeAndDetachFromNotebook` [`CloseAndDetachFromNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#closeanddetachfromnotebook)
                :   ​

                **closeAndDuplicatePreviouslyLinkedNotebook**

                Set `type` to `"closeAndDuplicatePreviouslyLinkedNotebook"`.

                `closeAndDuplicatePreviouslyLinkedNotebook` [`CloseAndDuplicatePreviouslyLinkedNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#closeandduplicatepreviouslylinkednotebook)
                :   ​

        **reopen**

        Set `type` to `"reopen"`.

        `reopen` [`Reopen`](https://dev.nominal.io/api/rest/data-review-service.md#reopen)
        :   ​

            Fields of `Reopen`

            `comment` string
            :   ​

            `strategy` [`ReopenStrategy`](https://dev.nominal.io/api/rest/data-review-service.md#reopenstrategy)
            :   Defines the strategy for reopening the alert and any alerts linked via an associated notebook. If not provided, the default strategy is reopenAllLinkedAlerts.

                **reopenAllLinkedAlerts**

                Set `type` to `"reopenAllLinkedAlerts"`.

                `reopenAllLinkedAlerts` [`ReopenAllLinkedAlerts`](https://dev.nominal.io/api/rest/data-review-service.md#reopenalllinkedalerts)
                :   ​

                **reopenAndDetachFromNotebook**

                Set `type` to `"reopenAndDetachFromNotebook"`.

                `reopenAndDetachFromNotebook` [`ReopenAndDetachFromNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#reopenanddetachfromnotebook)
                :   ​

                **reopenAndDuplicatePreviouslyLinkedNotebook**

                Set `type` to `"reopenAndDuplicatePreviouslyLinkedNotebook"`.

                `reopenAndDuplicatePreviouslyLinkedNotebook` [`ReopenAndDuplicatePreviouslyLinkedNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#reopenandduplicatepreviouslylinkednotebook)
                :   ​

        **reassign**

        Set `type` to `"reassign"`.

        `reassign` [`Reassign`](https://dev.nominal.io/api/rest/data-review-service.md#reassign)
        :   ​

            Fields of `Reassign`

            `assigneeRids` array of string (RID)
            :   ​

        **updateNotes**

        Set `type` to `"updateNotes"`.

        `updateNotes` [`UpdateNotes`](https://dev.nominal.io/api/rest/data-review-service.md#updatenotes)
        :   ​

            Fields of `UpdateNotes`

            `notes` string
            :   ​

        **linkNotebook**

        Set `type` to `"linkNotebook"`.

        `linkNotebook` [`LinkNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#linknotebook)
        :   ​

            Fields of `LinkNotebook`

            `rid` string (RID)
            :   ​

            `strategy` [`LinkNotebookStrategy`](https://dev.nominal.io/api/rest/data-review-service.md#linknotebookstrategy)
            :   Defines the strategy for reconciling the alert with any linked alerts via the associated notebook. If not provided, the alert will be linked naively and throw if it leaves a linked notebook in an invalid state.

                **duplicateAndLinkToNewNotebook**

                Set `type` to `"duplicateAndLinkToNewNotebook"`.

                `duplicateAndLinkToNewNotebook` [`DuplicateAndLinkNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#duplicateandlinknotebook)
                :   ​

                **closeAndLink**

                Set `type` to `"closeAndLink"`.

                `closeAndLink` [`CloseAndLinkToNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#closeandlinktonotebook)
                :   ​

                    Fields of `CloseAndLinkToNotebook`

                    `closeAction` [`CloseAction`](https://dev.nominal.io/api/rest/data-review-service.md#closeaction)
                    :   ​

                        **closeWithIgnore**

                        Set `type` to `"closeWithIgnore"`.

                        `closeWithIgnore` [`CloseWithIgnoreAlert`](https://dev.nominal.io/api/rest/data-review-service.md#closewithignorealert)
                        :   ​

                            Fields of `CloseWithIgnoreAlert`

                            `comment` string
                            :   ​

                            `strategy` [`CloseStrategy`](https://dev.nominal.io/api/rest/data-review-service.md#closestrategy)
                            :   Defines the strategy for closing the alert and any alerts linked via an associated notebook. If not provided, the default strategy is closeAllLinkedAlerts.

                        **closeWithFurtherAction**

                        Set `type` to `"closeWithFurtherAction"`.

                        `closeWithFurtherAction` [`CloseWithFurtherAction`](https://dev.nominal.io/api/rest/data-review-service.md#closewithfurtheraction)
                        :   ​

                **reopenAndLink**

                Set `type` to `"reopenAndLink"`.

                `reopenAndLink` [`ReopenAndLinkToNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#reopenandlinktonotebook)
                :   ​

                    Fields of `ReopenAndLinkToNotebook`

                    `comment` string
                    :   ​

    `timestamp` string (date-time)
    :   ​

Request

**curl**

```shell
curl "https://api.gov.nominal.io/api/scout/v2/data-review/manual-check-evaluation/<rid>/action-log" \
  -H "Authorization: Bearer <api key>"
```

**requests**

```python
import requests

response = requests.get(
    "https://api.gov.nominal.io/api/scout/v2/data-review/manual-check-evaluation/<rid>/action-log",
    headers={"Authorization": "Bearer <api key>"},
)
response.raise_for_status()
print(response.json())
```

**httpx**

```python
import httpx

response = httpx.get(
    "https://api.gov.nominal.io/api/scout/v2/data-review/manual-check-evaluation/<rid>/action-log",
    headers={"Authorization": "Bearer <api key>"},
)
response.raise_for_status()
print(response.json())
```

**aiohttp**

```python
import asyncio

import aiohttp

async def main() -> None:
    async with aiohttp.ClientSession() as session:
        async with session.get(
            "https://api.gov.nominal.io/api/scout/v2/data-review/manual-check-evaluation/<rid>/action-log",
            headers={"Authorization": "Bearer <api key>"},
        ) as response:
            response.raise_for_status()
            print(await response.json())

asyncio.run(main())
```

Response: `200`

```json
{
  "entries": [
    {
      "performedBy": "<user rid>",
      "action": {
        "type": "pass",
        "pass": {
          "comment": "<comment>"
        }
      },
      "timestamp": "2026-01-01T00:00:00Z"
    }
  ]
}
```

### Archive data review

POST `/scout/v2/data-review/{dataReviewRid}/archive`

Archives the data review with the given rid.

Path parameters

`dataReviewRid` string (RID) required
:   ​

Response

The body is a boolean.

Request

**curl**

```shell
curl -X POST "https://api.gov.nominal.io/api/scout/v2/data-review/<data review rid>/archive" \
  -H "Authorization: Bearer <api key>"
```

**requests**

```python
import requests

response = requests.post(
    "https://api.gov.nominal.io/api/scout/v2/data-review/<data review rid>/archive",
    headers={"Authorization": "Bearer <api key>"},
)
response.raise_for_status()
print(response.json())
```

**httpx**

```python
import httpx

response = httpx.post(
    "https://api.gov.nominal.io/api/scout/v2/data-review/<data review rid>/archive",
    headers={"Authorization": "Bearer <api key>"},
)
response.raise_for_status()
print(response.json())
```

**aiohttp**

```python
import asyncio

import aiohttp

async def main() -> None:
    async with aiohttp.ClientSession() as session:
        async with session.post(
            "https://api.gov.nominal.io/api/scout/v2/data-review/<data review rid>/archive",
            headers={"Authorization": "Bearer <api key>"},
        ) as response:
            response.raise_for_status()
            print(await response.json())

asyncio.run(main())
```

Response: `200`

```json
true
```

### Batch archive data review

POST `/scout/v2/data-review/batch-archive`

Batch archives the data reviews with the given rids.

Body

The body is an array of string (RID).

Response

No content (HTTP 204).

Request

**curl**

```shell
curl -X POST "https://api.gov.nominal.io/api/scout/v2/data-review/batch-archive" \
  -H "Authorization: Bearer <api key>" \
  -H "Content-Type: application/json" \
  --data '[
  "<data review rid>"
]'
```

**requests**

```python
import requests

response = requests.post(
    "https://api.gov.nominal.io/api/scout/v2/data-review/batch-archive",
    headers={"Authorization": "Bearer <api key>"},
    json=["<data review rid>"],
)
response.raise_for_status()
```

**httpx**

```python
import httpx

response = httpx.post(
    "https://api.gov.nominal.io/api/scout/v2/data-review/batch-archive",
    headers={"Authorization": "Bearer <api key>"},
    json=["<data review rid>"],
)
response.raise_for_status()
```

**aiohttp**

```python
import asyncio

import aiohttp

async def main() -> None:
    async with aiohttp.ClientSession() as session:
        async with session.post(
            "https://api.gov.nominal.io/api/scout/v2/data-review/batch-archive",
            headers={"Authorization": "Bearer <api key>"},
            json=["<data review rid>"],
        ) as response:
            response.raise_for_status()

asyncio.run(main())
```

Response: `204`

No content.

### Unarchive data review

POST `/scout/v2/data-review/unarchive/{dataReviewRid}`

Unarchives the data review with the given rid.

Path parameters

`dataReviewRid` string (RID) required
:   ​

Response

No content (HTTP 204).

Request

**curl**

```shell
curl -X POST "https://api.gov.nominal.io/api/scout/v2/data-review/unarchive/<data review rid>" \
  -H "Authorization: Bearer <api key>"
```

**requests**

```python
import requests

response = requests.post(
    "https://api.gov.nominal.io/api/scout/v2/data-review/unarchive/<data review rid>",
    headers={"Authorization": "Bearer <api key>"},
)
response.raise_for_status()
```

**httpx**

```python
import httpx

response = httpx.post(
    "https://api.gov.nominal.io/api/scout/v2/data-review/unarchive/<data review rid>",
    headers={"Authorization": "Bearer <api key>"},
)
response.raise_for_status()
```

**aiohttp**

```python
import asyncio

import aiohttp

async def main() -> None:
    async with aiohttp.ClientSession() as session:
        async with session.post(
            "https://api.gov.nominal.io/api/scout/v2/data-review/unarchive/<data review rid>",
            headers={"Authorization": "Bearer <api key>"},
        ) as response:
            response.raise_for_status()

asyncio.run(main())
```

Response: `204`

No content.

### Get data review check metrics

POST `/scout/v2/data-review/data-review-check-metrics`

Body

`scope` [`DataReviewCheckMetricsScope`](https://dev.nominal.io/api/rest/data-review-service.md#datareviewcheckmetricsscope) required
:   ​

    **runRid**

    Set `type` to `"runRid"`.

    `runRid` string (RID)
    :   ​

    **assetRid**

    Set `type` to `"assetRid"`.

    `assetRid` string (RID)
    :   ​

    **dataReviewRid**

    Set `type` to `"dataReviewRid"`.

    `dataReviewRid` string (RID)
    :   ​

Response

`checksPendingExecution` integer
:   ​

`checksExecuting` integer
:   ​

`checksPassed` integer
:   ​

`checksWithEventsPendingReview` integer
:   ​

`checksWithEventsClosedWithIgnore` integer
:   ​

`checksWithEventsClosedWithFurtherAction` integer
:   ​

`checksWithEvents` integer
:   ​

`checksWithTooManyEvents` integer
:   ​

`checksFailedToExecutePendingReview` integer
:   ​

`checksFailedToExecuteClosedWithIgnore` integer
:   ​

`checksFailedToExecuteClosedWithFurtherAction` integer
:   ​

`checksFailedToExecute` integer
:   ​

`checksExecuted` integer
:   ​

`checksTotal` integer
:   ​

`eventsPendingReview` integer
:   ​

`eventsClosedWithIgnore` integer
:   ​

`eventsClosedWithFurtherAction` integer
:   ​

`eventsTotal` integer
:   ​

Request

**curl**

```shell
curl -X POST "https://api.gov.nominal.io/api/scout/v2/data-review/data-review-check-metrics" \
  -H "Authorization: Bearer <api key>" \
  -H "Content-Type: application/json" \
  --data '{
  "scope": {
    "type": "runRid",
    "runRid": "<run rid>"
  }
}'
```

**requests**

```python
import requests

response = requests.post(
    "https://api.gov.nominal.io/api/scout/v2/data-review/data-review-check-metrics",
    headers={"Authorization": "Bearer <api key>"},
    json={"scope": {"type": "runRid", "runRid": "<run rid>"}},
)
response.raise_for_status()
print(response.json())
```

**httpx**

```python
import httpx

response = httpx.post(
    "https://api.gov.nominal.io/api/scout/v2/data-review/data-review-check-metrics",
    headers={"Authorization": "Bearer <api key>"},
    json={"scope": {"type": "runRid", "runRid": "<run rid>"}},
)
response.raise_for_status()
print(response.json())
```

**aiohttp**

```python
import asyncio

import aiohttp

async def main() -> None:
    async with aiohttp.ClientSession() as session:
        async with session.post(
            "https://api.gov.nominal.io/api/scout/v2/data-review/data-review-check-metrics",
            headers={"Authorization": "Bearer <api key>"},
            json={"scope": {"type": "runRid", "runRid": "<run rid>"}},
        ) as response:
            response.raise_for_status()
            print(await response.json())

asyncio.run(main())
```

Response: `200`

```json
{
  "checksPendingExecution": 1,
  "checksExecuting": 1,
  "checksPassed": 1,
  "checksWithEventsPendingReview": 1,
  "checksWithEventsClosedWithIgnore": 1,
  "checksWithEventsClosedWithFurtherAction": 1,
  "checksWithEvents": 1,
  "checksWithTooManyEvents": 1,
  "checksFailedToExecutePendingReview": 1,
  "checksFailedToExecuteClosedWithIgnore": 1,
  "checksFailedToExecuteClosedWithFurtherAction": 1,
  "checksFailedToExecute": 1,
  "checksExecuted": 1,
  "checksTotal": 1,
  "eventsPendingReview": 1,
  "eventsClosedWithIgnore": 1,
  "eventsClosedWithFurtherAction": 1,
  "eventsTotal": 1
}
```

## Errors

[Errors](https://dev.nominal.io/api/legacy.md#errors) shows how these errors are sent.

Each error’s `errorName` is `DataReview:` followed by its name below.

| Status | Name | Notes |
| --- | --- | --- |
| 400 | `AutomaticCheckEvaluationNotFound` |  |
| 400 | `AutomaticCheckEvaluationsNotFound` |  |
| 400 | `CannotPerformCheckAlertAction` |  |
| 400 | `CheckAlertNotFound` |  |
| 400 | `FailedToResolveSeriesForCheck` |  |
| 400 | `InvalidPageToken` |  |
| 400 | `ManualCheckEvaluationNotFound` |  |
| 400 | `ManualCheckEvaluationsNotFound` |  |
| 400 | `NoPointsInRange` |  |
| 400 | `ReviewCommentIsEmpty` |  |
| 404 | `CheckAlertsNotFound` |  |
| 404 | `DataReviewNotFound` |  |
| 404 | `DataReviewsNotFound` |  |
| 404 | `LinkedDataReviewsNotFound` |  |
| 404 | `LinkedNotebooksNotFound` |  |
| 404 | `NotebooksNotFound` |  |
| 500 | `FailedToPerformAutomaticCheckEvaluationReviewAction` |  |
| 500 | `FailedToPerformCheckAlertAction` |  |

Each error’s `errorName` is `Checks:` followed by its name below.

| Status | Name | Notes |
| --- | --- | --- |
| 404 | `AssetsNotFound` |  |
| 404 | `ChecklistsNotFound` |  |
| 404 | `RunsNotFound` |  |

## Types

### ArchiveDataReview

Archive the data review which created this check alert. Only performable via the archive data review endpoint; not supported by Perform Check Alert Action.

An empty JSON object, `{}`.

### ArchivedStatus

`NOT_ARCHIVED`
:   ​

`ARCHIVED`
:   ​

### AutomaticCheckEvaluation

`rid` string (RID) required
:   ​

`checkRid` string (RID) required
:   ​

`checkImplementationIndex` integer
:   Checks can define a single range computation which can evaluate over multiple implementations of a context. The check implementation index will correspond to the implementation index of the check condition.

`dataReviewRid` string (RID) required
:   ​

`state` [`AutomaticCheckEvaluationState`](https://dev.nominal.io/api/rest/data-review-service.md#automaticcheckevaluationstate) required
:   ​

### AutomaticCheckEvaluationAction

Set `type` to the name of one of the other fields, and set only that field.

`executionFinished` [`AutomaticCheckExecutionFinished`](https://dev.nominal.io/api/rest/data-review-service.md#automaticcheckexecutionfinished)
:   ​

`executionFailedToRun` [`AutomaticCheckExecutionFailedToRun`](https://dev.nominal.io/api/rest/data-review-service.md#automaticcheckexecutionfailedtorun)
:   ​

`executionRetriggered` [`ExecutionRetriggered`](https://dev.nominal.io/api/rest/data-review-service.md#executionretriggered)
:   ​

`executionStarted` [`AutomaticCheckExecutionStarted`](https://dev.nominal.io/api/rest/data-review-service.md#automaticcheckexecutionstarted)
:   ​

### AutomaticCheckEvaluationActionLogEntry

`action` [`AutomaticCheckEvaluationAction`](https://dev.nominal.io/api/rest/data-review-service.md#automaticcheckevaluationaction) required
:   ​

`timestamp` string (date-time) required
:   ​

### AutomaticCheckEvaluationReviewAction

Set `type` to the name of one of the other fields, and set only that field.

`closeWithIgnore` [`CloseWithIgnoreAlert`](https://dev.nominal.io/api/rest/data-review-service.md#closewithignorealert)
:   ​

`closeWithFurtherAction` [`CloseWithFurtherAction`](https://dev.nominal.io/api/rest/data-review-service.md#closewithfurtheraction)
:   ​

`reopen` [`Reopen`](https://dev.nominal.io/api/rest/data-review-service.md#reopen)
:   ​

`reassign` [`Reassign`](https://dev.nominal.io/api/rest/data-review-service.md#reassign)
:   ​

`updateNotes` [`UpdateNotes`](https://dev.nominal.io/api/rest/data-review-service.md#updatenotes)
:   ​

### AutomaticCheckEvaluationState

Set `type` to the name of one of the other fields, and set only that field.

`pendingExecution` [`PendingExecutionState`](https://dev.nominal.io/api/rest/data-review-service.md#pendingexecutionstate)
:   ​

`failedToExecute` [`FailedToExecuteState`](https://dev.nominal.io/api/rest/data-review-service.md#failedtoexecutestate)
:   ​

`passing` [`PassingExecutionState`](https://dev.nominal.io/api/rest/data-review-service.md#passingexecutionstate)
:   ​

`generatedAlerts` [`GeneratedAlertsState`](https://dev.nominal.io/api/rest/data-review-service.md#generatedalertsstate)
:   ​

`tooManyAlerts` [`TooManyAlertsState`](https://dev.nominal.io/api/rest/data-review-service.md#toomanyalertsstate)
:   ​

`executing` [`ExecutingState`](https://dev.nominal.io/api/rest/data-review-service.md#executingstate)
:   ​

### AutomaticCheckExecutionFailedToRun

`jobRid` string (RID) required
:   ​

### AutomaticCheckExecutionFinished

`jobRid` string (RID) required
:   ​

`status` [`Status`](https://dev.nominal.io/api/rest/data-review-service.md#status) required
:   ​

### AutomaticCheckExecutionStarted

`jobRid` string (RID) required
:   ​

### CheckAlert

`rid` string (RID) required
:   ​

`checkRid` string (RID) required
:   ​

`implementationIndex` integer
:   ​

`dataReviewRid` string (RID) required
:   ​

`checkEvaluationRid` string (RID) required
:   ​

`name` string required
:   ​

`autogeneratedCheckTitle` string
:   ​

`autogeneratedCheckDescription` string
:   ​

`assigneeRids` array of string (RID)
:   ​

`start` [`Timestamp`](https://dev.nominal.io/api/rest/data-review-service.md#timestamp) required
:   ​

`end` [`Timestamp`](https://dev.nominal.io/api/rest/data-review-service.md#timestamp)
:   ​

`state` [`CheckAlertState`](https://dev.nominal.io/api/rest/data-review-service.md#checkalertstate) required
:   ​

`priority` [`Priority`](https://dev.nominal.io/api/rest/data-review-service.md#priority) required
:   ​

`chart` [`VersionedVizId`](https://dev.nominal.io/api/rest/data-review-service.md#versionedvizid) deprecated
:   **Deprecated:** charts are no longer versioned resources.

`notes` string
:   ​

`notebook` string (RID)
:   ​

### CheckAlertAction

Set `type` to the name of one of the other fields, and set only that field.

`closeWithIgnore` [`CloseWithIgnoreAlert`](https://dev.nominal.io/api/rest/data-review-service.md#closewithignorealert)
:   ​

`closeWithFurtherAction` [`CloseWithFurtherAction`](https://dev.nominal.io/api/rest/data-review-service.md#closewithfurtheraction)
:   ​

`reopen` [`Reopen`](https://dev.nominal.io/api/rest/data-review-service.md#reopen)
:   ​

`reassign` [`Reassign`](https://dev.nominal.io/api/rest/data-review-service.md#reassign)
:   ​

`updateNotes` [`UpdateNotes`](https://dev.nominal.io/api/rest/data-review-service.md#updatenotes)
:   ​

`linkNotebook` [`LinkNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#linknotebook)
:   ​

`unlinkNotebook` [`UnlinkNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#unlinknotebook)
:   ​

`archiveDataReview` [`ArchiveDataReview`](https://dev.nominal.io/api/rest/data-review-service.md#archivedatareview)
:   ​

`unarchiveDataReview` [`UnarchiveDataReview`](https://dev.nominal.io/api/rest/data-review-service.md#unarchivedatareview)
:   ​

### CheckAlertActionLogEntry

`performedBy` string (RID) required
:   ​

`action` [`CheckAlertAction`](https://dev.nominal.io/api/rest/data-review-service.md#checkalertaction) required
:   ​

`timestamp` string (date-time) required
:   ​

### CheckAlertsHistogramBuckets

Set `type` to the name of one of the other fields, and set only that field.

`unstacked` [`CheckAlertsUnstackedHistogram`](https://dev.nominal.io/api/rest/data-review-service.md#checkalertsunstackedhistogram)
:   ​

`priority` [`CheckAlertsPriorityHistogram`](https://dev.nominal.io/api/rest/data-review-service.md#checkalertspriorityhistogram)
:   ​

`status` [`CheckAlertsStatusHistogram`](https://dev.nominal.io/api/rest/data-review-service.md#checkalertsstatushistogram)
:   ​

### CheckAlertsPriorityHistogram

`buckets` array of [`HistogramPriorityBucket`](https://dev.nominal.io/api/rest/data-review-service.md#histogramprioritybucket)
:   ​

### CheckAlertsStatusHistogram

`buckets` array of [`HistogramStatusBucket`](https://dev.nominal.io/api/rest/data-review-service.md#histogramstatusbucket)
:   ​

### CheckAlertState

Set `type` to the name of one of the other fields, and set only that field.

`pendingReview` [`PendingReviewAlertState`](https://dev.nominal.io/api/rest/data-review-service.md#pendingreviewalertstate)
:   ​

`closedWithFurtherAction` [`ClosedWithFurtherActionAlertState`](https://dev.nominal.io/api/rest/data-review-service.md#closedwithfurtheractionalertstate)
:   ​

`closedWithIgnore` [`ClosedWithIgnoreAlertState`](https://dev.nominal.io/api/rest/data-review-service.md#closedwithignorealertstate)
:   ​

### CheckAlertStatus

`PENDING_REVIEW`
:   ​

`CLOSED_IGNORED`
:   ​

`CLOSED_REQUIRES_FURTHER_ACTION`
:   ​

### CheckAlertsUnstackedHistogram

`buckets` array of [`HistogramBucket`](https://dev.nominal.io/api/rest/data-review-service.md#histogrambucket)
:   ​

### CheckEvaluation

Set `type` to the name of one of the other fields, and set only that field.

`automaticCheck` [`AutomaticCheckEvaluation`](https://dev.nominal.io/api/rest/data-review-service.md#automaticcheckevaluation)
:   ​

`manualCheck` [`ManualCheckEvaluation`](https://dev.nominal.io/api/rest/data-review-service.md#manualcheckevaluation)
:   ​

### ChecklistEvaluation

`checklist` [`PinnedChecklistRef`](https://dev.nominal.io/api/rest/data-review-service.md#pinnedchecklistref) required
:   ​

`dataReviewRid` string (RID) required
:   ​

`checks` array of [`CheckEvaluation`](https://dev.nominal.io/api/rest/data-review-service.md#checkevaluation)
:   ​

### ChecklistRef

A reference to a checklist that may be pinned to a specific commit. If commit is empty, this refers to “the latest commit on main”.

`rid` string (RID) required
:   ​

`commit` string
:   ​

### CloseAction

Set `type` to the name of one of the other fields, and set only that field.

`closeWithIgnore` [`CloseWithIgnoreAlert`](https://dev.nominal.io/api/rest/data-review-service.md#closewithignorealert)
:   ​

`closeWithFurtherAction` [`CloseWithFurtherAction`](https://dev.nominal.io/api/rest/data-review-service.md#closewithfurtheraction)
:   ​

### CloseAllLinkedAlerts

Close all alerts associated with the same notebook with the same comment.

An empty JSON object, `{}`.

### CloseAndDetachFromNotebook

Close the alert and detach it from the notebook. If the alert is linked to the same notebook as other alerts, those alerts will maintain the reference to the notebook and the notebook will remain unlocked.

An empty JSON object, `{}`.

### CloseAndDuplicatePreviouslyLinkedNotebook

Close the alert and detach it from the notebook. If the alert is linked to the same notebook as other alerts, the notebook will be duplicated and the alert will be linked to the new notebook. The new notebook will be locked.

An empty JSON object, `{}`.

### CloseAndLinkToNotebook

Close the alert and link to notebook. Throws if the associated notebook has open alerts.

`closeAction` [`CloseAction`](https://dev.nominal.io/api/rest/data-review-service.md#closeaction) required
:   ​

### ClosedWithFurtherActionAlertState

`comment` string required
:   ​

`closedBy` string (RID) required
:   ​

### ClosedWithFurtherActionState

`comment` string required
:   ​

`closedBy` string (RID) required
:   ​

### ClosedWithIgnoreAlertState

`comment` string required
:   ​

`closedBy` string (RID) required
:   ​

### CloseStrategy

Set `type` to the name of one of the other fields, and set only that field.

`closeAllLinkedAlerts` [`CloseAllLinkedAlerts`](https://dev.nominal.io/api/rest/data-review-service.md#closealllinkedalerts)
:   ​

`closeAndDetachFromNotebook` [`CloseAndDetachFromNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#closeanddetachfromnotebook)
:   ​

`closeAndDuplicatePreviouslyLinkedNotebook` [`CloseAndDuplicatePreviouslyLinkedNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#closeandduplicatepreviouslylinkednotebook)
:   ​

### CloseWithFurtherAction

Close the alert with further action. If the alert is linked to the same notebook as other alerts, the other alerts will also be closed with further action. This will also lock the associated notebook.

`comment` string required
:   ​

`strategy` [`CloseStrategy`](https://dev.nominal.io/api/rest/data-review-service.md#closestrategy)
:   Defines the strategy for reopening the alert and any alerts linked via an associated notebook. If not provided, the alert will be closed naively and throw if it leaves a linked notebook in an invalid state.

### CloseWithIgnoreAlert

Close the alert with ignore. If the alert is linked to the same notebook as other alerts, the other alerts will also be closed with ignore. This will also lock the associated notebook.

`comment` string required
:   ​

`strategy` [`CloseStrategy`](https://dev.nominal.io/api/rest/data-review-service.md#closestrategy)
:   Defines the strategy for closing the alert and any alerts linked via an associated notebook. If not provided, the default strategy is closeAllLinkedAlerts.

### CreateDataReviewRequest

If commit not is provided, the latest commit on main will be used. Asset RID is required only for multi-asset runs.

`runRid` string (RID) required
:   ​

`assetRid` string (RID)
:   Selects asset to execute data review on. Required for multi-asset runs.

`checklistRid` string (RID) required
:   ​

`commit` string
:   ​

### DataReview

`rid` string (RID) required
:   ​

`runRid` string (RID) required
:   ​

`assetRid` string (RID) required
:   ​

`createdAt` string (date-time) required
:   ​

`createdBy` string (RID) required
:   ​

`checklist` [`ChecklistEvaluation`](https://dev.nominal.io/api/rest/data-review-service.md#checklistevaluation) deprecated
:   **Deprecated:** This field is deprecated and will be removed in a future version.

`checklistRef` [`PinnedChecklistRef`](https://dev.nominal.io/api/rest/data-review-service.md#pinnedchecklistref) required
:   ​

`checkEvaluations` array of [`AutomaticCheckEvaluation`](https://dev.nominal.io/api/rest/data-review-service.md#automaticcheckevaluation)
:   ​

`archived` boolean required
:   ​

### DataReviewCheckMetricsScope

Set `type` to the name of one of the other fields, and set only that field.

`runRid` string (RID)
:   ​

`assetRid` string (RID)
:   ​

`dataReviewRid` string (RID)
:   ​

### DuplicateAndLinkNotebook

Duplicate the notebook and link the alert to it.

An empty JSON object, `{}`.

### ExecutingState

`jobRid` string (RID) required
:   ​

### ExecutionRetriggered

`jobRid` string (RID) required
:   ​

### FailedToExecuteState

`jobRid` string (RID) required
:   ​

`reviewState` [`CheckAlertState`](https://dev.nominal.io/api/rest/data-review-service.md#checkalertstate)
:   ​

`reviewNotes` string
:   ​

`assigneeRids` array of string (RID)
:   ​

### GeneratedAlertsState

`rids` array of string (RID) deprecated
:   **Deprecated:** This field is deprecated and will be removed in a future version. Use eventRids instead.

`eventRids` array of string (RID)
:   ​

### HistogramBucket

`startInclusive` [`Timestamp`](https://dev.nominal.io/api/rest/data-review-service.md#timestamp) required
:   ​

`endExclusive` [`Timestamp`](https://dev.nominal.io/api/rest/data-review-service.md#timestamp) required
:   ​

`count` integer required
:   ​

### HistogramDistributionVariable

Set `type` to the name of one of the other fields, and set only that field.

`startTime` [`HistogramStartTimeVariable`](https://dev.nominal.io/api/rest/data-review-service.md#histogramstarttimevariable)
:   ​

### HistogramPriorityBucket

`startInclusive` [`Timestamp`](https://dev.nominal.io/api/rest/data-review-service.md#timestamp) required
:   ​

`endExclusive` [`Timestamp`](https://dev.nominal.io/api/rest/data-review-service.md#timestamp) required
:   ​

`counts` map of string to integer
:   ​

### HistogramPriorityVariable

An empty JSON object, `{}`.

### HistogramStartTimeVariable

An empty JSON object, `{}`.

### HistogramStatusBucket

`startInclusive` [`Timestamp`](https://dev.nominal.io/api/rest/data-review-service.md#timestamp) required
:   ​

`endExclusive` [`Timestamp`](https://dev.nominal.io/api/rest/data-review-service.md#timestamp) required
:   ​

`counts` map of string to integer
:   ​

### HistogramStatusVariable

An empty JSON object, `{}`.

### HistogramSubGroupVariable

Set `type` to the name of one of the other fields, and set only that field.

`priority` [`HistogramPriorityVariable`](https://dev.nominal.io/api/rest/data-review-service.md#histogrampriorityvariable)
:   ​

`status` [`HistogramStatusVariable`](https://dev.nominal.io/api/rest/data-review-service.md#histogramstatusvariable)
:   ​

### LinkNotebook

`rid` string (RID) required
:   ​

`strategy` [`LinkNotebookStrategy`](https://dev.nominal.io/api/rest/data-review-service.md#linknotebookstrategy)
:   Defines the strategy for reconciling the alert with any linked alerts via the associated notebook. If not provided, the alert will be linked naively and throw if it leaves a linked notebook in an invalid state.

### LinkNotebookStrategy

Set `type` to the name of one of the other fields, and set only that field.

`duplicateAndLinkToNewNotebook` [`DuplicateAndLinkNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#duplicateandlinknotebook)
:   ​

`closeAndLink` [`CloseAndLinkToNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#closeandlinktonotebook)
:   ​

`reopenAndLink` [`ReopenAndLinkToNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#reopenandlinktonotebook)
:   ​

### ManualCheckAlertAction

Set `type` to the name of one of the other fields, and set only that field.

`pass` [`Pass`](https://dev.nominal.io/api/rest/data-review-service.md#pass)
:   ​

`closeWithFurtherAction` [`CloseWithFurtherAction`](https://dev.nominal.io/api/rest/data-review-service.md#closewithfurtheraction)
:   ​

`reopen` [`Reopen`](https://dev.nominal.io/api/rest/data-review-service.md#reopen)
:   ​

`reassign` [`Reassign`](https://dev.nominal.io/api/rest/data-review-service.md#reassign)
:   ​

`updateNotes` [`UpdateNotes`](https://dev.nominal.io/api/rest/data-review-service.md#updatenotes)
:   ​

`linkNotebook` [`LinkNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#linknotebook)
:   ​

### ManualCheckEvaluation

`rid` string (RID) required
:   ​

`checkRid` string (RID) required
:   ​

`dataReviewRid` string (RID) required
:   ​

`state` [`ManualCheckEvaluationState`](https://dev.nominal.io/api/rest/data-review-service.md#manualcheckevaluationstate) required
:   ​

`assigneeRids` array of string (RID)
:   ​

`chart` [`VersionedVizId`](https://dev.nominal.io/api/rest/data-review-service.md#versionedvizid) deprecated
:   **Deprecated:** charts are no longer versioned resources.

`notes` string
:   ​

`notebook` string (RID)
:   ​

### ManualCheckEvaluationActionLogEntry

`performedBy` string (RID) required
:   ​

`action` [`ManualCheckAlertAction`](https://dev.nominal.io/api/rest/data-review-service.md#manualcheckalertaction) required
:   ​

`timestamp` string (date-time) required
:   ​

### ManualCheckEvaluationState

Set `type` to the name of one of the other fields, and set only that field.

`pendingReview` [`PendingReviewState`](https://dev.nominal.io/api/rest/data-review-service.md#pendingreviewstate)
:   ​

`closedWithFurtherAction` [`ClosedWithFurtherActionState`](https://dev.nominal.io/api/rest/data-review-service.md#closedwithfurtheractionstate)
:   ​

`passing` [`PassState`](https://dev.nominal.io/api/rest/data-review-service.md#passstate)
:   ​

### NotificationConfiguration

Configuration details to send notifications to a linked integration.

`integrationRid` string (RID) required
:   ​

`notificationFilters` array of [`NotificationFilter`](https://dev.nominal.io/api/rest/data-review-service.md#notificationfilter)
:   Specifies the type of notifications to filter. If not provided, all notifications are sent.

`appendedWorkbookRid` string (RID)
:   If provided, appends a link to the workbook specified by the RID to the notification.

`tags` array of string
:   20 tags max, 50 characters max each. Tags are used to filter messages in Opsgenie. For other integrations, tags are ignored.

`muteUntil` string (date-time)
:   If provided, all notifications for this channel are suppressed until the specified time. The streaming checklist continues to evaluate, but no notifications are sent. Once the time has passed, notifications resume automatically.

### NotificationFilter

Specifies a type of notification to filter.

`EXECUTION_ERROR`
:   ​

### Pass

`comment` string required
:   ​

### PassingExecutionState

An empty JSON object, `{}`.

### PassState

`comment` string required
:   ​

`closedBy` string (RID) required
:   ​

### PendingExecutionState

`jobRid` string (RID) required
:   ​

### PendingReviewAlertState

An empty JSON object, `{}`.

### PendingReviewState

An empty JSON object, `{}`.

### PinnedChecklistRef

A reference to a checklist that is pinned to a specific commit.

`rid` string (RID) required
:   ​

`commit` string required
:   ​

### Priority

`P0`
:   ​

`P1`
:   ​

`P2`
:   ​

`P3`
:   ​

`P4`
:   ​

### Reassign

`assigneeRids` array of string (RID)
:   ​

### Reopen

`comment` string required
:   ​

`strategy` [`ReopenStrategy`](https://dev.nominal.io/api/rest/data-review-service.md#reopenstrategy)
:   Defines the strategy for reopening the alert and any alerts linked via an associated notebook. If not provided, the default strategy is reopenAllLinkedAlerts.

### ReopenAllLinkedAlerts

Reopen all alerts associated with the same notebook and unlock the notebook.

An empty JSON object, `{}`.

### ReopenAndDetachFromNotebook

Reopen the alert and detach it from the notebook. If the alert is linked to the same notebook as other alerts, those alerts will maintain the reference to the notebook and the notebook will remain locked.

An empty JSON object, `{}`.

### ReopenAndDuplicatePreviouslyLinkedNotebook

Reopen the alert and detach it from the notebook. If the alert is linked to the same notebook as other alerts, the notebook will be duplicated and the alert will be linked to the new notebook. The new notebook will be unlocked.

An empty JSON object, `{}`.

### ReopenAndLinkToNotebook

Reopen the alert and link to notebook. Throws if the associated notebook has closed alerts.

`comment` string required
:   ​

### ReopenStrategy

Set `type` to the name of one of the other fields, and set only that field.

`reopenAllLinkedAlerts` [`ReopenAllLinkedAlerts`](https://dev.nominal.io/api/rest/data-review-service.md#reopenalllinkedalerts)
:   ​

`reopenAndDetachFromNotebook` [`ReopenAndDetachFromNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#reopenanddetachfromnotebook)
:   ​

`reopenAndDuplicatePreviouslyLinkedNotebook` [`ReopenAndDuplicatePreviouslyLinkedNotebook`](https://dev.nominal.io/api/rest/data-review-service.md#reopenandduplicatepreviouslylinkednotebook)
:   ​

### SearchCheckAlertsSortField

`CHECK_NAME`
:   ​

`START`
:   ​

`END`
:   ​

`STATUS`
:   ​

`PRIORITY`
:   ​

`DURATION`
:   ​

### SearchCheckAlertsSortOptions

`isDescending` boolean required
:   ​

`field` [`SearchCheckAlertsSortField`](https://dev.nominal.io/api/rest/data-review-service.md#searchcheckalertssortfield) required
:   ​

### Status

`PASS`
:   ​

`FAIL`
:   ​

### Timestamp

Deprecated for new APIs. Use google.protobuf.Timestamp for absolute instants in proto APIs.

This legacy nanosecond precision timestamp type is represented by an epoch time in seconds and a nanosecond offset. The nanosecond offset is from the start of the epoch second, so must be less than 1 billion.

`seconds` integer (int64) required
:   ​

`nanos` integer (int64) required
:   ​

### TooManyAlertsState

The number of generated alerts is greater than the maximum. The check is likely misconfigured.

An empty JSON object, `{}`.

### UnarchiveDataReview

Unarchive the data review which created this check alert. Only performable via the unarchive data review endpoint; not supported by Perform Check Alert Action.

An empty JSON object, `{}`.

### UnlinkNotebook

An empty JSON object, `{}`.

### UpdateNotes

`notes` string required
:   ​

### VersionedVizId

`rid` string required
:   ​

`version` integer required
:   ​

Page design based on [Scalar](https://scalar.com), MIT License.
