Data review service#
The data review service manages the evaluation, disposition, and historical record of checks alerts.
OpenAPI file: 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
requestsarray ofCreateDataReviewRequest
Fields of
CreateDataReviewRequestrunRidstring (RID) required
assetRidstring (RID)Selects asset to execute data review on. Required for multi-asset runs.
checklistRidstring (RID) required
commitstring
notificationConfigurationsarray ofNotificationConfigurationIf provided, checklist violations will be sent to the specified integrations.
Fields of
NotificationConfigurationintegrationRidstring (RID) required
notificationFiltersarray ofNotificationFilterSpecifies the type of notifications to filter. If not provided, all notifications are sent.
Values of
NotificationFilterEXECUTION_ERROR
appendedWorkbookRidstring (RID)If provided, appends a link to the workbook specified by the RID to the notification.
tagsarray of string20 tags max, 50 characters max each. Tags are used to filter messages in Opsgenie. For other integrations, tags are ignored.
muteUntilstring (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
ridsarray of string (RID)
Request
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>"
}
]
}'
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())
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())
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
{
"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
dataReviewRidstring (RID) required
Response
No content (HTTP 204).
Request
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>"
}'
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()
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()
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
runRidsarray of string (RID)
assetRidsarray of string (RID)
filterByBothRunsAndAssetsbooleanIf 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.
checklistRefsarray ofChecklistRef
Fields of
ChecklistRefridstring (RID) required
commitstring
nextPageTokenstring
pageSizeintegerDefaults to 1000. Will throw if larger than 1000.
showArchivedbooleanTo 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.
archivedStatusesarray ofArchivedStatusFilters search on data reviews based on the archived statuses provided. Default is NOT_ARCHIVED only if none are provided.
Values of
ArchivedStatusNOT_ARCHIVED
ARCHIVED
Response
dataReviewsarray ofDataReview
Fields of
DataReviewridstring (RID)
runRidstring (RID)
assetRidstring (RID)
createdAtstring (date-time)
createdBystring (RID)
checklistChecklistEvaluationdeprecatedDeprecated: This field is deprecated and will be removed in a future version.
Fields of
ChecklistEvaluationchecklistPinnedChecklistRef
Fields of
PinnedChecklistRefridstring (RID)
commitstring
dataReviewRidstring (RID)
checksarray ofCheckEvaluation
Set
typeto"automaticCheck".automaticCheckAutomaticCheckEvaluation
Fields of
AutomaticCheckEvaluationridstring (RID)
checkRidstring (RID)
checkImplementationIndexintegerChecks 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.
dataReviewRidstring (RID)
stateAutomaticCheckEvaluationState
Set
typeto"pendingExecution".pendingExecutionPendingExecutionState
Fields of
PendingExecutionStatejobRidstring (RID)
Set
typeto"failedToExecute".failedToExecuteFailedToExecuteState
Fields of
FailedToExecuteStatejobRidstring (RID)
reviewStateCheckAlertState
Set
typeto"pendingReview".pendingReviewPendingReviewAlertState
Set
typeto"closedWithFurtherAction".closedWithFurtherActionClosedWithFurtherActionAlertState
Fields of
ClosedWithFurtherActionAlertStatecommentstring
closedBystring (RID)
Set
typeto"closedWithIgnore".closedWithIgnoreClosedWithIgnoreAlertState
Fields of
ClosedWithIgnoreAlertStatecommentstring
closedBystring (RID)
reviewNotesstring
assigneeRidsarray of string (RID)
Set
typeto"passing".passingPassingExecutionState
Set
typeto"generatedAlerts".generatedAlertsGeneratedAlertsState
Fields of
GeneratedAlertsStateridsarray of string (RID) deprecatedDeprecated: This field is deprecated and will be removed in a future version. Use eventRids instead.
eventRidsarray of string (RID)
Set
typeto"tooManyAlerts".tooManyAlertsTooManyAlertsState
Set
typeto"executing".executingExecutingState
Fields of
ExecutingStatejobRidstring (RID)
Set
typeto"manualCheck".manualCheckManualCheckEvaluation
Fields of
ManualCheckEvaluationridstring (RID)
checkRidstring (RID)
dataReviewRidstring (RID)
stateManualCheckEvaluationState
Set
typeto"pendingReview".pendingReviewPendingReviewState
Set
typeto"closedWithFurtherAction".closedWithFurtherActionClosedWithFurtherActionState
Fields of
ClosedWithFurtherActionStatecommentstring
closedBystring (RID)
Set
typeto"passing".passingPassState
Fields of
PassStatecommentstring
closedBystring (RID)
assigneeRidsarray of string (RID)
chartVersionedVizIddeprecatedDeprecated: charts are no longer versioned resources.
Fields of
VersionedVizIdridstring
versioninteger
notesstring
notebookstring (RID)
checklistRefPinnedChecklistRef
checkEvaluationsarray ofAutomaticCheckEvaluation
archivedboolean
nextPageTokenstring
Request
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"
]
}'
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())
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())
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
{
"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
dataReviewRidstring (RID) required
Response
ridstring (RID)
runRidstring (RID)
assetRidstring (RID)
createdAtstring (date-time)
createdBystring (RID)
checklistChecklistEvaluationdeprecatedDeprecated: This field is deprecated and will be removed in a future version.
Fields of
ChecklistEvaluationchecklistPinnedChecklistRef
Fields of
PinnedChecklistRefridstring (RID)
commitstring
dataReviewRidstring (RID)
checksarray ofCheckEvaluation
Set
typeto"automaticCheck".automaticCheckAutomaticCheckEvaluation
Fields of
AutomaticCheckEvaluationridstring (RID)
checkRidstring (RID)
checkImplementationIndexintegerChecks 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.
dataReviewRidstring (RID)
stateAutomaticCheckEvaluationState
Set
typeto"pendingExecution".pendingExecutionPendingExecutionState
Fields of
PendingExecutionStatejobRidstring (RID)
Set
typeto"failedToExecute".failedToExecuteFailedToExecuteState
Fields of
FailedToExecuteStatejobRidstring (RID)
reviewStateCheckAlertState
Set
typeto"pendingReview".pendingReviewPendingReviewAlertState
Set
typeto"closedWithFurtherAction".closedWithFurtherActionClosedWithFurtherActionAlertState
Fields of
ClosedWithFurtherActionAlertStatecommentstring
closedBystring (RID)
Set
typeto"closedWithIgnore".closedWithIgnoreClosedWithIgnoreAlertState
Fields of
ClosedWithIgnoreAlertStatecommentstring
closedBystring (RID)
reviewNotesstring
assigneeRidsarray of string (RID)
Set
typeto"passing".passingPassingExecutionState
Set
typeto"generatedAlerts".generatedAlertsGeneratedAlertsState
Fields of
GeneratedAlertsStateridsarray of string (RID) deprecatedDeprecated: This field is deprecated and will be removed in a future version. Use eventRids instead.
eventRidsarray of string (RID)
Set
typeto"tooManyAlerts".tooManyAlertsTooManyAlertsState
Set
typeto"executing".executingExecutingState
Fields of
ExecutingStatejobRidstring (RID)
Set
typeto"manualCheck".manualCheckManualCheckEvaluation
Fields of
ManualCheckEvaluationridstring (RID)
checkRidstring (RID)
dataReviewRidstring (RID)
stateManualCheckEvaluationState
Set
typeto"pendingReview".pendingReviewPendingReviewState
Set
typeto"closedWithFurtherAction".closedWithFurtherActionClosedWithFurtherActionState
Fields of
ClosedWithFurtherActionStatecommentstring
closedBystring (RID)
Set
typeto"passing".passingPassState
Fields of
PassStatecommentstring
closedBystring (RID)
assigneeRidsarray of string (RID)
chartVersionedVizIddeprecatedDeprecated: charts are no longer versioned resources.
Fields of
VersionedVizIdridstring
versioninteger
notesstring
notebookstring (RID)
checklistRefPinnedChecklistRef
checkEvaluationsarray ofAutomaticCheckEvaluation
archivedboolean
Request
curl "https://api.gov.nominal.io/api/scout/v2/data-review/<data review rid>" \
-H "Authorization: Bearer <api key>"
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())
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())
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
{
"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
checkAlertRidstring (RID) required
Response
ridstring (RID)
checkRidstring (RID)
implementationIndexinteger
dataReviewRidstring (RID)
checkEvaluationRidstring (RID)
namestring
autogeneratedCheckTitlestring
autogeneratedCheckDescriptionstring
assigneeRidsarray of string (RID)
startTimestamp
Fields of
Timestampsecondsinteger (int64)
nanosinteger (int64)
endTimestamp
stateCheckAlertState
Set
typeto"pendingReview".pendingReviewPendingReviewAlertState
Set
typeto"closedWithFurtherAction".closedWithFurtherActionClosedWithFurtherActionAlertState
Fields of
ClosedWithFurtherActionAlertStatecommentstring
closedBystring (RID)
Set
typeto"closedWithIgnore".closedWithIgnoreClosedWithIgnoreAlertState
Fields of
ClosedWithIgnoreAlertStatecommentstring
closedBystring (RID)
priorityPriority
Values of
PriorityP0
P1
P2
P3
P4
chartVersionedVizIddeprecatedDeprecated: charts are no longer versioned resources.
Fields of
VersionedVizIdridstring
versioninteger
notesstring
notebookstring (RID)
Request
curl "https://api.gov.nominal.io/api/scout/v2/data-review/check-alerts/<check alert rid>" \
-H "Authorization: Bearer <api key>"
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())
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())
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
{
"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
checkAlertRidstring (RID) required
Body
A CheckAlertAction union.
Set type to "closeWithIgnore".
closeWithIgnoreCloseWithIgnoreAlert
Fields of
CloseWithIgnoreAlertcommentstring required
strategyCloseStrategyDefines the strategy for closing the alert and any alerts linked via an associated notebook. If not provided, the default strategy is closeAllLinkedAlerts.
Set
typeto"closeAllLinkedAlerts".closeAllLinkedAlertsCloseAllLinkedAlerts
Set
typeto"closeAndDetachFromNotebook".closeAndDetachFromNotebookCloseAndDetachFromNotebook
Set
typeto"closeAndDuplicatePreviouslyLinkedNotebook".closeAndDuplicatePreviouslyLinkedNotebookCloseAndDuplicatePreviouslyLinkedNotebook
Set type to "closeWithFurtherAction".
closeWithFurtherActionCloseWithFurtherAction
Fields of
CloseWithFurtherActioncommentstring required
strategyCloseStrategyDefines 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.
Set type to "reopen".
reopenReopen
Fields of
Reopencommentstring required
strategyReopenStrategyDefines the strategy for reopening the alert and any alerts linked via an associated notebook. If not provided, the default strategy is reopenAllLinkedAlerts.
Set
typeto"reopenAllLinkedAlerts".reopenAllLinkedAlertsReopenAllLinkedAlerts
Set
typeto"reopenAndDetachFromNotebook".reopenAndDetachFromNotebookReopenAndDetachFromNotebook
Set
typeto"reopenAndDuplicatePreviouslyLinkedNotebook".reopenAndDuplicatePreviouslyLinkedNotebookReopenAndDuplicatePreviouslyLinkedNotebook
Set type to "reassign".
reassignReassign
Fields of
ReassignassigneeRidsarray of string (RID)
Set type to "updateNotes".
updateNotesUpdateNotes
Fields of
UpdateNotesnotesstring required
Set type to "linkNotebook".
linkNotebookLinkNotebook
Fields of
LinkNotebookridstring (RID) required
strategyLinkNotebookStrategyDefines 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.
Set
typeto"duplicateAndLinkToNewNotebook".duplicateAndLinkToNewNotebookDuplicateAndLinkNotebook
Set
typeto"closeAndLink".closeAndLinkCloseAndLinkToNotebook
Fields of
CloseAndLinkToNotebookcloseActionCloseActionrequired
Set
typeto"closeWithIgnore".closeWithIgnoreCloseWithIgnoreAlert
Set
typeto"closeWithFurtherAction".closeWithFurtherActionCloseWithFurtherAction
Set
typeto"reopenAndLink".reopenAndLinkReopenAndLinkToNotebook
Fields of
ReopenAndLinkToNotebookcommentstring required
Set type to "unlinkNotebook".
unlinkNotebookUnlinkNotebook
Set type to "archiveDataReview".
archiveDataReviewArchiveDataReview
Set type to "unarchiveDataReview".
unarchiveDataReviewUnarchiveDataReview
Response
ridstring (RID)
checkRidstring (RID)
implementationIndexinteger
dataReviewRidstring (RID)
checkEvaluationRidstring (RID)
namestring
autogeneratedCheckTitlestring
autogeneratedCheckDescriptionstring
assigneeRidsarray of string (RID)
startTimestamp
Fields of
Timestampsecondsinteger (int64)
nanosinteger (int64)
endTimestamp
stateCheckAlertState
Set
typeto"pendingReview".pendingReviewPendingReviewAlertState
Set
typeto"closedWithFurtherAction".closedWithFurtherActionClosedWithFurtherActionAlertState
Fields of
ClosedWithFurtherActionAlertStatecommentstring
closedBystring (RID)
Set
typeto"closedWithIgnore".closedWithIgnoreClosedWithIgnoreAlertState
Fields of
ClosedWithIgnoreAlertStatecommentstring
closedBystring (RID)
priorityPriority
Values of
PriorityP0
P1
P2
P3
P4
chartVersionedVizIddeprecatedDeprecated: charts are no longer versioned resources.
Fields of
VersionedVizIdridstring
versioninteger
notesstring
notebookstring (RID)
Request
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>"
}
}'
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())
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())
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
{
"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
dataReviewRidstring (RID) required
Response
The body is an array of CheckAlert.
Fields of CheckAlert
ridstring (RID)
checkRidstring (RID)
implementationIndexinteger
dataReviewRidstring (RID)
checkEvaluationRidstring (RID)
namestring
autogeneratedCheckTitlestring
autogeneratedCheckDescriptionstring
assigneeRidsarray of string (RID)
startTimestamp
Fields of
Timestampsecondsinteger (int64)
nanosinteger (int64)
endTimestamp
stateCheckAlertState
Set
typeto"pendingReview".pendingReviewPendingReviewAlertState
Set
typeto"closedWithFurtherAction".closedWithFurtherActionClosedWithFurtherActionAlertState
Fields of
ClosedWithFurtherActionAlertStatecommentstring
closedBystring (RID)
Set
typeto"closedWithIgnore".closedWithIgnoreClosedWithIgnoreAlertState
Fields of
ClosedWithIgnoreAlertStatecommentstring
closedBystring (RID)
priorityPriority
Values of
PriorityP0
P1
P2
P3
P4
chartVersionedVizIddeprecatedDeprecated: charts are no longer versioned resources.
Fields of
VersionedVizIdridstring
versioninteger
notesstring
notebookstring (RID)
Request
curl "https://api.gov.nominal.io/api/scout/v2/data-review/<data review rid>/check-alerts" \
-H "Authorization: Bearer <api key>"
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())
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())
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
[
{
"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
numBinsintegerDefaults to 100. Throws if larger than 1_000.
searchTextstringMatches on check name
distributionVariableHistogramDistributionVariablerequiredRepresents the data points on the x-axis of a histogram.
Set
typeto"startTime".startTimeHistogramStartTimeVariable
subGroupVariableHistogramSubGroupVariableThe variable that divides the data into distinct groups for comparison within the histogram.
Set
typeto"priority".priorityHistogramPriorityVariable
Set
typeto"status".statusHistogramStatusVariable
startTimeAfterTimestamprequiredFilters to start times after this time, inclusive.
Fields of
Timestampsecondsinteger (int64) required
nanosinteger (int64) required
startTimeBeforeTimestamprequiredFilters to start times before this time, exclusive.
statusarray ofCheckAlertStatus
Values of
CheckAlertStatusPENDING_REVIEW
CLOSED_IGNORED
CLOSED_REQUIRES_FURTHER_ACTION
checkRidsarray of string (RID)
dataReviewRidsarray of string (RID)
assigneeRidsarray of string (RID)
prioritiesarray ofPriority
Values of
PriorityP0
P1
P2
P3
P4
runRidsarray of string (RID)
assetRidsarray of string (RID)
pinnedChecklistRefsarray ofPinnedChecklistRef
Fields of
PinnedChecklistRefridstring (RID) required
commitstring required
chartRidsarray ofVersionedVizIddeprecatedDeprecated: charts are no longer versioned resources.
Fields of
VersionedVizIdridstring required
versioninteger required
notebookRidsarray of string (RID)
showArchivedbooleanTo be deprecated. Use archivedStatuses instead. If not present, will not show archived data reviews in search results.
archivedStatusesarray ofArchivedStatusFilters search on check alerts based on the archived statuses provided. Default is NOT_ARCHIVED only if none are provided.
Values of
ArchivedStatusNOT_ARCHIVED
ARCHIVED
Response
bucketsCheckAlertsHistogramBuckets
Set
typeto"unstacked".unstackedCheckAlertsUnstackedHistogram
Fields of
CheckAlertsUnstackedHistogrambucketsarray ofHistogramBucket
Set
typeto"priority".priorityCheckAlertsPriorityHistogram
Fields of
CheckAlertsPriorityHistogrambucketsarray ofHistogramPriorityBucket
Set
typeto"status".statusCheckAlertsStatusHistogram
Fields of
CheckAlertsStatusHistogrambucketsarray ofHistogramStatusBucket
Request
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
}
}'
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())
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())
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
{
"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
nextPageTokenstring
pageSizeintegerDefaults to 100. Will throw if larger than 1_000.
sortBySearchCheckAlertsSortOptionsIf not present, will sort by start time in descending order.
Fields of
SearchCheckAlertsSortOptionsisDescendingboolean required
fieldSearchCheckAlertsSortFieldrequired
Values of
SearchCheckAlertsSortFieldCHECK_NAME
START
END
STATUS
PRIORITY
DURATION
searchTextstringMatches on check name
afterTimestampFilters to start times after this time, inclusive.
Fields of
Timestampsecondsinteger (int64) required
nanosinteger (int64) required
beforeTimestampFilters to start times before this time, exclusive.
statusarray ofCheckAlertStatus
Values of
CheckAlertStatusPENDING_REVIEW
CLOSED_IGNORED
CLOSED_REQUIRES_FURTHER_ACTION
checkRidsarray of string (RID)
dataReviewRidsarray of string (RID)
assigneeRidsarray of string (RID)
prioritiesarray ofPriority
Values of
PriorityP0
P1
P2
P3
P4
runRidsarray of string (RID)
assetRidsarray of string (RID)
pinnedChecklistRefsarray ofPinnedChecklistRef
Fields of
PinnedChecklistRefridstring (RID) required
commitstring required
chartRidsarray ofVersionedVizIddeprecatedDeprecated: charts are no longer versioned resources.
Fields of
VersionedVizIdridstring required
versioninteger required
notebookRidsarray of string (RID)
showArchivedbooleanTo 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
archivedStatusesarray ofArchivedStatusFilters search on check alerts based on the archived statuses provided. Default is NOT_ARCHIVED only if none are provided.
Values of
ArchivedStatusNOT_ARCHIVED
ARCHIVED
Response
nextPageTokenstring
checkAlertsarray ofCheckAlert
Fields of
CheckAlertridstring (RID)
checkRidstring (RID)
implementationIndexinteger
dataReviewRidstring (RID)
checkEvaluationRidstring (RID)
namestring
autogeneratedCheckTitlestring
autogeneratedCheckDescriptionstring
assigneeRidsarray of string (RID)
startTimestamp
Fields of
Timestampsecondsinteger (int64)
nanosinteger (int64)
endTimestamp
stateCheckAlertState
Set
typeto"pendingReview".pendingReviewPendingReviewAlertState
Set
typeto"closedWithFurtherAction".closedWithFurtherActionClosedWithFurtherActionAlertState
Fields of
ClosedWithFurtherActionAlertStatecommentstring
closedBystring (RID)
Set
typeto"closedWithIgnore".closedWithIgnoreClosedWithIgnoreAlertState
Fields of
ClosedWithIgnoreAlertStatecommentstring
closedBystring (RID)
priorityPriority
Values of
PriorityP0
P1
P2
P3
P4
chartVersionedVizIddeprecatedDeprecated: charts are no longer versioned resources.
Fields of
VersionedVizIdridstring
versioninteger
notesstring
notebookstring (RID)
Request
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"
]
}'
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())
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())
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
{
"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
checkAlertRidstring (RID) required
Response
entriesarray ofCheckAlertActionLogEntry
Fields of
CheckAlertActionLogEntryperformedBystring (RID)
actionCheckAlertAction
Set
typeto"closeWithIgnore".closeWithIgnoreCloseWithIgnoreAlert
Fields of
CloseWithIgnoreAlertcommentstring
strategyCloseStrategyDefines the strategy for closing the alert and any alerts linked via an associated notebook. If not provided, the default strategy is closeAllLinkedAlerts.
Set
typeto"closeAllLinkedAlerts".closeAllLinkedAlertsCloseAllLinkedAlerts
Set
typeto"closeAndDetachFromNotebook".closeAndDetachFromNotebookCloseAndDetachFromNotebook
Set
typeto"closeAndDuplicatePreviouslyLinkedNotebook".closeAndDuplicatePreviouslyLinkedNotebookCloseAndDuplicatePreviouslyLinkedNotebook
Set
typeto"closeWithFurtherAction".closeWithFurtherActionCloseWithFurtherAction
Fields of
CloseWithFurtherActioncommentstring
strategyCloseStrategyDefines 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.
Set
typeto"reopen".reopenReopen
Fields of
Reopencommentstring
strategyReopenStrategyDefines the strategy for reopening the alert and any alerts linked via an associated notebook. If not provided, the default strategy is reopenAllLinkedAlerts.
Set
typeto"reopenAllLinkedAlerts".reopenAllLinkedAlertsReopenAllLinkedAlerts
Set
typeto"reopenAndDetachFromNotebook".reopenAndDetachFromNotebookReopenAndDetachFromNotebook
Set
typeto"reopenAndDuplicatePreviouslyLinkedNotebook".reopenAndDuplicatePreviouslyLinkedNotebookReopenAndDuplicatePreviouslyLinkedNotebook
Set
typeto"reassign".reassignReassign
Fields of
ReassignassigneeRidsarray of string (RID)
Set
typeto"updateNotes".updateNotesUpdateNotes
Fields of
UpdateNotesnotesstring
Set
typeto"linkNotebook".linkNotebookLinkNotebook
Fields of
LinkNotebookridstring (RID)
strategyLinkNotebookStrategyDefines 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.
Set
typeto"duplicateAndLinkToNewNotebook".duplicateAndLinkToNewNotebookDuplicateAndLinkNotebook
Set
typeto"closeAndLink".closeAndLinkCloseAndLinkToNotebook
Fields of
CloseAndLinkToNotebookcloseActionCloseAction
Set
typeto"closeWithIgnore".closeWithIgnoreCloseWithIgnoreAlert
Set
typeto"closeWithFurtherAction".closeWithFurtherActionCloseWithFurtherAction
Set
typeto"reopenAndLink".reopenAndLinkReopenAndLinkToNotebook
Fields of
ReopenAndLinkToNotebookcommentstring
Set
typeto"unlinkNotebook".unlinkNotebookUnlinkNotebook
Set
typeto"archiveDataReview".archiveDataReviewArchiveDataReview
Set
typeto"unarchiveDataReview".unarchiveDataReviewUnarchiveDataReview
timestampstring (date-time)
Request
curl "https://api.gov.nominal.io/api/scout/v2/data-review/check-alerts/<check alert rid>/action-log" \
-H "Authorization: Bearer <api key>"
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())
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())
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
{
"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 -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>"
]'
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())
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())
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
{
"<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.
Values of CheckAlertStatus
PENDING_REVIEW
CLOSED_IGNORED
CLOSED_REQUIRES_FURTHER_ACTION
Request
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>"
]'
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())
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())
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
{
"<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
checkAlertActionCheckAlertActionrequired
Set
typeto"closeWithIgnore".closeWithIgnoreCloseWithIgnoreAlert
Fields of
CloseWithIgnoreAlertcommentstring required
strategyCloseStrategyDefines the strategy for closing the alert and any alerts linked via an associated notebook. If not provided, the default strategy is closeAllLinkedAlerts.
Set
typeto"closeAllLinkedAlerts".closeAllLinkedAlertsCloseAllLinkedAlerts
Set
typeto"closeAndDetachFromNotebook".closeAndDetachFromNotebookCloseAndDetachFromNotebook
Set
typeto"closeAndDuplicatePreviouslyLinkedNotebook".closeAndDuplicatePreviouslyLinkedNotebookCloseAndDuplicatePreviouslyLinkedNotebook
Set
typeto"closeWithFurtherAction".closeWithFurtherActionCloseWithFurtherAction
Fields of
CloseWithFurtherActioncommentstring required
strategyCloseStrategyDefines 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.
Set
typeto"reopen".reopenReopen
Fields of
Reopencommentstring required
strategyReopenStrategyDefines the strategy for reopening the alert and any alerts linked via an associated notebook. If not provided, the default strategy is reopenAllLinkedAlerts.
Set
typeto"reopenAllLinkedAlerts".reopenAllLinkedAlertsReopenAllLinkedAlerts
Set
typeto"reopenAndDetachFromNotebook".reopenAndDetachFromNotebookReopenAndDetachFromNotebook
Set
typeto"reopenAndDuplicatePreviouslyLinkedNotebook".reopenAndDuplicatePreviouslyLinkedNotebookReopenAndDuplicatePreviouslyLinkedNotebook
Set
typeto"reassign".reassignReassign
Fields of
ReassignassigneeRidsarray of string (RID)
Set
typeto"updateNotes".updateNotesUpdateNotes
Fields of
UpdateNotesnotesstring required
Set
typeto"linkNotebook".linkNotebookLinkNotebook
Fields of
LinkNotebookridstring (RID) required
strategyLinkNotebookStrategyDefines 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.
Set
typeto"duplicateAndLinkToNewNotebook".duplicateAndLinkToNewNotebookDuplicateAndLinkNotebook
Set
typeto"closeAndLink".closeAndLinkCloseAndLinkToNotebook
Fields of
CloseAndLinkToNotebookcloseActionCloseActionrequired
Set
typeto"closeWithIgnore".closeWithIgnoreCloseWithIgnoreAlert
Set
typeto"closeWithFurtherAction".closeWithFurtherActionCloseWithFurtherAction
Set
typeto"reopenAndLink".reopenAndLinkReopenAndLinkToNotebook
Fields of
ReopenAndLinkToNotebookcommentstring required
Set
typeto"unlinkNotebook".unlinkNotebookUnlinkNotebook
Set
typeto"archiveDataReview".archiveDataReviewArchiveDataReview
Set
typeto"unarchiveDataReview".unarchiveDataReviewUnarchiveDataReview
checkAlertRidsarray of string (RID)
Response
checkAlertsarray ofCheckAlert
Fields of
CheckAlertridstring (RID)
checkRidstring (RID)
implementationIndexinteger
dataReviewRidstring (RID)
checkEvaluationRidstring (RID)
namestring
autogeneratedCheckTitlestring
autogeneratedCheckDescriptionstring
assigneeRidsarray of string (RID)
startTimestamp
Fields of
Timestampsecondsinteger (int64)
nanosinteger (int64)
endTimestamp
stateCheckAlertState
Set
typeto"pendingReview".pendingReviewPendingReviewAlertState
Set
typeto"closedWithFurtherAction".closedWithFurtherActionClosedWithFurtherActionAlertState
Fields of
ClosedWithFurtherActionAlertStatecommentstring
closedBystring (RID)
Set
typeto"closedWithIgnore".closedWithIgnoreClosedWithIgnoreAlertState
Fields of
ClosedWithIgnoreAlertStatecommentstring
closedBystring (RID)
priorityPriority
Values of
PriorityP0
P1
P2
P3
P4
chartVersionedVizIddeprecatedDeprecated: charts are no longer versioned resources.
Fields of
VersionedVizIdridstring
versioninteger
notesstring
notebookstring (RID)
Request
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>"
}
}
}'
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())
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())
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
{
"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
checkEvaluationActionAutomaticCheckEvaluationReviewActionrequired
Set
typeto"closeWithIgnore".closeWithIgnoreCloseWithIgnoreAlert
Fields of
CloseWithIgnoreAlertcommentstring required
strategyCloseStrategyDefines the strategy for closing the alert and any alerts linked via an associated notebook. If not provided, the default strategy is closeAllLinkedAlerts.
Set
typeto"closeAllLinkedAlerts".closeAllLinkedAlertsCloseAllLinkedAlerts
Set
typeto"closeAndDetachFromNotebook".closeAndDetachFromNotebookCloseAndDetachFromNotebook
Set
typeto"closeAndDuplicatePreviouslyLinkedNotebook".closeAndDuplicatePreviouslyLinkedNotebookCloseAndDuplicatePreviouslyLinkedNotebook
Set
typeto"closeWithFurtherAction".closeWithFurtherActionCloseWithFurtherAction
Fields of
CloseWithFurtherActioncommentstring required
strategyCloseStrategyDefines 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.
Set
typeto"reopen".reopenReopen
Fields of
Reopencommentstring required
strategyReopenStrategyDefines the strategy for reopening the alert and any alerts linked via an associated notebook. If not provided, the default strategy is reopenAllLinkedAlerts.
Set
typeto"reopenAllLinkedAlerts".reopenAllLinkedAlertsReopenAllLinkedAlerts
Set
typeto"reopenAndDetachFromNotebook".reopenAndDetachFromNotebookReopenAndDetachFromNotebook
Set
typeto"reopenAndDuplicatePreviouslyLinkedNotebook".reopenAndDuplicatePreviouslyLinkedNotebookReopenAndDuplicatePreviouslyLinkedNotebook
Set
typeto"reassign".reassignReassign
Fields of
ReassignassigneeRidsarray of string (RID)
Set
typeto"updateNotes".updateNotesUpdateNotes
Fields of
UpdateNotesnotesstring required
checkEvaluationRidsarray of string (RID)
Response
checkEvaluationsarray ofAutomaticCheckEvaluation
Fields of
AutomaticCheckEvaluationridstring (RID)
checkRidstring (RID)
checkImplementationIndexintegerChecks 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.
dataReviewRidstring (RID)
stateAutomaticCheckEvaluationState
Set
typeto"pendingExecution".pendingExecutionPendingExecutionState
Fields of
PendingExecutionStatejobRidstring (RID)
Set
typeto"failedToExecute".failedToExecuteFailedToExecuteState
Fields of
FailedToExecuteStatejobRidstring (RID)
reviewStateCheckAlertState
Set
typeto"pendingReview".pendingReviewPendingReviewAlertState
Set
typeto"closedWithFurtherAction".closedWithFurtherActionClosedWithFurtherActionAlertState
Fields of
ClosedWithFurtherActionAlertStatecommentstring
closedBystring (RID)
Set
typeto"closedWithIgnore".closedWithIgnoreClosedWithIgnoreAlertState
Fields of
ClosedWithIgnoreAlertStatecommentstring
closedBystring (RID)
reviewNotesstring
assigneeRidsarray of string (RID)
Set
typeto"passing".passingPassingExecutionState
Set
typeto"generatedAlerts".generatedAlertsGeneratedAlertsState
Fields of
GeneratedAlertsStateridsarray of string (RID) deprecatedDeprecated: This field is deprecated and will be removed in a future version. Use eventRids instead.
eventRidsarray of string (RID)
Set
typeto"tooManyAlerts".tooManyAlertsTooManyAlertsState
Set
typeto"executing".executingExecutingState
Fields of
ExecutingStatejobRidstring (RID)
Request
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>"
}
}
}'
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())
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())
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
{
"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
ridstring (RID) required
Response
entriesarray ofAutomaticCheckEvaluationActionLogEntry
Fields of
AutomaticCheckEvaluationActionLogEntryactionAutomaticCheckEvaluationAction
Set
typeto"executionFinished".executionFinishedAutomaticCheckExecutionFinished
Fields of
AutomaticCheckExecutionFinishedjobRidstring (RID)
statusStatus
Values of
StatusPASS
FAIL
Set
typeto"executionFailedToRun".executionFailedToRunAutomaticCheckExecutionFailedToRun
Fields of
AutomaticCheckExecutionFailedToRunjobRidstring (RID)
Set
typeto"executionRetriggered".executionRetriggeredExecutionRetriggered
Fields of
ExecutionRetriggeredjobRidstring (RID)
Set
typeto"executionStarted".executionStartedAutomaticCheckExecutionStarted
Fields of
AutomaticCheckExecutionStartedjobRidstring (RID)
timestampstring (date-time)
Request
curl "https://api.gov.nominal.io/api/scout/v2/data-review/automatic-check-evaluation/<rid>/action-log" \
-H "Authorization: Bearer <api key>"
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())
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())
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
{
"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
checkAlertActionManualCheckAlertActionrequired
Set
typeto"pass".passPass
Fields of
Passcommentstring required
Set
typeto"closeWithFurtherAction".closeWithFurtherActionCloseWithFurtherAction
Fields of
CloseWithFurtherActioncommentstring required
strategyCloseStrategyDefines 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.
Set
typeto"closeAllLinkedAlerts".closeAllLinkedAlertsCloseAllLinkedAlerts
Set
typeto"closeAndDetachFromNotebook".closeAndDetachFromNotebookCloseAndDetachFromNotebook
Set
typeto"closeAndDuplicatePreviouslyLinkedNotebook".closeAndDuplicatePreviouslyLinkedNotebookCloseAndDuplicatePreviouslyLinkedNotebook
Set
typeto"reopen".reopenReopen
Fields of
Reopencommentstring required
strategyReopenStrategyDefines the strategy for reopening the alert and any alerts linked via an associated notebook. If not provided, the default strategy is reopenAllLinkedAlerts.
Set
typeto"reopenAllLinkedAlerts".reopenAllLinkedAlertsReopenAllLinkedAlerts
Set
typeto"reopenAndDetachFromNotebook".reopenAndDetachFromNotebookReopenAndDetachFromNotebook
Set
typeto"reopenAndDuplicatePreviouslyLinkedNotebook".reopenAndDuplicatePreviouslyLinkedNotebookReopenAndDuplicatePreviouslyLinkedNotebook
Set
typeto"reassign".reassignReassign
Fields of
ReassignassigneeRidsarray of string (RID)
Set
typeto"updateNotes".updateNotesUpdateNotes
Fields of
UpdateNotesnotesstring required
Set
typeto"linkNotebook".linkNotebookLinkNotebook
Fields of
LinkNotebookridstring (RID) required
strategyLinkNotebookStrategyDefines 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.
Set
typeto"duplicateAndLinkToNewNotebook".duplicateAndLinkToNewNotebookDuplicateAndLinkNotebook
Set
typeto"closeAndLink".closeAndLinkCloseAndLinkToNotebook
Fields of
CloseAndLinkToNotebookcloseActionCloseActionrequired
Set
typeto"closeWithIgnore".closeWithIgnoreCloseWithIgnoreAlert
Fields of
CloseWithIgnoreAlertcommentstring required
strategyCloseStrategyDefines the strategy for closing the alert and any alerts linked via an associated notebook. If not provided, the default strategy is closeAllLinkedAlerts.
Set
typeto"closeWithFurtherAction".closeWithFurtherActionCloseWithFurtherAction
Set
typeto"reopenAndLink".reopenAndLinkReopenAndLinkToNotebook
Fields of
ReopenAndLinkToNotebookcommentstring required
checkEvaluationRidsarray of string (RID)
Response
No content (HTTP 204).
Request
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>"
}
}
}'
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()
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()
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
ridstring (RID) required
Response
entriesarray ofManualCheckEvaluationActionLogEntry
Fields of
ManualCheckEvaluationActionLogEntryperformedBystring (RID)
actionManualCheckAlertAction
Set
typeto"pass".passPass
Fields of
Passcommentstring
Set
typeto"closeWithFurtherAction".closeWithFurtherActionCloseWithFurtherAction
Fields of
CloseWithFurtherActioncommentstring
strategyCloseStrategyDefines 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.
Set
typeto"closeAllLinkedAlerts".closeAllLinkedAlertsCloseAllLinkedAlerts
Set
typeto"closeAndDetachFromNotebook".closeAndDetachFromNotebookCloseAndDetachFromNotebook
Set
typeto"closeAndDuplicatePreviouslyLinkedNotebook".closeAndDuplicatePreviouslyLinkedNotebookCloseAndDuplicatePreviouslyLinkedNotebook
Set
typeto"reopen".reopenReopen
Fields of
Reopencommentstring
strategyReopenStrategyDefines the strategy for reopening the alert and any alerts linked via an associated notebook. If not provided, the default strategy is reopenAllLinkedAlerts.
Set
typeto"reopenAllLinkedAlerts".reopenAllLinkedAlertsReopenAllLinkedAlerts
Set
typeto"reopenAndDetachFromNotebook".reopenAndDetachFromNotebookReopenAndDetachFromNotebook
Set
typeto"reopenAndDuplicatePreviouslyLinkedNotebook".reopenAndDuplicatePreviouslyLinkedNotebookReopenAndDuplicatePreviouslyLinkedNotebook
Set
typeto"reassign".reassignReassign
Fields of
ReassignassigneeRidsarray of string (RID)
Set
typeto"updateNotes".updateNotesUpdateNotes
Fields of
UpdateNotesnotesstring
Set
typeto"linkNotebook".linkNotebookLinkNotebook
Fields of
LinkNotebookridstring (RID)
strategyLinkNotebookStrategyDefines 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.
Set
typeto"duplicateAndLinkToNewNotebook".duplicateAndLinkToNewNotebookDuplicateAndLinkNotebook
Set
typeto"closeAndLink".closeAndLinkCloseAndLinkToNotebook
Fields of
CloseAndLinkToNotebookcloseActionCloseAction
Set
typeto"closeWithIgnore".closeWithIgnoreCloseWithIgnoreAlert
Fields of
CloseWithIgnoreAlertcommentstring
strategyCloseStrategyDefines the strategy for closing the alert and any alerts linked via an associated notebook. If not provided, the default strategy is closeAllLinkedAlerts.
Set
typeto"closeWithFurtherAction".closeWithFurtherActionCloseWithFurtherAction
Set
typeto"reopenAndLink".reopenAndLinkReopenAndLinkToNotebook
Fields of
ReopenAndLinkToNotebookcommentstring
timestampstring (date-time)
Request
curl "https://api.gov.nominal.io/api/scout/v2/data-review/manual-check-evaluation/<rid>/action-log" \
-H "Authorization: Bearer <api key>"
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())
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())
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
{
"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
dataReviewRidstring (RID) required
Response
The body is a boolean.
Request
curl -X POST "https://api.gov.nominal.io/api/scout/v2/data-review/<data review rid>/archive" \
-H "Authorization: Bearer <api key>"
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())
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())
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
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 -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>"
]'
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()
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()
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
dataReviewRidstring (RID) required
Response
No content (HTTP 204).
Request
curl -X POST "https://api.gov.nominal.io/api/scout/v2/data-review/unarchive/<data review rid>" \
-H "Authorization: Bearer <api key>"
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()
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()
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
scopeDataReviewCheckMetricsScoperequired
Set
typeto"runRid".runRidstring (RID)
Set
typeto"assetRid".assetRidstring (RID)
Set
typeto"dataReviewRid".dataReviewRidstring (RID)
Response
checksPendingExecutioninteger
checksExecutinginteger
checksPassedinteger
checksWithEventsPendingReviewinteger
checksWithEventsClosedWithIgnoreinteger
checksWithEventsClosedWithFurtherActioninteger
checksWithEventsinteger
checksWithTooManyEventsinteger
checksFailedToExecutePendingReviewinteger
checksFailedToExecuteClosedWithIgnoreinteger
checksFailedToExecuteClosedWithFurtherActioninteger
checksFailedToExecuteinteger
checksExecutedinteger
checksTotalinteger
eventsPendingReviewinteger
eventsClosedWithIgnoreinteger
eventsClosedWithFurtherActioninteger
eventsTotalinteger
Request
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>"
}
}'
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())
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())
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
{
"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 shows how these errors are sent.
Each error’s errorName is DataReview: followed by its name below.
Status |
Name |
Notes |
|---|---|---|
400 |
|
|
400 |
|
|
400 |
|
|
400 |
|
|
400 |
|
|
400 |
|
|
400 |
|
|
400 |
|
|
400 |
|
|
400 |
|
|
404 |
|
|
404 |
|
|
404 |
|
|
404 |
|
|
404 |
|
|
404 |
|
|
500 |
|
|
500 |
|
Each error’s errorName is Checks: followed by its name below.
Status |
Name |
Notes |
|---|---|---|
404 |
|
|
404 |
|
|
404 |
|
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#
ridstring (RID) required
checkRidstring (RID) required
checkImplementationIndexintegerChecks 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.
dataReviewRidstring (RID) required
stateAutomaticCheckEvaluationStaterequired
AutomaticCheckEvaluationAction#
Set type to the name of one of the other fields, and set only that field.
executionFinishedAutomaticCheckExecutionFinished
executionFailedToRunAutomaticCheckExecutionFailedToRun
executionRetriggeredExecutionRetriggered
executionStartedAutomaticCheckExecutionStarted
AutomaticCheckEvaluationActionLogEntry#
actionAutomaticCheckEvaluationActionrequired
timestampstring (date-time) required
AutomaticCheckEvaluationReviewAction#
Set type to the name of one of the other fields, and set only that field.
closeWithIgnoreCloseWithIgnoreAlert
closeWithFurtherActionCloseWithFurtherAction
reopenReopen
reassignReassign
updateNotesUpdateNotes
AutomaticCheckEvaluationState#
Set type to the name of one of the other fields, and set only that field.
pendingExecutionPendingExecutionState
failedToExecuteFailedToExecuteState
passingPassingExecutionState
generatedAlertsGeneratedAlertsState
tooManyAlertsTooManyAlertsState
executingExecutingState
AutomaticCheckExecutionFailedToRun#
jobRidstring (RID) required
AutomaticCheckExecutionFinished#
jobRidstring (RID) required
statusStatusrequired
AutomaticCheckExecutionStarted#
jobRidstring (RID) required
CheckAlert#
ridstring (RID) required
checkRidstring (RID) required
implementationIndexinteger
dataReviewRidstring (RID) required
checkEvaluationRidstring (RID) required
namestring required
autogeneratedCheckTitlestring
autogeneratedCheckDescriptionstring
assigneeRidsarray of string (RID)
startTimestamprequired
endTimestamp
stateCheckAlertStaterequired
priorityPriorityrequired
chartVersionedVizIddeprecatedDeprecated: charts are no longer versioned resources.
notesstring
notebookstring (RID)
CheckAlertAction#
Set type to the name of one of the other fields, and set only that field.
closeWithIgnoreCloseWithIgnoreAlert
closeWithFurtherActionCloseWithFurtherAction
reopenReopen
reassignReassign
updateNotesUpdateNotes
linkNotebookLinkNotebook
unlinkNotebookUnlinkNotebook
archiveDataReviewArchiveDataReview
unarchiveDataReviewUnarchiveDataReview
CheckAlertActionLogEntry#
performedBystring (RID) required
actionCheckAlertActionrequired
timestampstring (date-time) required
CheckAlertsHistogramBuckets#
Set type to the name of one of the other fields, and set only that field.
unstackedCheckAlertsUnstackedHistogram
priorityCheckAlertsPriorityHistogram
statusCheckAlertsStatusHistogram
CheckAlertsPriorityHistogram#
bucketsarray ofHistogramPriorityBucket
CheckAlertsStatusHistogram#
bucketsarray ofHistogramStatusBucket
CheckAlertState#
Set type to the name of one of the other fields, and set only that field.
pendingReviewPendingReviewAlertState
closedWithFurtherActionClosedWithFurtherActionAlertState
closedWithIgnoreClosedWithIgnoreAlertState
CheckAlertStatus#
PENDING_REVIEW
CLOSED_IGNORED
CLOSED_REQUIRES_FURTHER_ACTION
CheckAlertsUnstackedHistogram#
bucketsarray ofHistogramBucket
CheckEvaluation#
Set type to the name of one of the other fields, and set only that field.
automaticCheckAutomaticCheckEvaluation
manualCheckManualCheckEvaluation
ChecklistEvaluation#
checklistPinnedChecklistRefrequired
dataReviewRidstring (RID) required
checksarray ofCheckEvaluation
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”.
ridstring (RID) required
commitstring
CloseAction#
Set type to the name of one of the other fields, and set only that field.
closeWithIgnoreCloseWithIgnoreAlert
closeWithFurtherActionCloseWithFurtherAction
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.
closeActionCloseActionrequired
ClosedWithFurtherActionAlertState#
commentstring required
closedBystring (RID) required
ClosedWithFurtherActionState#
commentstring required
closedBystring (RID) required
ClosedWithIgnoreAlertState#
commentstring required
closedBystring (RID) required
CloseStrategy#
Set type to the name of one of the other fields, and set only that field.
closeAllLinkedAlertsCloseAllLinkedAlerts
closeAndDetachFromNotebookCloseAndDetachFromNotebook
closeAndDuplicatePreviouslyLinkedNotebookCloseAndDuplicatePreviouslyLinkedNotebook
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.
commentstring required
strategyCloseStrategyDefines 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.
commentstring required
strategyCloseStrategyDefines 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.
runRidstring (RID) required
assetRidstring (RID)Selects asset to execute data review on. Required for multi-asset runs.
checklistRidstring (RID) required
commitstring
DataReview#
ridstring (RID) required
runRidstring (RID) required
assetRidstring (RID) required
createdAtstring (date-time) required
createdBystring (RID) required
checklistChecklistEvaluationdeprecatedDeprecated: This field is deprecated and will be removed in a future version.
checklistRefPinnedChecklistRefrequired
checkEvaluationsarray ofAutomaticCheckEvaluation
archivedboolean required
DataReviewCheckMetricsScope#
Set type to the name of one of the other fields, and set only that field.
runRidstring (RID)
assetRidstring (RID)
dataReviewRidstring (RID)
DuplicateAndLinkNotebook#
Duplicate the notebook and link the alert to it.
An empty JSON object, {}.
ExecutingState#
jobRidstring (RID) required
ExecutionRetriggered#
jobRidstring (RID) required
FailedToExecuteState#
jobRidstring (RID) required
reviewStateCheckAlertState
reviewNotesstring
assigneeRidsarray of string (RID)
GeneratedAlertsState#
ridsarray of string (RID) deprecatedDeprecated: This field is deprecated and will be removed in a future version. Use eventRids instead.
eventRidsarray of string (RID)
HistogramBucket#
HistogramDistributionVariable#
Set type to the name of one of the other fields, and set only that field.
startTimeHistogramStartTimeVariable
HistogramPriorityBucket#
HistogramPriorityVariable#
An empty JSON object, {}.
HistogramStartTimeVariable#
An empty JSON object, {}.
HistogramStatusBucket#
HistogramStatusVariable#
An empty JSON object, {}.
HistogramSubGroupVariable#
Set type to the name of one of the other fields, and set only that field.
priorityHistogramPriorityVariable
statusHistogramStatusVariable
LinkNotebook#
ridstring (RID) required
strategyLinkNotebookStrategyDefines 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.
duplicateAndLinkToNewNotebookDuplicateAndLinkNotebook
closeAndLinkCloseAndLinkToNotebook
reopenAndLinkReopenAndLinkToNotebook
ManualCheckAlertAction#
Set type to the name of one of the other fields, and set only that field.
passPass
closeWithFurtherActionCloseWithFurtherAction
reopenReopen
reassignReassign
updateNotesUpdateNotes
linkNotebookLinkNotebook
ManualCheckEvaluation#
ridstring (RID) required
checkRidstring (RID) required
dataReviewRidstring (RID) required
stateManualCheckEvaluationStaterequired
assigneeRidsarray of string (RID)
chartVersionedVizIddeprecatedDeprecated: charts are no longer versioned resources.
notesstring
notebookstring (RID)
ManualCheckEvaluationActionLogEntry#
performedBystring (RID) required
actionManualCheckAlertActionrequired
timestampstring (date-time) required
ManualCheckEvaluationState#
Set type to the name of one of the other fields, and set only that field.
pendingReviewPendingReviewState
closedWithFurtherActionClosedWithFurtherActionState
passingPassState
NotificationConfiguration#
Configuration details to send notifications to a linked integration.
integrationRidstring (RID) required
notificationFiltersarray ofNotificationFilterSpecifies the type of notifications to filter. If not provided, all notifications are sent.
appendedWorkbookRidstring (RID)If provided, appends a link to the workbook specified by the RID to the notification.
tagsarray of string20 tags max, 50 characters max each. Tags are used to filter messages in Opsgenie. For other integrations, tags are ignored.
muteUntilstring (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#
commentstring required
PassingExecutionState#
An empty JSON object, {}.
PassState#
commentstring required
closedBystring (RID) required
PendingExecutionState#
jobRidstring (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.
ridstring (RID) required
commitstring required
Priority#
P0
P1
P2
P3
P4
Reassign#
assigneeRidsarray of string (RID)
Reopen#
commentstring required
strategyReopenStrategyDefines 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.
commentstring required
ReopenStrategy#
Set type to the name of one of the other fields, and set only that field.
reopenAllLinkedAlertsReopenAllLinkedAlerts
reopenAndDetachFromNotebookReopenAndDetachFromNotebook
reopenAndDuplicatePreviouslyLinkedNotebookReopenAndDuplicatePreviouslyLinkedNotebook
SearchCheckAlertsSortField#
CHECK_NAME
START
END
STATUS
PRIORITY
DURATION
SearchCheckAlertsSortOptions#
isDescendingboolean required
fieldSearchCheckAlertsSortFieldrequired
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.
secondsinteger (int64) required
nanosinteger (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#
notesstring required
VersionedVizId#
ridstring required
versioninteger required
Page design based on Scalar, MIT License.