Checks
Soda Cloud API Check Endpoints
This endpoint enables you to gather information about the checks that in exist in your organization's Soda Cloud account, including information about the datasets and agreements with which they are associated and the incidents to which they are linked. .
This GET is a paginated API that uses the following parameters to request specific details:
size: Supply an integer value between 10 and 1000, inclusive. The default value is 10.page: Supply an integer value. The default value is 0.datasetId: Optionally, use this parameter to collect only the information for checks associated with a specific dataset. Find thedatasetIdin the URL of the dataset page in Soda Cloud.dataStandardId: Optionally, use this parameter to collect only the information for checks belonging to a specific data standard. Find thedataStandardIdin the URL of the data standard page in Soda Cloud.checkIds: Optionally, use this parameter to collect only the information for a specific batch of checks. Provide multiple values as a comma-separated list of check IDs, which you can find on the individual check pages in Soda Cloud. This query parameter is limited to 1000 check IDs and it can't be combined with other query parameters likepage,datasetId,size.
If not specified, the query gathers information for all checks in the account and sorts the results by check name in ascending order.
Authorization
Soda only returns the checks linked to datasets to which the user has View dataset permissions. Soda Cloud Admins have access to all checks.See Manage dataset roles for more information.
Authentication
User authentication required: true
This endpoint accepts authentication via API keys in the Basic authentication header, or a pre-authenticated token in HTTP cookie token. Cookie sessions extend automatically on each request.
Tags
Checks
Rate limiting
60 requests/60 seconds
Successful response
Bad request
Unauthorized
Forbidden
Not found
Too many requests
Internal server error
GET /api/v1/checks HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Accept: */*
{
"content": [
{
"attributes": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"checkType": "text",
"cloudUrl": "text",
"column": "text",
"createdAt": "2026-01-01T00:00:00.000Z",
"datasets": [
{
"cloudUrl": "text",
"id": "text",
"name": "text",
"qualifiedName": "text"
}
],
"definition": "text",
"description": "text",
"evaluationStatus": "pass",
"group": {
"groupType": "text",
"identity": "text",
"name": "text"
},
"id": "text",
"incidents": [
{
"cloudUrl": "text",
"id": "text",
"name": "text",
"number": 1,
"status": "reported"
}
],
"lastCheckResultValue": {
"anomalyDetectionDetails": {
"predictedValue": 1
},
"dataTimestamp": "2026-01-01T00:00:00.000Z",
"diagnostics": {
"aggregate": {
"checkRowsTested": 1,
"datasetRowsTested": 1
},
"aggregate_diff": {
"diff": 1,
"diffPercent": 1,
"function": "text",
"sourceCheckRowsTested": 1,
"sourceDatasetRowsTested": 1,
"sourceValue": 1,
"targetCheckRowsTested": 1,
"targetDatasetRowsTested": 1,
"targetValue": 1
},
"duplicate": {
"checkRowsTested": 1,
"datasetRowsTested": 1,
"failedRowsCount": 1,
"failedRowsDataQuery": "text",
"failedRowsKeysQuery": "text",
"failedRowsPercent": 1,
"failedRowsSourceQuery": "text",
"missingCount": 1
},
"duplicate_diff": {
"duplicateCountDiff": 1,
"duplicateDiffPercent": 1,
"sourceCheckRowsTested": 1,
"sourceDatasetRowsTested": 1,
"sourceDuplicateCount": 1,
"targetCheckRowsTested": 1,
"targetDatasetRowsTested": 1,
"targetDuplicateCount": 1
},
"failed_rows": {
"checkRowsTested": 1,
"datasetRowsTested": 1,
"failedRowsCount": 1,
"failedRowsDataQuery": "text",
"failedRowsKeysQuery": "text",
"failedRowsPercent": 1,
"failedRowsSourceQuery": "text"
},
"freshness": {
"actualTimestamp": "2026-01-01T00:00:00.000Z",
"actualTimestampUtc": "2026-01-01T00:00:00.000Z",
"datasetRowsTested": 1,
"expectedTimestamp": "2026-01-01T00:00:00.000Z",
"expectedTimestampUtc": "2026-01-01T00:00:00.000Z"
},
"freshness_diff": {
"freshnessDiff": 1,
"freshnessDiffUnit": "minutes",
"sourceCheckRowsTested": 1,
"sourceDatasetRowsTested": 1,
"sourceMaxTimestamp": "2026-01-01T00:00:00.000Z",
"sourceMaxTimestampUtc": "2026-01-01T00:00:00.000Z",
"targetCheckRowsTested": 1,
"targetDatasetRowsTested": 1,
"targetMaxTimestamp": "2026-01-01T00:00:00.000Z",
"targetMaxTimestampUtc": "2026-01-01T00:00:00.000Z"
},
"fuzzy_duplicate": {
"candidateRowsScored": 1,
"checkRowsTested": 1,
"clusterCount": 1,
"datasetRowsTested": 1,
"failedRowsCount": 1,
"failedRowsDataQuery": "text",
"failedRowsKeysQuery": "text",
"failedRowsSourceQuery": "text",
"fuzzyDuplicateCount": 1,
"fuzzyDuplicatePercent": 1,
"meanConfidence": 1
},
"group_by": {
"diagnosticsCount": 1,
"failedRowsDataQuery": "text",
"failedRowsKeysQuery": "text",
"failedRowsSourceQuery": "text",
"groups": [
{
"group": "text",
"rowsTested": 1,
"status": "pass",
"value": 1
}
]
},
"hierarchy": {
"brokenPathCount": 1,
"checkRowsTested": 1,
"datasetRowsTested": 1,
"failedRowsCount": 1,
"failedRowsDataQuery": "text",
"failedRowsKeysQuery": "text",
"failedRowsSourceQuery": "text",
"invalidValueCount": 1,
"missingValueCount": 1
},
"invalid": {
"checkRowsTested": 1,
"datasetRowsTested": 1,
"failedRowsCount": 1,
"failedRowsDataQuery": "text",
"failedRowsKeysQuery": "text",
"failedRowsPercent": 1,
"failedRowsSourceQuery": "text",
"missingCount": 1
},
"llm": {
"completionTokens": 1,
"failedRowsCount": 1,
"failedRowsDataQuery": "text",
"failedRowsKeysQuery": "text",
"failedRowsSourceQuery": "text",
"model": "text",
"promptTokens": 1,
"rowsChecked": 1,
"rowsFailed": 1,
"rowsFailedPercent": 1,
"tokensSpent": 1
},
"metric": {
"datasetRowsTested": 1
},
"metric_diff": {
"metricDiff": 1,
"metricDiffPercent": 1,
"sourceCheckRowsTested": 1,
"sourceDatasetRowsTested": 1,
"sourceMetric": 1,
"targetCheckRowsTested": 1,
"targetDatasetRowsTested": 1,
"targetMetric": 1
},
"missing": {
"checkRowsTested": 1,
"datasetRowsTested": 1,
"failedRowsCount": 1,
"failedRowsDataQuery": "text",
"failedRowsKeysQuery": "text",
"failedRowsPercent": 1,
"failedRowsSourceQuery": "text"
},
"reference_diff": {
"diffCount": 1,
"diffPercent": 1,
"exclusiveInSource": 1,
"exclusiveInTarget": 1,
"sourceCheckRowsTested": 1,
"sourceDatasetRowsTested": 1,
"targetCheckRowsTested": 1,
"targetDatasetRowsTested": 1
},
"row_count": {
"checkRowsTested": 1,
"datasetRowsTested": 1
},
"row_count_diff": {
"rowCountDiff": 1,
"rowCountDiffPercent": 1,
"sourceCheckRowsTested": 1,
"sourceDatasetRowsTested": 1,
"targetCheckRowsTested": 1,
"targetDatasetRowsTested": 1
},
"rows_diff": {
"changed": 1,
"diffCount": 1,
"diffPercent": 1,
"exclusiveInSource": 1,
"exclusiveInTarget": 1,
"sourceCheckRowsTested": 1,
"sourceDatasetRowsTested": 1,
"targetCheckRowsTested": 1,
"targetDatasetRowsTested": 1
},
"schema": {
"actual": [
{
"name": "text",
"type": "text"
}
],
"expected": [
{
"name": "text",
"type": "text"
}
]
}
},
"id": "text",
"measure": "time",
"value": 1,
"valueLabel": "text",
"valueSeries": {
"values": [
{
"label": "text",
"level": "pass",
"value": 1
}
]
}
},
"metricType": "text",
"name": "text",
"source": "soda-sql"
}
],
"first": true,
"last": true,
"number": 1,
"size": 1,
"totalElements": 1,
"totalPages": 1
}This endpoint allows you to delete a specific check in your organization's Soda Cloud account.
Authorization
Only users with Manage checks permission (V3 datasets) or Manage contracts permission (V4 datasets) can delete checks. Soda Cloud Admins can delete checks for all datasets. See Manage dataset roles for more information.
Authentication
User authentication required: true
This endpoint accepts authentication via API keys in the Basic authentication header, or a pre-authenticated token in HTTP cookie token. Cookie sessions extend automatically on each request.
Tags
Checks
Rate limiting
1000 requests/60 seconds
Bad request
Unauthorized
Forbidden
Not found
Too many requests
Internal server error
DELETE /api/v1/checks/{checkId} HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Accept: */*
{
"code": "text",
"message": "text"
}This endpoint returns the history of one check's results, one row per result, newest first. Use it to see how the check evolved or since when it has been failing. GET /api/v1/checks only carries the check's latest result.
This GET is a paginated API that uses the following parameters to request specific details:
checkId: The ID of the check, which you can find on the check page in Soda Cloud.from: Collect only the results whosedataTimestampis on or after this moment. Supply an ISO8601 timestamp value. Defaults to 30 days before now. Example:2026-08-01T00:00:00+01:00to: Collect only the results whosedataTimestampis on or before this moment. Supply an ISO8601 timestamp value. The window betweenfromandtomay span at most 30 days, so reading further back than that means asking for one window at a time. Example:2026-08-31T23:59:59+01:00size: Supply an integer value between 1 and 1000, inclusive. The default value is 100.page: Supply an integer value. The default value is 0.
Results are sorted by dataTimestamp in descending order, newest first.
Authorization
The check must be linked to a dataset to which the user has View dataset permissions; otherwise the check is reported as not found. Soda Cloud Admins have access to all checks. See Manage dataset roles for more information.
Authentication
User authentication required: true
This endpoint accepts authentication via API keys in the Basic authentication header, or a pre-authenticated token in HTTP cookie token. Cookie sessions extend automatically on each request.
Tags
Checks
Rate limiting
60 requests/60 seconds
Successful response
Bad request
Unauthorized
Forbidden
Not found
Too many requests
Internal server error
GET /api/v1/checks/{checkId}/results HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Accept: */*
{
"content": [
{
"anomalyDetectionDetails": {
"predictedValue": 1
},
"checkId": "text",
"dataTimestamp": "2026-01-01T00:00:00.000Z",
"diagnostics": {
"aggregate": {
"checkRowsTested": 1,
"datasetRowsTested": 1
},
"aggregate_diff": {
"diff": 1,
"diffPercent": 1,
"function": "text",
"sourceCheckRowsTested": 1,
"sourceDatasetRowsTested": 1,
"sourceValue": 1,
"targetCheckRowsTested": 1,
"targetDatasetRowsTested": 1,
"targetValue": 1
},
"duplicate": {
"checkRowsTested": 1,
"datasetRowsTested": 1,
"failedRowsCount": 1,
"failedRowsDataQuery": "text",
"failedRowsKeysQuery": "text",
"failedRowsPercent": 1,
"failedRowsSourceQuery": "text",
"missingCount": 1
},
"duplicate_diff": {
"duplicateCountDiff": 1,
"duplicateDiffPercent": 1,
"sourceCheckRowsTested": 1,
"sourceDatasetRowsTested": 1,
"sourceDuplicateCount": 1,
"targetCheckRowsTested": 1,
"targetDatasetRowsTested": 1,
"targetDuplicateCount": 1
},
"failed_rows": {
"checkRowsTested": 1,
"datasetRowsTested": 1,
"failedRowsCount": 1,
"failedRowsDataQuery": "text",
"failedRowsKeysQuery": "text",
"failedRowsPercent": 1,
"failedRowsSourceQuery": "text"
},
"freshness": {
"actualTimestamp": "2026-01-01T00:00:00.000Z",
"actualTimestampUtc": "2026-01-01T00:00:00.000Z",
"datasetRowsTested": 1,
"expectedTimestamp": "2026-01-01T00:00:00.000Z",
"expectedTimestampUtc": "2026-01-01T00:00:00.000Z"
},
"freshness_diff": {
"freshnessDiff": 1,
"freshnessDiffUnit": "minutes",
"sourceCheckRowsTested": 1,
"sourceDatasetRowsTested": 1,
"sourceMaxTimestamp": "2026-01-01T00:00:00.000Z",
"sourceMaxTimestampUtc": "2026-01-01T00:00:00.000Z",
"targetCheckRowsTested": 1,
"targetDatasetRowsTested": 1,
"targetMaxTimestamp": "2026-01-01T00:00:00.000Z",
"targetMaxTimestampUtc": "2026-01-01T00:00:00.000Z"
},
"fuzzy_duplicate": {
"candidateRowsScored": 1,
"checkRowsTested": 1,
"clusterCount": 1,
"datasetRowsTested": 1,
"failedRowsCount": 1,
"failedRowsDataQuery": "text",
"failedRowsKeysQuery": "text",
"failedRowsSourceQuery": "text",
"fuzzyDuplicateCount": 1,
"fuzzyDuplicatePercent": 1,
"meanConfidence": 1
},
"group_by": {
"diagnosticsCount": 1,
"failedRowsDataQuery": "text",
"failedRowsKeysQuery": "text",
"failedRowsSourceQuery": "text",
"groups": [
{
"group": "text",
"rowsTested": 1,
"status": "pass",
"value": 1
}
]
},
"hierarchy": {
"brokenPathCount": 1,
"checkRowsTested": 1,
"datasetRowsTested": 1,
"failedRowsCount": 1,
"failedRowsDataQuery": "text",
"failedRowsKeysQuery": "text",
"failedRowsSourceQuery": "text",
"invalidValueCount": 1,
"missingValueCount": 1
},
"invalid": {
"checkRowsTested": 1,
"datasetRowsTested": 1,
"failedRowsCount": 1,
"failedRowsDataQuery": "text",
"failedRowsKeysQuery": "text",
"failedRowsPercent": 1,
"failedRowsSourceQuery": "text",
"missingCount": 1
},
"llm": {
"completionTokens": 1,
"failedRowsCount": 1,
"failedRowsDataQuery": "text",
"failedRowsKeysQuery": "text",
"failedRowsSourceQuery": "text",
"model": "text",
"promptTokens": 1,
"rowsChecked": 1,
"rowsFailed": 1,
"rowsFailedPercent": 1,
"tokensSpent": 1
},
"metric": {
"datasetRowsTested": 1
},
"metric_diff": {
"metricDiff": 1,
"metricDiffPercent": 1,
"sourceCheckRowsTested": 1,
"sourceDatasetRowsTested": 1,
"sourceMetric": 1,
"targetCheckRowsTested": 1,
"targetDatasetRowsTested": 1,
"targetMetric": 1
},
"missing": {
"checkRowsTested": 1,
"datasetRowsTested": 1,
"failedRowsCount": 1,
"failedRowsDataQuery": "text",
"failedRowsKeysQuery": "text",
"failedRowsPercent": 1,
"failedRowsSourceQuery": "text"
},
"reference_diff": {
"diffCount": 1,
"diffPercent": 1,
"exclusiveInSource": 1,
"exclusiveInTarget": 1,
"sourceCheckRowsTested": 1,
"sourceDatasetRowsTested": 1,
"targetCheckRowsTested": 1,
"targetDatasetRowsTested": 1
},
"row_count": {
"checkRowsTested": 1,
"datasetRowsTested": 1
},
"row_count_diff": {
"rowCountDiff": 1,
"rowCountDiffPercent": 1,
"sourceCheckRowsTested": 1,
"sourceDatasetRowsTested": 1,
"targetCheckRowsTested": 1,
"targetDatasetRowsTested": 1
},
"rows_diff": {
"changed": 1,
"diffCount": 1,
"diffPercent": 1,
"exclusiveInSource": 1,
"exclusiveInTarget": 1,
"sourceCheckRowsTested": 1,
"sourceDatasetRowsTested": 1,
"targetCheckRowsTested": 1,
"targetDatasetRowsTested": 1
},
"schema": {
"actual": [
{
"name": "text",
"type": "text"
}
],
"expected": [
{
"name": "text",
"type": "text"
}
]
}
},
"evaluationStatus": "pass",
"id": "text",
"incident": {
"cloudUrl": "text",
"id": "text",
"name": "text",
"number": 1,
"status": "reported"
},
"measure": "time",
"scanId": "text",
"scanTime": "2026-01-01T00:00:00.000Z",
"value": 1,
"valueLabel": "text",
"valueSeries": {
"values": [
{
"label": "text",
"level": "pass",
"value": 1
}
]
}
}
],
"first": true,
"last": true,
"number": 1,
"size": 1,
"totalElements": 1,
"totalPages": 1
}Last updated
Was this helpful?
