> For the complete documentation index, see [llms.txt](https://docs.soda.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.soda.io/reference/soda-apis/rest-api/datasets.md).

# Datasets

Soda Cloud API Dataset Endpoints

## Dataset information

> This endpoint enables you to gather information about the datasets that in exist in your organization's Soda Cloud account, including information about the Soda Cloud resources with which it is associated, such as data source, incidents, attributes and health status.\
> \
> 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.\
> \
> \- \`from\`: Optionally, use this parameter to collect only the information for datasets that have been updated after a particular point in time.  Supply an ISO8601 timestamp value. Example: \`2023-12-31T10:15:30+01:00\`\
> \
> \- \`datasourceName\`:  Optionally, use this parameter to collect only the information for datasets associated with a specific datasource.\
> \
> \- \`search\`: Optionally, use this parameter to perform a fuzzy search on the dataset name.\
> \
> \- \`hasContract\`: Optionally, use this parameter to collect only the datasets that have a published contract (\`true\`) or only the datasets without one (\`false\`).\
> \
> \- \`ownerId\`: Optionally, use this parameter to collect only the information for datasets owned by one user or one user group. Supply a single id: either a user id or a user group id, as returned in the \`owners\` list of this endpoint. A user id also matches the datasets owned by a user group that the user belongs to.\
> \
> \- \`version\`: Optionally, use this parameter to collect only the datasets on a given Soda version, \`3\` or \`4\`. This is the dataset's own version, as returned in the \`version\` field of this endpoint.\
> \
> If not specified, the query gathers information for all datasets in the account and sorts the results first by datasource name and then by dataset name in ascending order.\
> \
> \## Authorization\
> \
> Soda only returns the datasets to which the user has \*\*View dataset\*\* permissions. Soda Cloud Admins have access to all datasets.\*\*See \[Manage dataset roles]\(<https://go.soda.io/roles-dataset>) 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\
> \
> \`Datasets\`\
> \
> \## Rate limiting\
> \
> 30 requests/60 seconds

```json
{"openapi":"3.1.0","info":{"title":"Soda Cloud API v4","version":"v1"},"tags":[{"description":"Soda Cloud API Dataset Endpoints","name":"Datasets"}],"servers":[{"description":"Cloud EU","url":"https://cloud.soda.io"},{"description":"Cloud US","url":"https://cloud.us.soda.io"}],"security":[{"basicAuthApiKey":[]},{"cookieToken":[]}],"components":{"securitySchemes":{"basicAuthApiKey":{"scheme":"basic","type":"http"},"cookieToken":{"in":"cookie","name":"token","type":"apiKey"}},"schemas":{"ModelVersionDTO":{"type":"string","enum":["3","4"]},"PublicApiDatasetsResponse":{"type":"object","properties":{"content":{"type":"array","items":{"type":"object","$ref":"#/components/schemas/DatasetsContentDTO"}},"first":{"type":"boolean"},"last":{"type":"boolean"},"number":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"}},"required":["content","first","last","number","size","totalElements","totalPages"]},"DatasetsContentDTO":{"type":"object","properties":{"attributes":{"type":"object","$ref":"#/components/schemas/MapOfStringTo_object"},"checks":{"type":"integer","format":"int64","description":"Number of active checks on the dataset. Zero means the dataset is not covered by any check, and dataQualityStatus and healthStatus then report pass and 100 without anything having been checked."},"cloudUrl":{"type":"string"},"contractId":{"type":"string"},"dataDelaySeconds":{"type":"integer","format":"int32"},"dataQualityStatus":{"type":"object","$ref":"#/components/schemas/DataQualityStatusDTO","description":"Worst last result across the dataset's active checks: fail if any check failed, warn if any check warned, pass otherwise. A dataset with no checks, or whose checks have never run, also reads as pass, so this is not on its own evidence that the data is good: read it together with checks."},"datasetQualifiedName":{"type":"string"},"datasource":{"type":"object","$ref":"#/components/schemas/DatasourcePropertiesDTO"},"hasContract":{"type":"boolean"},"healthStatus":{"type":"integer","format":"int32","description":"Percentage of the dataset's active checks whose last result passed, from 0 to 100. A dataset with no active checks reads as 100, so read it together with checks."},"id":{"type":"string"},"incidents":{"type":"integer","format":"int64"},"label":{"type":"string"},"lastUpdated":{"type":"string","format":"date-time"},"name":{"type":"string"},"owners":{"type":"array","items":{"type":"object","$ref":"#/components/schemas/DatasetOwnerDTO"}},"partitionColumn":{"type":"object","$ref":"#/components/schemas/DatasetPartitionColumnContentDTO","deprecated":true},"qualifiedName":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"timePartition":{"type":"object","$ref":"#/components/schemas/DatasetTimePartitionDTO"},"version":{"type":"object","$ref":"#/components/schemas/ModelVersionDTO"}},"required":["checks","cloudUrl","hasContract","healthStatus","id","incidents","name"]},"MapOfStringTo_object":{"type":"object","additionalProperties":true},"DataQualityStatusDTO":{"type":"string","enum":["pass","warn","fail"]},"DatasourcePropertiesDTO":{"type":"object","properties":{"label":{"type":"string"},"name":{"type":"string"},"prefix":{"type":"string"},"type":{"type":"string"},"version":{"type":"object","$ref":"#/components/schemas/ModelVersionDTO"}}},"DatasetOwnerDTO":{"type":"object","properties":{"type":{"type":"object","$ref":"#/components/schemas/DatasetOwnerTypeDTO"},"user":{"type":"object","$ref":"#/components/schemas/UserContentDTO"},"userGroup":{"type":"object","$ref":"#/components/schemas/UserGroupContentBasicDTO"}},"required":["type"]},"DatasetOwnerTypeDTO":{"type":"string","enum":["user","userGroup"]},"UserContentDTO":{"type":"object","properties":{"email":{"type":"string"},"firstName":{"type":"string"},"fullName":{"type":"string"},"lastName":{"type":"string"},"userId":{"type":"string"}},"required":["email","userId"]},"UserGroupContentBasicDTO":{"type":"object","properties":{"name":{"type":"string"},"userGroupId":{"type":"string"}},"required":["name","userGroupId"]},"DatasetPartitionColumnContentDTO":{"type":"object","properties":{"columnType":{"type":"object","$ref":"#/components/schemas/ColumnTypeDTO"},"name":{"type":"string"}},"required":["columnType","name"]},"ColumnTypeDTO":{"type":"string","enum":["unknown","string","integer","float","time","boolean","date","dateTime"]},"DatasetTimePartitionDTO":{"type":"object","properties":{"partitionColumn":{"type":"object","$ref":"#/components/schemas/DatasetPartitionColumnContentDTO"},"sqlExpression":{"type":"string"},"timePartitionType":{"type":"object","$ref":"#/components/schemas/DatasetTimePartitionTypeDTO"}}},"DatasetTimePartitionTypeDTO":{"type":"string","enum":["disabled","partitionColumn","sqlExpression"]},"ErrorResponse":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"paths":{"/api/v1/datasets":{"get":{"description":"This endpoint enables you to gather information about the datasets that in exist in your organization's Soda Cloud account, including information about the Soda Cloud resources with which it is associated, such as data source, incidents, attributes and health status.\n\nThis GET is a paginated API that uses the following parameters to request specific details:\n\n- `size`: Supply an integer value between 10 and 1000, inclusive. The default value is 10.\n\n- `page`: Supply an integer value. The default value is 0.\n\n- `from`: Optionally, use this parameter to collect only the information for datasets that have been updated after a particular point in time.  Supply an ISO8601 timestamp value. Example: `2023-12-31T10:15:30+01:00`\n\n- `datasourceName`:  Optionally, use this parameter to collect only the information for datasets associated with a specific datasource.\n\n- `search`: Optionally, use this parameter to perform a fuzzy search on the dataset name.\n\n- `hasContract`: Optionally, use this parameter to collect only the datasets that have a published contract (`true`) or only the datasets without one (`false`).\n\n- `ownerId`: Optionally, use this parameter to collect only the information for datasets owned by one user or one user group. Supply a single id: either a user id or a user group id, as returned in the `owners` list of this endpoint. A user id also matches the datasets owned by a user group that the user belongs to.\n\n- `version`: Optionally, use this parameter to collect only the datasets on a given Soda version, `3` or `4`. This is the dataset's own version, as returned in the `version` field of this endpoint.\n\nIf not specified, the query gathers information for all datasets in the account and sorts the results first by datasource name and then by dataset name in ascending order.\n\n## Authorization\n\nSoda only returns the datasets to which the user has **View dataset** permissions. Soda Cloud Admins have access to all datasets.**See [Manage dataset roles](https://go.soda.io/roles-dataset) for more information.**\n\n## Authentication\n\nUser authentication required: `true`\n\nThis 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.\n\n## Tags\n\n`Datasets`\n\n## Rate limiting\n\n30 requests/60 seconds","operationId":"GET/api/v1/datasets","parameters":[{"in":"query","name":"datasourceName","schema":{"type":"string"}},{"in":"query","name":"from","schema":{"type":"string","format":"date-time"}},{"in":"query","name":"hasContract","schema":{"type":"boolean"}},{"in":"query","name":"ownerId","schema":{"type":"string"}},{"in":"query","name":"page","schema":{"type":"integer","format":"int32"}},{"in":"query","name":"search","schema":{"type":"string"}},{"in":"query","name":"size","schema":{"type":"integer","format":"int32"}},{"in":"query","name":"version","schema":{"type":"object","$ref":"#/components/schemas/ModelVersionDTO"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/PublicApiDatasetsResponse"}}},"description":"Successful response"},"400":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad request"},"401":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not found"},"429":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too many requests"},"500":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal server error"}},"summary":"Dataset information","tags":["Datasets"]}}}}
```

## Get the metric monitoring configuration of several datasets

> Returns the dataset-level metric monitoring configuration of every requested dataset in a single call, so you do not have to call \*\*Get dataset metric monitoring configuration information\*\* once per dataset.\
> \
> Provide \`datasetIds\` (list of UUIDs) and/or \`datasetQualifiedNames\` (list of qualified names, for example \`my\_datasource/my\_schema/my\_table\`). Both lists are additive, each accepts at most 100 entries, and at least one must be non-empty. A dataset that does not exist makes the whole request fail with a \`404\`.\
> \
> Column and custom SQL monitors are not included. Use \*\*Get dataset metric monitoring configuration information\*\* for those.\
> \
> \## Authorization\
> \
> Only users with \*\*View dataset\*\* permission on every requested dataset can read their metric monitoring configuration. Soda Cloud Admins have access to all datasets.\*\*See \[Manage dataset roles]\(<https://go.soda.io/roles-dataset>) 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\
> \
> \`Datasets\`\
> \
> \## Rate limiting\
> \
> 100 requests/60 seconds

```json
{"openapi":"3.1.0","info":{"title":"Soda Cloud API v4","version":"v1"},"tags":[{"description":"Soda Cloud API Dataset Endpoints","name":"Datasets"}],"servers":[{"description":"Cloud EU","url":"https://cloud.soda.io"},{"description":"Cloud US","url":"https://cloud.us.soda.io"}],"security":[{"basicAuthApiKey":[]},{"cookieToken":[]}],"components":{"securitySchemes":{"basicAuthApiKey":{"scheme":"basic","type":"http"},"cookieToken":{"in":"cookie","name":"token","type":"apiKey"}},"schemas":{"PublicApiListDatasetsMetricMonitoringRequestDTO":{"type":"object","properties":{"datasetIds":{"type":"array","description":"Ids of the datasets to read. Additive with `datasetQualifiedNames`.","items":{"type":"string"}},"datasetQualifiedNames":{"type":"array","description":"Qualified names of the datasets to read, for example `my_datasource/my_schema/my_table`. Additive with `datasetIds`.","items":{"type":"string"}}}},"PublicApiListDatasetsMetricMonitoringResponse":{"type":"object","properties":{"datasets":{"type":"array","items":{"type":"object","$ref":"#/components/schemas/PublicApiListDatasetsMetricMonitoringResponse_DatasetMetricMonitoringConfigurationDTO"}}}},"PublicApiListDatasetsMetricMonitoringResponse_DatasetMetricMonitoringConfigurationDTO":{"type":"object","properties":{"datasetId":{"type":"string"},"datasetMetricMonitorsConfiguration":{"type":"array","description":"Configuration of the dataset-level monitors only. Use `GET /api/v1/datasets/{datasetId}/metricMonitoring` for the column and custom SQL monitors.","items":{"type":"object","$ref":"#/components/schemas/DatasetMetricMonitorConfigurationDTO"}},"datasetQualifiedName":{"type":"string"},"enabled":{"type":"boolean"},"historicalMetricCollectionScanStartDate":{"type":"string","format":"date-time"},"scanSchedule":{"type":"object","$ref":"#/components/schemas/ZonedCronDTO"},"timePartition":{"type":"object","$ref":"#/components/schemas/DatasetTimePartitionDTO"}}},"DatasetMetricMonitorConfigurationDTO":{"type":"object","properties":{"configuration":{"type":"object","$ref":"#/components/schemas/DatasetMonitorConfigurationDTO"},"metricType":{"type":"object","$ref":"#/components/schemas/DatasetMonitorMetricTypeDTO"}},"required":["configuration","metricType"]},"DatasetMonitorConfigurationDTO":{"type":"object","properties":{"exclusionZones":{"type":"array","items":{"type":"object","$ref":"#/components/schemas/ExclusionZoneDTO"}},"isEnabled":{"type":"boolean"},"isSamplingEnabled":{"type":"boolean"},"sensitivity":{"type":"number"},"thresholdStrategy":{"type":"object","$ref":"#/components/schemas/ThresholdStrategyDTO"},"validRange":{"type":"object","$ref":"#/components/schemas/ValidRangeDTO"}}},"ExclusionZoneDTO":{"type":"object","properties":{"lowerLimit":{"type":"number"},"singleValue":{"type":"boolean"},"upperLimit":{"type":"number"}},"required":["lowerLimit","upperLimit"]},"ThresholdStrategyDTO":{"type":"object","properties":{"isLowerBoundEnabled":{"type":"boolean"},"isUpperBoundEnabled":{"type":"boolean"}},"required":["isLowerBoundEnabled","isUpperBoundEnabled"]},"ValidRangeDTO":{"type":"object","properties":{"max":{"type":"number"},"min":{"type":"number"}}},"DatasetMonitorMetricTypeDTO":{"type":"string","enum":["rowCount","freshness","schema","rowsInserted","totalRowCountChange","timeliness","recordAnomalyScore"]},"ZonedCronDTO":{"type":"object","properties":{"cronExpression":{"type":"string"},"timezone":{"type":"string"}},"required":["cronExpression","timezone"]},"DatasetTimePartitionDTO":{"type":"object","properties":{"partitionColumn":{"type":"object","$ref":"#/components/schemas/DatasetPartitionColumnContentDTO"},"sqlExpression":{"type":"string"},"timePartitionType":{"type":"object","$ref":"#/components/schemas/DatasetTimePartitionTypeDTO"}}},"DatasetPartitionColumnContentDTO":{"type":"object","properties":{"columnType":{"type":"object","$ref":"#/components/schemas/ColumnTypeDTO"},"name":{"type":"string"}},"required":["columnType","name"]},"ColumnTypeDTO":{"type":"string","enum":["unknown","string","integer","float","time","boolean","date","dateTime"]},"DatasetTimePartitionTypeDTO":{"type":"string","enum":["disabled","partitionColumn","sqlExpression"]},"ErrorResponse":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"paths":{"/api/v1/datasets/actions/listMetricMonitoring":{"post":{"description":"Returns the dataset-level metric monitoring configuration of every requested dataset in a single call, so you do not have to call **Get dataset metric monitoring configuration information** once per dataset.\n\nProvide `datasetIds` (list of UUIDs) and/or `datasetQualifiedNames` (list of qualified names, for example `my_datasource/my_schema/my_table`). Both lists are additive, each accepts at most 100 entries, and at least one must be non-empty. A dataset that does not exist makes the whole request fail with a `404`.\n\nColumn and custom SQL monitors are not included. Use **Get dataset metric monitoring configuration information** for those.\n\n## Authorization\n\nOnly users with **View dataset** permission on every requested dataset can read their metric monitoring configuration. Soda Cloud Admins have access to all datasets.**See [Manage dataset roles](https://go.soda.io/roles-dataset) for more information.**\n\n## Authentication\n\nUser authentication required: `true`\n\nThis 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.\n\n## Tags\n\n`Datasets`\n\n## Rate limiting\n\n100 requests/60 seconds","operationId":"POST/api/v1/datasets/actions/listMetricMonitoring","requestBody":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/PublicApiListDatasetsMetricMonitoringRequestDTO"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/PublicApiListDatasetsMetricMonitoringResponse"}}},"description":"Successful response"},"400":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad request"},"401":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not found"},"429":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too many requests"},"500":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal server error"}},"summary":"Get the metric monitoring configuration of several datasets","tags":["Datasets"]}}}}
```

## Configure metric monitoring on several datasets

> Applies one metric monitoring configuration to every selected dataset. The update runs asynchronously.\
> \
> Provide \`datasetIds\` (list of UUIDs) and/or \`datasetQualifiedNames\` (list of qualified names, for example \`my\_datasource/my\_schema/my\_table\`). Both lists are additive, each accepts at most 100 entries, and at least one must be non-empty. A dataset that does not exist makes the whole request fail with a \`404\`.\
> \
> The \`metricMonitoring\` block is the same one accepted by \*\*Update a dataset\*\*, so it applies to the dataset-level monitors, the scan schedule and the historical metric collection start date only. Column and custom SQL monitors keep their own per-dataset endpoints.\
> \
> Datasets you cannot configure, datasets that are not onboarded, and datasets whose data source is not connected to a Soda Runner or does not support metric monitoring are skipped rather than rejected: the configuration is applied to the remaining datasets and the status endpoint reports the outcome of each one.\
> \
> Returns \`202 Accepted\` with a \`Location\` header pointing to the status endpoint.\
> \
> \## Authorization\
> \
> Only users with \*\*Configure dataset\*\* permission on a dataset can change its metric monitoring configuration; datasets without that permission are reported as skipped.\*\*See \[Manage dataset roles]\(<https://go.soda.io/roles-dataset>) 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\
> \
> \`Datasets\`\
> \
> \## Rate limiting\
> \
> 10 requests/60 seconds

```json
{"openapi":"3.1.0","info":{"title":"Soda Cloud API v4","version":"v1"},"tags":[{"description":"Soda Cloud API Dataset Endpoints","name":"Datasets"}],"servers":[{"description":"Cloud EU","url":"https://cloud.soda.io"},{"description":"Cloud US","url":"https://cloud.us.soda.io"}],"security":[{"basicAuthApiKey":[]},{"cookieToken":[]}],"components":{"securitySchemes":{"basicAuthApiKey":{"scheme":"basic","type":"http"},"cookieToken":{"in":"cookie","name":"token","type":"apiKey"}},"schemas":{"PublicApiUpdateDatasetsMetricMonitoringRequestDTO":{"type":"object","properties":{"datasetIds":{"type":"array","description":"Ids of the datasets to configure. Additive with `datasetQualifiedNames`.","items":{"type":"string"}},"datasetQualifiedNames":{"type":"array","description":"Qualified names of the datasets to configure, for example `my_datasource/my_schema/my_table`. Additive with `datasetIds`.","items":{"type":"string"}},"metricMonitoring":{"type":"object","$ref":"#/components/schemas/UpdateDatasetMetricMonitoringConfigurationRequestDTO","description":"The metric monitoring configuration to apply to every selected dataset."}},"required":["metricMonitoring"]},"UpdateDatasetMetricMonitoringConfigurationRequestDTO":{"type":"object","properties":{"datasetMetricMonitorsConfiguration":{"type":"array","items":{"type":"object","$ref":"#/components/schemas/DatasetMetricMonitorConfigurationDTO"}},"enabled":{"type":"boolean"},"historicalMetricCollectionScanStartDate":{"type":"string","format":"date-time"},"scanSchedule":{"type":"object","$ref":"#/components/schemas/ZonedCronDTO"}}},"DatasetMetricMonitorConfigurationDTO":{"type":"object","properties":{"configuration":{"type":"object","$ref":"#/components/schemas/DatasetMonitorConfigurationDTO"},"metricType":{"type":"object","$ref":"#/components/schemas/DatasetMonitorMetricTypeDTO"}},"required":["configuration","metricType"]},"DatasetMonitorConfigurationDTO":{"type":"object","properties":{"exclusionZones":{"type":"array","items":{"type":"object","$ref":"#/components/schemas/ExclusionZoneDTO"}},"isEnabled":{"type":"boolean"},"isSamplingEnabled":{"type":"boolean"},"sensitivity":{"type":"number"},"thresholdStrategy":{"type":"object","$ref":"#/components/schemas/ThresholdStrategyDTO"},"validRange":{"type":"object","$ref":"#/components/schemas/ValidRangeDTO"}}},"ExclusionZoneDTO":{"type":"object","properties":{"lowerLimit":{"type":"number"},"singleValue":{"type":"boolean"},"upperLimit":{"type":"number"}},"required":["lowerLimit","upperLimit"]},"ThresholdStrategyDTO":{"type":"object","properties":{"isLowerBoundEnabled":{"type":"boolean"},"isUpperBoundEnabled":{"type":"boolean"}},"required":["isLowerBoundEnabled","isUpperBoundEnabled"]},"ValidRangeDTO":{"type":"object","properties":{"max":{"type":"number"},"min":{"type":"number"}}},"DatasetMonitorMetricTypeDTO":{"type":"string","enum":["rowCount","freshness","schema","rowsInserted","totalRowCountChange","timeliness","recordAnomalyScore"]},"ZonedCronDTO":{"type":"object","properties":{"cronExpression":{"type":"string"},"timezone":{"type":"string"}},"required":["cronExpression","timezone"]},"ErrorResponse":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"paths":{"/api/v1/datasets/actions/updateMetricMonitoring":{"post":{"description":"Applies one metric monitoring configuration to every selected dataset. The update runs asynchronously.\n\nProvide `datasetIds` (list of UUIDs) and/or `datasetQualifiedNames` (list of qualified names, for example `my_datasource/my_schema/my_table`). Both lists are additive, each accepts at most 100 entries, and at least one must be non-empty. A dataset that does not exist makes the whole request fail with a `404`.\n\nThe `metricMonitoring` block is the same one accepted by **Update a dataset**, so it applies to the dataset-level monitors, the scan schedule and the historical metric collection start date only. Column and custom SQL monitors keep their own per-dataset endpoints.\n\nDatasets you cannot configure, datasets that are not onboarded, and datasets whose data source is not connected to a Soda Runner or does not support metric monitoring are skipped rather than rejected: the configuration is applied to the remaining datasets and the status endpoint reports the outcome of each one.\n\nReturns `202 Accepted` with a `Location` header pointing to the status endpoint.\n\n## Authorization\n\nOnly users with **Configure dataset** permission on a dataset can change its metric monitoring configuration; datasets without that permission are reported as skipped.**See [Manage dataset roles](https://go.soda.io/roles-dataset) for more information.**\n\n## Authentication\n\nUser authentication required: `true`\n\nThis 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.\n\n## Tags\n\n`Datasets`\n\n## Rate limiting\n\n10 requests/60 seconds","operationId":"POST/api/v1/datasets/actions/updateMetricMonitoring","requestBody":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/PublicApiUpdateDatasetsMetricMonitoringRequestDTO"}}},"required":true},"responses":{"202":{"description":"Accepted","headers":{"Location":{"schema":{"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad request"},"401":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not found"},"429":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too many requests"},"500":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal server error"}},"summary":"Configure metric monitoring on several datasets","tags":["Datasets"]}}}}
```

## Get the status of a bulk metric monitoring configuration update

> Returns the status of an operation triggered via the \*\*Configure metric monitoring on several datasets\*\* endpoint.\
> \
> The \`operationId\` is the last path segment of the \`Location\` header returned by that endpoint.\
> \
> While the operation is still running, only the operation state is returned (\`datasets\` is \`null\`). Once it has finished, \`datasets\` reports one outcome per selected dataset: \`applied\`, \`skipped\` (with the reason it was ruled out) or \`failed\`.\
> \
> \## Authorization\
> \
> Any authenticated Soda Cloud user in your organization may poll the status of an operation. \`datasets\` only lists the datasets you have \*\*View dataset\*\* permission on, so it can report fewer datasets than the operation was started with.\*\*See \[Manage dataset roles]\(<https://go.soda.io/roles-dataset>) 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\
> \
> \`Datasets\`\
> \
> \## Rate limiting\
> \
> 60 requests/60 seconds

```json
{"openapi":"3.1.0","info":{"title":"Soda Cloud API v4","version":"v1"},"tags":[{"description":"Soda Cloud API Dataset Endpoints","name":"Datasets"}],"servers":[{"description":"Cloud EU","url":"https://cloud.soda.io"},{"description":"Cloud US","url":"https://cloud.us.soda.io"}],"security":[{"basicAuthApiKey":[]},{"cookieToken":[]}],"components":{"securitySchemes":{"basicAuthApiKey":{"scheme":"basic","type":"http"},"cookieToken":{"in":"cookie","name":"token","type":"apiKey"}},"schemas":{"PublicApiUpdateDatasetsMetricMonitoringStatusResponse":{"type":"object","properties":{"datasets":{"type":"array","description":"One entry per selected dataset. Only present once the operation has finished.","items":{"type":"object","$ref":"#/components/schemas/PublicApiUpdateDatasetsMetricMonitoringStatusResponse_DatasetMetricMonitoringUpdateOutcomeDTO"}},"ended":{"type":"string","format":"date-time"},"operationId":{"type":"string"},"started":{"type":"string","format":"date-time"},"state":{"type":"object","$ref":"#/components/schemas/PublicApiMetricMonitoringUpdateOperationStateDTO"}}},"PublicApiUpdateDatasetsMetricMonitoringStatusResponse_DatasetMetricMonitoringUpdateOutcomeDTO":{"type":"object","properties":{"datasetId":{"type":"string"},"datasetQualifiedName":{"type":"string"},"reason":{"type":"string","description":"Why the configuration was not applied. Null when the status is `applied`."},"status":{"type":"object","$ref":"#/components/schemas/PublicApiDatasetMetricMonitoringUpdateStatusDTO"}}},"PublicApiDatasetMetricMonitoringUpdateStatusDTO":{"type":"string","enum":["applied","skipped","failed"]},"PublicApiMetricMonitoringUpdateOperationStateDTO":{"type":"string","enum":["queued","processing","completed","failed","cancelled"]},"ErrorResponse":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"paths":{"/api/v1/datasets/actions/updateMetricMonitoring/{operationId}":{"get":{"description":"Returns the status of an operation triggered via the **Configure metric monitoring on several datasets** endpoint.\n\nThe `operationId` is the last path segment of the `Location` header returned by that endpoint.\n\nWhile the operation is still running, only the operation state is returned (`datasets` is `null`). Once it has finished, `datasets` reports one outcome per selected dataset: `applied`, `skipped` (with the reason it was ruled out) or `failed`.\n\n## Authorization\n\nAny authenticated Soda Cloud user in your organization may poll the status of an operation. `datasets` only lists the datasets you have **View dataset** permission on, so it can report fewer datasets than the operation was started with.**See [Manage dataset roles](https://go.soda.io/roles-dataset) for more information.**\n\n## Authentication\n\nUser authentication required: `true`\n\nThis 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.\n\n## Tags\n\n`Datasets`\n\n## Rate limiting\n\n60 requests/60 seconds","operationId":"GET/api/v1/datasets/actions/updateMetricMonitoring/{operationId}","parameters":[{"in":"path","name":"operationId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/PublicApiUpdateDatasetsMetricMonitoringStatusResponse"}}},"description":"Successful response"},"400":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad request"},"401":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not found"},"429":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too many requests"},"500":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal server error"}},"summary":"Get the status of a bulk metric monitoring configuration update","tags":["Datasets"]}}}}
```

## Get dataset by qualified name

> This endpoint enables you to retrieve a single dataset by its qualified name (contractIdentifier) from your organization's Soda Cloud account.\
> \
> \## Authorization\
> \
> Only users with \*\*View dataset\*\* permission can view a dataset. Soda Cloud Admins have permission to view any dataset. \*\*See \[Manage dataset roles]\(<https://go.soda.io/roles-dataset>) 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\
> \
> \`Datasets\`\
> \
> \## Rate limiting\
> \
> 1000 requests/60 seconds

```json
{"openapi":"3.1.0","info":{"title":"Soda Cloud API v4","version":"v1"},"tags":[{"description":"Soda Cloud API Dataset Endpoints","name":"Datasets"}],"servers":[{"description":"Cloud EU","url":"https://cloud.soda.io"},{"description":"Cloud US","url":"https://cloud.us.soda.io"}],"security":[{"basicAuthApiKey":[]},{"cookieToken":[]}],"components":{"securitySchemes":{"basicAuthApiKey":{"scheme":"basic","type":"http"},"cookieToken":{"in":"cookie","name":"token","type":"apiKey"}},"schemas":{"DatasetsContentDTO":{"type":"object","properties":{"attributes":{"type":"object","$ref":"#/components/schemas/MapOfStringTo_object"},"checks":{"type":"integer","format":"int64","description":"Number of active checks on the dataset. Zero means the dataset is not covered by any check, and dataQualityStatus and healthStatus then report pass and 100 without anything having been checked."},"cloudUrl":{"type":"string"},"contractId":{"type":"string"},"dataDelaySeconds":{"type":"integer","format":"int32"},"dataQualityStatus":{"type":"object","$ref":"#/components/schemas/DataQualityStatusDTO","description":"Worst last result across the dataset's active checks: fail if any check failed, warn if any check warned, pass otherwise. A dataset with no checks, or whose checks have never run, also reads as pass, so this is not on its own evidence that the data is good: read it together with checks."},"datasetQualifiedName":{"type":"string"},"datasource":{"type":"object","$ref":"#/components/schemas/DatasourcePropertiesDTO"},"hasContract":{"type":"boolean"},"healthStatus":{"type":"integer","format":"int32","description":"Percentage of the dataset's active checks whose last result passed, from 0 to 100. A dataset with no active checks reads as 100, so read it together with checks."},"id":{"type":"string"},"incidents":{"type":"integer","format":"int64"},"label":{"type":"string"},"lastUpdated":{"type":"string","format":"date-time"},"name":{"type":"string"},"owners":{"type":"array","items":{"type":"object","$ref":"#/components/schemas/DatasetOwnerDTO"}},"partitionColumn":{"type":"object","$ref":"#/components/schemas/DatasetPartitionColumnContentDTO","deprecated":true},"qualifiedName":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"timePartition":{"type":"object","$ref":"#/components/schemas/DatasetTimePartitionDTO"},"version":{"type":"object","$ref":"#/components/schemas/ModelVersionDTO"}},"required":["checks","cloudUrl","hasContract","healthStatus","id","incidents","name"]},"MapOfStringTo_object":{"type":"object","additionalProperties":true},"DataQualityStatusDTO":{"type":"string","enum":["pass","warn","fail"]},"DatasourcePropertiesDTO":{"type":"object","properties":{"label":{"type":"string"},"name":{"type":"string"},"prefix":{"type":"string"},"type":{"type":"string"},"version":{"type":"object","$ref":"#/components/schemas/ModelVersionDTO"}}},"ModelVersionDTO":{"type":"string","enum":["3","4"]},"DatasetOwnerDTO":{"type":"object","properties":{"type":{"type":"object","$ref":"#/components/schemas/DatasetOwnerTypeDTO"},"user":{"type":"object","$ref":"#/components/schemas/UserContentDTO"},"userGroup":{"type":"object","$ref":"#/components/schemas/UserGroupContentBasicDTO"}},"required":["type"]},"DatasetOwnerTypeDTO":{"type":"string","enum":["user","userGroup"]},"UserContentDTO":{"type":"object","properties":{"email":{"type":"string"},"firstName":{"type":"string"},"fullName":{"type":"string"},"lastName":{"type":"string"},"userId":{"type":"string"}},"required":["email","userId"]},"UserGroupContentBasicDTO":{"type":"object","properties":{"name":{"type":"string"},"userGroupId":{"type":"string"}},"required":["name","userGroupId"]},"DatasetPartitionColumnContentDTO":{"type":"object","properties":{"columnType":{"type":"object","$ref":"#/components/schemas/ColumnTypeDTO"},"name":{"type":"string"}},"required":["columnType","name"]},"ColumnTypeDTO":{"type":"string","enum":["unknown","string","integer","float","time","boolean","date","dateTime"]},"DatasetTimePartitionDTO":{"type":"object","properties":{"partitionColumn":{"type":"object","$ref":"#/components/schemas/DatasetPartitionColumnContentDTO"},"sqlExpression":{"type":"string"},"timePartitionType":{"type":"object","$ref":"#/components/schemas/DatasetTimePartitionTypeDTO"}}},"DatasetTimePartitionTypeDTO":{"type":"string","enum":["disabled","partitionColumn","sqlExpression"]},"ErrorResponse":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"paths":{"/api/v1/datasets/byDatasetQualifiedName/{datasetQualifiedName}":{"get":{"description":"This endpoint enables you to retrieve a single dataset by its qualified name (contractIdentifier) from your organization's Soda Cloud account.\n\n## Authorization\n\nOnly users with **View dataset** permission can view a dataset. Soda Cloud Admins have permission to view any dataset. **See [Manage dataset roles](https://go.soda.io/roles-dataset) for more information.**\n\n## Authentication\n\nUser authentication required: `true`\n\nThis 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.\n\n## Tags\n\n`Datasets`\n\n## Rate limiting\n\n1000 requests/60 seconds","operationId":"GET/api/v1/datasets/byDatasetQualifiedName/{datasetQualifiedName}","parameters":[{"in":"path","name":"datasetQualifiedName","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/DatasetsContentDTO"}}},"description":"Successful response"},"400":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad request"},"401":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not found"},"429":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too many requests"},"500":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal server error"}},"summary":"Get dataset by qualified name","tags":["Datasets"]}}}}
```

## Get the default dataset responsibilities

> This endpoint returns the organization-wide defaults that Soda applies to every newly created dataset: the dataset role granted to the dataset owner, and the users and user groups that are assigned a dataset role automatically.\
> \
> Assignments whose role has since been deleted are left out, because they no longer grant anything.\
> \
> \## Authorization\
> \
> Only users with the \*\*Manage organization settings\*\* permission can read the default dataset responsibilities.\
> \
> \## 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.\
> \
> \## Authorization\
> \
> Users must have global role permission MANAGE\_ORGANISATION\_SETTINGS to execute this call.\
> \
> \## Tags\
> \
> \`Datasets\`\
> \
> \## Rate limiting\
> \
> 60 requests/60 seconds

```json
{"openapi":"3.1.0","info":{"title":"Soda Cloud API v4","version":"v1"},"tags":[{"description":"Soda Cloud API Dataset Endpoints","name":"Datasets"}],"servers":[{"description":"Cloud EU","url":"https://cloud.soda.io"},{"description":"Cloud US","url":"https://cloud.us.soda.io"}],"security":[{"basicAuthApiKey":[]},{"cookieToken":[]}],"components":{"securitySchemes":{"basicAuthApiKey":{"scheme":"basic","type":"http"},"cookieToken":{"in":"cookie","name":"token","type":"apiKey"}},"schemas":{"PublicApiDatasetDefaultResponsibilitiesResponse":{"type":"object","properties":{"assignments":{"type":"array","description":"Users and user groups that are granted a dataset role on every newly created dataset.","items":{"type":"object","$ref":"#/components/schemas/DatasetDefaultAssignmentContentDTO"}},"defaultOwnerRole":{"type":"object","$ref":"#/components/schemas/DatasetRoleContentDTO","description":"Dataset role granted to the owner of a newly created dataset. Null when no role is configured."}},"required":["assignments"]},"DatasetDefaultAssignmentContentDTO":{"type":"object","properties":{"role":{"type":"object","$ref":"#/components/schemas/DatasetRoleContentDTO"},"type":{"type":"object","$ref":"#/components/schemas/ResponsibilityTypeDTO"},"userGroupId":{"type":"string"},"userId":{"type":"string"}},"required":["role","type"]},"DatasetRoleContentDTO":{"type":"object","properties":{"configureDataset":{"type":"boolean"},"createCheckProposals":{"type":"boolean"},"deleteDataset":{"type":"boolean"},"executeContracts":{"type":"boolean","deprecated":true},"id":{"type":"string"},"manageChecks":{"type":"boolean"},"manageContracts":{"type":"boolean"},"manageIncidents":{"type":"boolean"},"managePermissions":{"type":"boolean"},"name":{"type":"string"},"publishContracts":{"type":"boolean","deprecated":true},"viewFailedRows":{"type":"boolean"},"viewProfilingAndSamples":{"type":"boolean"}},"required":["id","name"]},"ResponsibilityTypeDTO":{"type":"string","enum":["user","userGroup"]},"ErrorResponse":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"paths":{"/api/v1/datasets/defaultResponsibilities":{"get":{"description":"This endpoint returns the organization-wide defaults that Soda applies to every newly created dataset: the dataset role granted to the dataset owner, and the users and user groups that are assigned a dataset role automatically.\n\nAssignments whose role has since been deleted are left out, because they no longer grant anything.\n\n## Authorization\n\nOnly users with the **Manage organization settings** permission can read the default dataset responsibilities.\n\n## Authentication\n\nUser authentication required: `true`\n\nThis 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.\n\n## Authorization\n\nUsers must have global role permission MANAGE_ORGANISATION_SETTINGS to execute this call.\n\n## Tags\n\n`Datasets`\n\n## Rate limiting\n\n60 requests/60 seconds","operationId":"GET/api/v1/datasets/defaultResponsibilities","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/PublicApiDatasetDefaultResponsibilitiesResponse"}}},"description":"Successful response"},"400":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad request"},"401":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"429":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too many requests"},"500":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal server error"}},"summary":"Get the default dataset responsibilities","tags":["Datasets"]}}}}
```

## Update the default dataset responsibilities

> This endpoint updates the organization-wide defaults that Soda applies to every newly created dataset.\
> \
> \*\*Note\*\*: \`assignments\` fully replaces the current list, so send every assignment you want to keep. Leave it out to keep the list that is configured now, or send an empty list to remove every assignment. Leaving out \`defaultOwnerRoleId\` keeps the role that is configured now; changing it also repoints the owner permissions Soda manages on the datasets that already exist.\
> \
> Existing datasets keep the responsibilities they already have, apart from that owner role.\
> \
> \## Authorization\
> \
> Only users with the \*\*Manage organization settings\*\* permission can update the default dataset responsibilities.\
> \
> \## 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.\
> \
> \## Authorization\
> \
> Users must have global role permission MANAGE\_ORGANISATION\_SETTINGS to execute this call.\
> \
> \## Tags\
> \
> \`Datasets\`\
> \
> \## Rate limiting\
> \
> 60 requests/60 seconds

```json
{"openapi":"3.1.0","info":{"title":"Soda Cloud API v4","version":"v1"},"tags":[{"description":"Soda Cloud API Dataset Endpoints","name":"Datasets"}],"servers":[{"description":"Cloud EU","url":"https://cloud.soda.io"},{"description":"Cloud US","url":"https://cloud.us.soda.io"}],"security":[{"basicAuthApiKey":[]},{"cookieToken":[]}],"components":{"securitySchemes":{"basicAuthApiKey":{"scheme":"basic","type":"http"},"cookieToken":{"in":"cookie","name":"token","type":"apiKey"}},"schemas":{"PublicApiUpdateDatasetDefaultResponsibilitiesRequestDTO":{"type":"object","properties":{"assignments":{"type":"array","description":"Replaces the whole list of default assignments. Leave it out to keep the assignments that are configured now, or send an empty list to remove all of them.","items":{"type":"object","$ref":"#/components/schemas/DatasetDefaultAssignmentRequestDTO"}},"defaultOwnerRoleId":{"type":"string","description":"Id of the dataset role to grant to the owner of a newly created dataset. Leave it out to keep the role that is configured now."}}},"DatasetDefaultAssignmentRequestDTO":{"type":"object","properties":{"roleId":{"type":"string"},"type":{"type":"object","$ref":"#/components/schemas/ResponsibilityTypeDTO"},"userGroupId":{"type":"string"},"userId":{"type":"string"}},"required":["roleId","type"]},"ResponsibilityTypeDTO":{"type":"string","enum":["user","userGroup"]},"PublicApiDatasetDefaultResponsibilitiesResponse":{"type":"object","properties":{"assignments":{"type":"array","description":"Users and user groups that are granted a dataset role on every newly created dataset.","items":{"type":"object","$ref":"#/components/schemas/DatasetDefaultAssignmentContentDTO"}},"defaultOwnerRole":{"type":"object","$ref":"#/components/schemas/DatasetRoleContentDTO","description":"Dataset role granted to the owner of a newly created dataset. Null when no role is configured."}},"required":["assignments"]},"DatasetDefaultAssignmentContentDTO":{"type":"object","properties":{"role":{"type":"object","$ref":"#/components/schemas/DatasetRoleContentDTO"},"type":{"type":"object","$ref":"#/components/schemas/ResponsibilityTypeDTO"},"userGroupId":{"type":"string"},"userId":{"type":"string"}},"required":["role","type"]},"DatasetRoleContentDTO":{"type":"object","properties":{"configureDataset":{"type":"boolean"},"createCheckProposals":{"type":"boolean"},"deleteDataset":{"type":"boolean"},"executeContracts":{"type":"boolean","deprecated":true},"id":{"type":"string"},"manageChecks":{"type":"boolean"},"manageContracts":{"type":"boolean"},"manageIncidents":{"type":"boolean"},"managePermissions":{"type":"boolean"},"name":{"type":"string"},"publishContracts":{"type":"boolean","deprecated":true},"viewFailedRows":{"type":"boolean"},"viewProfilingAndSamples":{"type":"boolean"}},"required":["id","name"]},"ErrorResponse":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"paths":{"/api/v1/datasets/defaultResponsibilities":{"post":{"description":"This endpoint updates the organization-wide defaults that Soda applies to every newly created dataset.\n\n**Note**: `assignments` fully replaces the current list, so send every assignment you want to keep. Leave it out to keep the list that is configured now, or send an empty list to remove every assignment. Leaving out `defaultOwnerRoleId` keeps the role that is configured now; changing it also repoints the owner permissions Soda manages on the datasets that already exist.\n\nExisting datasets keep the responsibilities they already have, apart from that owner role.\n\n## Authorization\n\nOnly users with the **Manage organization settings** permission can update the default dataset responsibilities.\n\n## Authentication\n\nUser authentication required: `true`\n\nThis 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.\n\n## Authorization\n\nUsers must have global role permission MANAGE_ORGANISATION_SETTINGS to execute this call.\n\n## Tags\n\n`Datasets`\n\n## Rate limiting\n\n60 requests/60 seconds","operationId":"POST/api/v1/datasets/defaultResponsibilities","requestBody":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/PublicApiUpdateDatasetDefaultResponsibilitiesRequestDTO"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/PublicApiDatasetDefaultResponsibilitiesResponse"}}},"description":"Successful response"},"400":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad request"},"401":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"429":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too many requests"},"500":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal server error"}},"summary":"Update the default dataset responsibilities","tags":["Datasets"]}}}}
```

## List dataset roles

> This endpoint enables you to gather information about the dataset roles available in your organization's Soda Cloud account. Use the dataset roles to manage access to individual datasets.\
> \
> This GET is a paginated API that uses the following parameters to request specific details:\
> \
> \- \`size\`: Supply an integer value between 10 and 100, inclusive. The default value is 100.\
> \
> \- \`page\`: Supply an integer value. The default value is 0.\
> \
> \## 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.\
> \
> \## Authorization\
> \
> Any Soda Cloud user in your organization may execute this query.\
> \
> \## Tags\
> \
> \`Datasets\`\
> \
> \## Rate limiting\
> \
> 60 requests/60 seconds

```json
{"openapi":"3.1.0","info":{"title":"Soda Cloud API v4","version":"v1"},"tags":[{"description":"Soda Cloud API Dataset Endpoints","name":"Datasets"}],"servers":[{"description":"Cloud EU","url":"https://cloud.soda.io"},{"description":"Cloud US","url":"https://cloud.us.soda.io"}],"security":[{"basicAuthApiKey":[]},{"cookieToken":[]}],"components":{"securitySchemes":{"basicAuthApiKey":{"scheme":"basic","type":"http"},"cookieToken":{"in":"cookie","name":"token","type":"apiKey"}},"schemas":{"PublicApiDatasetRolesResponse":{"type":"object","properties":{"content":{"type":"array","items":{"type":"object","$ref":"#/components/schemas/DatasetRoleContentDTO"}},"first":{"type":"boolean"},"last":{"type":"boolean"},"number":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"}},"required":["content","first","last","number","size","totalElements","totalPages"]},"DatasetRoleContentDTO":{"type":"object","properties":{"configureDataset":{"type":"boolean"},"createCheckProposals":{"type":"boolean"},"deleteDataset":{"type":"boolean"},"executeContracts":{"type":"boolean","deprecated":true},"id":{"type":"string"},"manageChecks":{"type":"boolean"},"manageContracts":{"type":"boolean"},"manageIncidents":{"type":"boolean"},"managePermissions":{"type":"boolean"},"name":{"type":"string"},"publishContracts":{"type":"boolean","deprecated":true},"viewFailedRows":{"type":"boolean"},"viewProfilingAndSamples":{"type":"boolean"}},"required":["id","name"]},"ErrorResponse":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"paths":{"/api/v1/datasets/roles":{"get":{"description":"This endpoint enables you to gather information about the dataset roles available in your organization's Soda Cloud account. Use the dataset roles to manage access to individual datasets.\n\nThis GET is a paginated API that uses the following parameters to request specific details:\n\n- `size`: Supply an integer value between 10 and 100, inclusive. The default value is 100.\n\n- `page`: Supply an integer value. The default value is 0.\n\n## Authentication\n\nUser authentication required: `true`\n\nThis 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.\n\n## Authorization\n\nAny Soda Cloud user in your organization may execute this query.\n\n## Tags\n\n`Datasets`\n\n## Rate limiting\n\n60 requests/60 seconds","operationId":"GET/api/v1/datasets/roles","parameters":[{"in":"query","name":"page","schema":{"type":"integer","format":"int32"}},{"in":"query","name":"size","schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/PublicApiDatasetRolesResponse"}}},"description":"Successful response"},"400":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad request"},"401":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not found"},"429":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too many requests"},"500":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal server error"}},"summary":"List dataset roles","tags":["Datasets"]}}}}
```

## Create a dataset role

> This endpoint allows you to create a new custom dataset role in your organization's Soda Cloud account. Dataset roles define a named set of permissions that control what actions users can perform on individual datasets, such as managing checks, viewing profiling data, configuring the dataset, or managing incidents.\
> \
> Once created, the role can be assigned to users or user groups via the dataset responsibilities endpoints.\
> \
> \## 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.\
> \
> \## Authorization\
> \
> Users must have global role permission MANAGE\_ORGANISATION\_SETTINGS to execute this call.\
> \
> \## Tags\
> \
> \`Datasets\`\
> \
> \## Rate limiting\
> \
> 60 requests/60 seconds

```json
{"openapi":"3.1.0","info":{"title":"Soda Cloud API v4","version":"v1"},"tags":[{"description":"Soda Cloud API Dataset Endpoints","name":"Datasets"}],"servers":[{"description":"Cloud EU","url":"https://cloud.soda.io"},{"description":"Cloud US","url":"https://cloud.us.soda.io"}],"security":[{"basicAuthApiKey":[]},{"cookieToken":[]}],"components":{"securitySchemes":{"basicAuthApiKey":{"scheme":"basic","type":"http"},"cookieToken":{"in":"cookie","name":"token","type":"apiKey"}},"schemas":{"PublicApiDatasetRoleRequestDTO":{"type":"object","properties":{"configureDataset":{"type":"boolean"},"createCheckProposals":{"type":"boolean"},"deleteDataset":{"type":"boolean"},"manageChecks":{"type":"boolean"},"manageContracts":{"type":"boolean"},"manageIncidents":{"type":"boolean"},"managePermissions":{"type":"boolean"},"name":{"type":"string"},"viewFailedRows":{"type":"boolean"},"viewProfilingAndSamples":{"type":"boolean"}},"required":["name"]},"PublicApiCreateDatasetRoleResponse":{"type":"object","properties":{"datasetRole":{"type":"object","$ref":"#/components/schemas/DatasetRoleContentDTO"}},"required":["datasetRole"]},"DatasetRoleContentDTO":{"type":"object","properties":{"configureDataset":{"type":"boolean"},"createCheckProposals":{"type":"boolean"},"deleteDataset":{"type":"boolean"},"executeContracts":{"type":"boolean","deprecated":true},"id":{"type":"string"},"manageChecks":{"type":"boolean"},"manageContracts":{"type":"boolean"},"manageIncidents":{"type":"boolean"},"managePermissions":{"type":"boolean"},"name":{"type":"string"},"publishContracts":{"type":"boolean","deprecated":true},"viewFailedRows":{"type":"boolean"},"viewProfilingAndSamples":{"type":"boolean"}},"required":["id","name"]},"ErrorResponse":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"paths":{"/api/v1/datasets/roles":{"post":{"description":"This endpoint allows you to create a new custom dataset role in your organization's Soda Cloud account. Dataset roles define a named set of permissions that control what actions users can perform on individual datasets, such as managing checks, viewing profiling data, configuring the dataset, or managing incidents.\n\nOnce created, the role can be assigned to users or user groups via the dataset responsibilities endpoints.\n\n## Authentication\n\nUser authentication required: `true`\n\nThis 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.\n\n## Authorization\n\nUsers must have global role permission MANAGE_ORGANISATION_SETTINGS to execute this call.\n\n## Tags\n\n`Datasets`\n\n## Rate limiting\n\n60 requests/60 seconds","operationId":"POST/api/v1/datasets/roles","requestBody":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/PublicApiDatasetRoleRequestDTO"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/PublicApiCreateDatasetRoleResponse"}}},"description":"Successful response"},"400":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad request"},"401":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"429":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too many requests"},"500":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal server error"}},"summary":"Create a dataset role","tags":["Datasets"]}}}}
```

## Update a dataset role

> This endpoint allows you to update the name or permissions of an existing custom dataset role. Dataset roles define a named set of permissions that control what actions users can perform on individual datasets, such as managing checks, viewing profiling data, configuring the dataset, or managing incidents.\
> \
> Changes apply immediately to all users and user groups assigned this role.\
> \
> \## 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.\
> \
> \## Authorization\
> \
> Users must have global role permission MANAGE\_ORGANISATION\_SETTINGS to execute this call.\
> \
> \## Tags\
> \
> \`Datasets\`\
> \
> \## Rate limiting\
> \
> 60 requests/60 seconds

```json
{"openapi":"3.1.0","info":{"title":"Soda Cloud API v4","version":"v1"},"tags":[{"description":"Soda Cloud API Dataset Endpoints","name":"Datasets"}],"servers":[{"description":"Cloud EU","url":"https://cloud.soda.io"},{"description":"Cloud US","url":"https://cloud.us.soda.io"}],"security":[{"basicAuthApiKey":[]},{"cookieToken":[]}],"components":{"securitySchemes":{"basicAuthApiKey":{"scheme":"basic","type":"http"},"cookieToken":{"in":"cookie","name":"token","type":"apiKey"}},"schemas":{"PublicApiDatasetRoleRequestDTO":{"type":"object","properties":{"configureDataset":{"type":"boolean"},"createCheckProposals":{"type":"boolean"},"deleteDataset":{"type":"boolean"},"manageChecks":{"type":"boolean"},"manageContracts":{"type":"boolean"},"manageIncidents":{"type":"boolean"},"managePermissions":{"type":"boolean"},"name":{"type":"string"},"viewFailedRows":{"type":"boolean"},"viewProfilingAndSamples":{"type":"boolean"}},"required":["name"]},"PublicApiUpdateDatasetRoleResponse":{"type":"object","properties":{"datasetRole":{"type":"object","$ref":"#/components/schemas/DatasetRoleContentDTO"}},"required":["datasetRole"]},"DatasetRoleContentDTO":{"type":"object","properties":{"configureDataset":{"type":"boolean"},"createCheckProposals":{"type":"boolean"},"deleteDataset":{"type":"boolean"},"executeContracts":{"type":"boolean","deprecated":true},"id":{"type":"string"},"manageChecks":{"type":"boolean"},"manageContracts":{"type":"boolean"},"manageIncidents":{"type":"boolean"},"managePermissions":{"type":"boolean"},"name":{"type":"string"},"publishContracts":{"type":"boolean","deprecated":true},"viewFailedRows":{"type":"boolean"},"viewProfilingAndSamples":{"type":"boolean"}},"required":["id","name"]},"ErrorResponse":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"paths":{"/api/v1/datasets/roles/{roleId}":{"post":{"description":"This endpoint allows you to update the name or permissions of an existing custom dataset role. Dataset roles define a named set of permissions that control what actions users can perform on individual datasets, such as managing checks, viewing profiling data, configuring the dataset, or managing incidents.\n\nChanges apply immediately to all users and user groups assigned this role.\n\n## Authentication\n\nUser authentication required: `true`\n\nThis 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.\n\n## Authorization\n\nUsers must have global role permission MANAGE_ORGANISATION_SETTINGS to execute this call.\n\n## Tags\n\n`Datasets`\n\n## Rate limiting\n\n60 requests/60 seconds","operationId":"POST/api/v1/datasets/roles/{roleId}","parameters":[{"in":"path","name":"roleId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/PublicApiDatasetRoleRequestDTO"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/PublicApiUpdateDatasetRoleResponse"}}},"description":"Successful response"},"400":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad request"},"401":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not found"},"429":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too many requests"},"500":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal server error"}},"summary":"Update a dataset role","tags":["Datasets"]}}}}
```

## Delete a dataset role

> This endpoint allows you to delete a custom dataset role from your organization's Soda Cloud account. Dataset roles define a named set of permissions that control what actions users can perform on individual datasets, such as managing checks, viewing profiling data, configuring the dataset, or managing incidents.\
> \
> Deletion is performed asynchronously and may take some time to complete.\
> \
> Deletion will fail if the role is still assigned to any dataset permissions or used in responsibility settings.\
> \
> \## 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.\
> \
> \## Authorization\
> \
> Users must have global role permission MANAGE\_ORGANISATION\_SETTINGS to execute this call.\
> \
> \## Tags\
> \
> \`Datasets\`\
> \
> \## Rate limiting\
> \
> 60 requests/60 seconds

```json
{"openapi":"3.1.0","info":{"title":"Soda Cloud API v4","version":"v1"},"tags":[{"description":"Soda Cloud API Dataset Endpoints","name":"Datasets"}],"servers":[{"description":"Cloud EU","url":"https://cloud.soda.io"},{"description":"Cloud US","url":"https://cloud.us.soda.io"}],"security":[{"basicAuthApiKey":[]},{"cookieToken":[]}],"components":{"securitySchemes":{"basicAuthApiKey":{"scheme":"basic","type":"http"},"cookieToken":{"in":"cookie","name":"token","type":"apiKey"}},"schemas":{"PublicApiDeleteDatasetRoleResponse":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]},"ErrorResponse":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"paths":{"/api/v1/datasets/roles/{roleId}":{"delete":{"description":"This endpoint allows you to delete a custom dataset role from your organization's Soda Cloud account. Dataset roles define a named set of permissions that control what actions users can perform on individual datasets, such as managing checks, viewing profiling data, configuring the dataset, or managing incidents.\n\nDeletion is performed asynchronously and may take some time to complete.\n\nDeletion will fail if the role is still assigned to any dataset permissions or used in responsibility settings.\n\n## Authentication\n\nUser authentication required: `true`\n\nThis 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.\n\n## Authorization\n\nUsers must have global role permission MANAGE_ORGANISATION_SETTINGS to execute this call.\n\n## Tags\n\n`Datasets`\n\n## Rate limiting\n\n60 requests/60 seconds","operationId":"DELETE/api/v1/datasets/roles/{roleId}","parameters":[{"in":"path","name":"roleId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/PublicApiDeleteDatasetRoleResponse"}}},"description":"Successful response"},"400":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad request"},"401":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not found"},"429":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too many requests"},"500":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal server error"}},"summary":"Delete a dataset role","tags":["Datasets"]}}}}
```

## Get dataset

> This endpoint enables you to retrieve a single dataset by its ID from your organization's Soda Cloud account.\
> \
> \## Authorization\
> \
> Only users with \*\*View dataset\*\* permission can view a dataset. Soda Cloud Admins have permission to view any dataset. \*\*See \[Manage dataset roles]\(<https://go.soda.io/roles-dataset>) 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\
> \
> \`Datasets\`\
> \
> \## Rate limiting\
> \
> 1000 requests/60 seconds

```json
{"openapi":"3.1.0","info":{"title":"Soda Cloud API v4","version":"v1"},"tags":[{"description":"Soda Cloud API Dataset Endpoints","name":"Datasets"}],"servers":[{"description":"Cloud EU","url":"https://cloud.soda.io"},{"description":"Cloud US","url":"https://cloud.us.soda.io"}],"security":[{"basicAuthApiKey":[]},{"cookieToken":[]}],"components":{"securitySchemes":{"basicAuthApiKey":{"scheme":"basic","type":"http"},"cookieToken":{"in":"cookie","name":"token","type":"apiKey"}},"schemas":{"DatasetsContentDTO":{"type":"object","properties":{"attributes":{"type":"object","$ref":"#/components/schemas/MapOfStringTo_object"},"checks":{"type":"integer","format":"int64","description":"Number of active checks on the dataset. Zero means the dataset is not covered by any check, and dataQualityStatus and healthStatus then report pass and 100 without anything having been checked."},"cloudUrl":{"type":"string"},"contractId":{"type":"string"},"dataDelaySeconds":{"type":"integer","format":"int32"},"dataQualityStatus":{"type":"object","$ref":"#/components/schemas/DataQualityStatusDTO","description":"Worst last result across the dataset's active checks: fail if any check failed, warn if any check warned, pass otherwise. A dataset with no checks, or whose checks have never run, also reads as pass, so this is not on its own evidence that the data is good: read it together with checks."},"datasetQualifiedName":{"type":"string"},"datasource":{"type":"object","$ref":"#/components/schemas/DatasourcePropertiesDTO"},"hasContract":{"type":"boolean"},"healthStatus":{"type":"integer","format":"int32","description":"Percentage of the dataset's active checks whose last result passed, from 0 to 100. A dataset with no active checks reads as 100, so read it together with checks."},"id":{"type":"string"},"incidents":{"type":"integer","format":"int64"},"label":{"type":"string"},"lastUpdated":{"type":"string","format":"date-time"},"name":{"type":"string"},"owners":{"type":"array","items":{"type":"object","$ref":"#/components/schemas/DatasetOwnerDTO"}},"partitionColumn":{"type":"object","$ref":"#/components/schemas/DatasetPartitionColumnContentDTO","deprecated":true},"qualifiedName":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"timePartition":{"type":"object","$ref":"#/components/schemas/DatasetTimePartitionDTO"},"version":{"type":"object","$ref":"#/components/schemas/ModelVersionDTO"}},"required":["checks","cloudUrl","hasContract","healthStatus","id","incidents","name"]},"MapOfStringTo_object":{"type":"object","additionalProperties":true},"DataQualityStatusDTO":{"type":"string","enum":["pass","warn","fail"]},"DatasourcePropertiesDTO":{"type":"object","properties":{"label":{"type":"string"},"name":{"type":"string"},"prefix":{"type":"string"},"type":{"type":"string"},"version":{"type":"object","$ref":"#/components/schemas/ModelVersionDTO"}}},"ModelVersionDTO":{"type":"string","enum":["3","4"]},"DatasetOwnerDTO":{"type":"object","properties":{"type":{"type":"object","$ref":"#/components/schemas/DatasetOwnerTypeDTO"},"user":{"type":"object","$ref":"#/components/schemas/UserContentDTO"},"userGroup":{"type":"object","$ref":"#/components/schemas/UserGroupContentBasicDTO"}},"required":["type"]},"DatasetOwnerTypeDTO":{"type":"string","enum":["user","userGroup"]},"UserContentDTO":{"type":"object","properties":{"email":{"type":"string"},"firstName":{"type":"string"},"fullName":{"type":"string"},"lastName":{"type":"string"},"userId":{"type":"string"}},"required":["email","userId"]},"UserGroupContentBasicDTO":{"type":"object","properties":{"name":{"type":"string"},"userGroupId":{"type":"string"}},"required":["name","userGroupId"]},"DatasetPartitionColumnContentDTO":{"type":"object","properties":{"columnType":{"type":"object","$ref":"#/components/schemas/ColumnTypeDTO"},"name":{"type":"string"}},"required":["columnType","name"]},"ColumnTypeDTO":{"type":"string","enum":["unknown","string","integer","float","time","boolean","date","dateTime"]},"DatasetTimePartitionDTO":{"type":"object","properties":{"partitionColumn":{"type":"object","$ref":"#/components/schemas/DatasetPartitionColumnContentDTO"},"sqlExpression":{"type":"string"},"timePartitionType":{"type":"object","$ref":"#/components/schemas/DatasetTimePartitionTypeDTO"}}},"DatasetTimePartitionTypeDTO":{"type":"string","enum":["disabled","partitionColumn","sqlExpression"]},"ErrorResponse":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"paths":{"/api/v1/datasets/{datasetId}":{"get":{"description":"This endpoint enables you to retrieve a single dataset by its ID from your organization's Soda Cloud account.\n\n## Authorization\n\nOnly users with **View dataset** permission can view a dataset. Soda Cloud Admins have permission to view any dataset. **See [Manage dataset roles](https://go.soda.io/roles-dataset) for more information.**\n\n## Authentication\n\nUser authentication required: `true`\n\nThis 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.\n\n## Tags\n\n`Datasets`\n\n## Rate limiting\n\n1000 requests/60 seconds","operationId":"GET/api/v1/datasets/{datasetId}","parameters":[{"in":"path","name":"datasetId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/DatasetsContentDTO"}}},"description":"Successful response"},"400":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad request"},"401":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not found"},"429":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too many requests"},"500":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal server error"}},"summary":"Get dataset","tags":["Datasets"]}}}}
```

## Update dataset

> This endpoint enables you to update an existing dataset properties in your organization's Soda Cloud account.\
> \
> \## Authorization\
> \
> Only users with \*\*Configure dataset\*\* permission can update dataset properties. Soda Cloud Admins have permission to update all datasets.\*\*See \[Manage dataset roles]\(<https://go.soda.io/roles-dataset>) 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\
> \
> \`Datasets\`\
> \
> \## Rate limiting\
> \
> 100 requests/60 seconds

```json
{"openapi":"3.1.0","info":{"title":"Soda Cloud API v4","version":"v1"},"tags":[{"description":"Soda Cloud API Dataset Endpoints","name":"Datasets"}],"servers":[{"description":"Cloud EU","url":"https://cloud.soda.io"},{"description":"Cloud US","url":"https://cloud.us.soda.io"}],"security":[{"basicAuthApiKey":[]},{"cookieToken":[]}],"components":{"securitySchemes":{"basicAuthApiKey":{"scheme":"basic","type":"http"},"cookieToken":{"in":"cookie","name":"token","type":"apiKey"}},"schemas":{"PublicApiUpdateDatasetDTO":{"type":"object","properties":{"attributes":{"type":"object","$ref":"#/components/schemas/MapOfStringTo_object"},"computeWarehouseOverride":{"type":"object","$ref":"#/components/schemas/UpdateDatasetComputeWarehouseOverrideConfigurationRequestDTO"},"dataDelaySeconds":{"type":"integer","format":"int32"},"diagnosticsWarehouse":{"type":"object","$ref":"#/components/schemas/UpdateDatasetDiagnosticsWarehouseConfigurationRequestDTO"},"label":{"type":"string"},"metricMonitoring":{"type":"object","$ref":"#/components/schemas/UpdateDatasetMetricMonitoringConfigurationRequestDTO"},"owners":{"type":"array","items":{"type":"object","$ref":"#/components/schemas/PublicApiUpdateDatasetOwnerRequestDTO"}},"partitionColumn":{"type":"string","deprecated":true},"profiling":{"type":"object","$ref":"#/components/schemas/UpdateDatasetProfilingConfigurationRequestDTO"},"tags":{"type":"array","items":{"type":"string"}},"timePartition":{"type":"object","$ref":"#/components/schemas/UpdateDatasetTimePartitionRequestDTO"}}},"MapOfStringTo_object":{"type":"object","additionalProperties":true},"UpdateDatasetComputeWarehouseOverrideConfigurationRequestDTO":{"type":"object","properties":{"computeWarehouseConfiguration":{"type":"object","$ref":"#/components/schemas/UpdateDatasetComputeWarehouseOverrideConfigurationRequestDTO_WarehouseConfigurationDTO"},"enabled":{"type":"boolean"}}},"UpdateDatasetComputeWarehouseOverrideConfigurationRequestDTO_WarehouseConfigurationDTO":{"type":"object","properties":{"name":{"type":"string"}},"required":["name"]},"UpdateDatasetDiagnosticsWarehouseConfigurationRequestDTO":{"type":"object","properties":{"failedRowsConfiguration":{"type":"object","$ref":"#/components/schemas/DatasetDiagnosticsWarehouseFailedRowsConfigurationRequest"},"scanAndResultsConfiguration":{"type":"object","$ref":"#/components/schemas/DatasetDiagnosticsWarehouseScanAndResultsConfigurationRequest"},"schema":{"type":"string"}}},"DatasetDiagnosticsWarehouseFailedRowsConfigurationRequest":{"type":"object","properties":{"enabled":{"type":"boolean"},"failedRowSamples":{"type":"object","$ref":"#/components/schemas/FailedRowSamplesDTO"},"failedRowsCollectionStrategy":{"type":"object","$ref":"#/components/schemas/FailedRowsCollectionStrategyDTO"},"maxRowCount":{"type":"integer","format":"int32"},"schema":{"type":"string","deprecated":true},"storageStrategy":{"type":"object","$ref":"#/components/schemas/DiagnosticsWarehouseFailedRowsStorageStrategyDTO"},"uniqueKeyColumnNames":{"type":"array","items":{"type":"string"}}}},"FailedRowSamplesDTO":{"type":"object","properties":{"enabled":{"type":"boolean"},"sampleSize":{"type":"integer","format":"int32"}}},"FailedRowsCollectionStrategyDTO":{"type":"object","properties":{"maxRowCountOverride":{"type":"integer","format":"int32"},"threshold":{"type":"number"},"thresholdCondition":{"type":"object","$ref":"#/components/schemas/ThresholdConditionDTO"},"type":{"type":"object","$ref":"#/components/schemas/FailedRowsCollectionStrategyTypeDTO"}},"required":["threshold","thresholdCondition"]},"ThresholdConditionDTO":{"type":"string","enum":["greaterThan","lessThan"]},"FailedRowsCollectionStrategyTypeDTO":{"type":"string","enum":["useDefaultMaxRowCount","absolute","percentage"]},"DiagnosticsWarehouseFailedRowsStorageStrategyDTO":{"type":"string","enum":["fullFailedRows","uniqueKeys","scansAndResultsOnly"]},"DatasetDiagnosticsWarehouseScanAndResultsConfigurationRequest":{"type":"object","properties":{"enabled":{"type":"boolean"}}},"UpdateDatasetMetricMonitoringConfigurationRequestDTO":{"type":"object","properties":{"datasetMetricMonitorsConfiguration":{"type":"array","items":{"type":"object","$ref":"#/components/schemas/DatasetMetricMonitorConfigurationDTO"}},"enabled":{"type":"boolean"},"historicalMetricCollectionScanStartDate":{"type":"string","format":"date-time"},"scanSchedule":{"type":"object","$ref":"#/components/schemas/ZonedCronDTO"}}},"DatasetMetricMonitorConfigurationDTO":{"type":"object","properties":{"configuration":{"type":"object","$ref":"#/components/schemas/DatasetMonitorConfigurationDTO"},"metricType":{"type":"object","$ref":"#/components/schemas/DatasetMonitorMetricTypeDTO"}},"required":["configuration","metricType"]},"DatasetMonitorConfigurationDTO":{"type":"object","properties":{"exclusionZones":{"type":"array","items":{"type":"object","$ref":"#/components/schemas/ExclusionZoneDTO"}},"isEnabled":{"type":"boolean"},"isSamplingEnabled":{"type":"boolean"},"sensitivity":{"type":"number"},"thresholdStrategy":{"type":"object","$ref":"#/components/schemas/ThresholdStrategyDTO"},"validRange":{"type":"object","$ref":"#/components/schemas/ValidRangeDTO"}}},"ExclusionZoneDTO":{"type":"object","properties":{"lowerLimit":{"type":"number"},"singleValue":{"type":"boolean"},"upperLimit":{"type":"number"}},"required":["lowerLimit","upperLimit"]},"ThresholdStrategyDTO":{"type":"object","properties":{"isLowerBoundEnabled":{"type":"boolean"},"isUpperBoundEnabled":{"type":"boolean"}},"required":["isLowerBoundEnabled","isUpperBoundEnabled"]},"ValidRangeDTO":{"type":"object","properties":{"max":{"type":"number"},"min":{"type":"number"}}},"DatasetMonitorMetricTypeDTO":{"type":"string","enum":["rowCount","freshness","schema","rowsInserted","totalRowCountChange","timeliness","recordAnomalyScore"]},"ZonedCronDTO":{"type":"object","properties":{"cronExpression":{"type":"string"},"timezone":{"type":"string"}},"required":["cronExpression","timezone"]},"PublicApiUpdateDatasetOwnerRequestDTO":{"type":"object","properties":{"type":{"type":"object","$ref":"#/components/schemas/DatasetOwnerTypeDTO"},"userGroupId":{"type":"string"},"userId":{"type":"string"}},"required":["type"]},"DatasetOwnerTypeDTO":{"type":"string","enum":["user","userGroup"]},"UpdateDatasetProfilingConfigurationRequestDTO":{"type":"object","properties":{"enabled":{"type":"boolean"},"profilingSamplingStrategy":{"type":"object","$ref":"#/components/schemas/ProfilingSamplingStrategyConfigurationDTO"},"scanSchedule":{"type":"object","$ref":"#/components/schemas/ZonedCronDTO"}}},"ProfilingSamplingStrategyConfigurationDTO":{"type":"object","properties":{"numberOfRows":{"type":"integer","format":"int32"},"numberOfUnits":{"type":"integer","format":"int32"},"unitOfTime":{"type":"object","$ref":"#/components/schemas/UnitOfTimeDTO"}}},"UnitOfTimeDTO":{"type":"string","enum":["hours","days","weeks"]},"UpdateDatasetTimePartitionRequestDTO":{"type":"object","properties":{"partitionColumn":{"type":"string"},"sqlExpression":{"type":"string"}}},"DatasetsContentDTO":{"type":"object","properties":{"attributes":{"type":"object","$ref":"#/components/schemas/MapOfStringTo_object"},"checks":{"type":"integer","format":"int64","description":"Number of active checks on the dataset. Zero means the dataset is not covered by any check, and dataQualityStatus and healthStatus then report pass and 100 without anything having been checked."},"cloudUrl":{"type":"string"},"contractId":{"type":"string"},"dataDelaySeconds":{"type":"integer","format":"int32"},"dataQualityStatus":{"type":"object","$ref":"#/components/schemas/DataQualityStatusDTO","description":"Worst last result across the dataset's active checks: fail if any check failed, warn if any check warned, pass otherwise. A dataset with no checks, or whose checks have never run, also reads as pass, so this is not on its own evidence that the data is good: read it together with checks."},"datasetQualifiedName":{"type":"string"},"datasource":{"type":"object","$ref":"#/components/schemas/DatasourcePropertiesDTO"},"hasContract":{"type":"boolean"},"healthStatus":{"type":"integer","format":"int32","description":"Percentage of the dataset's active checks whose last result passed, from 0 to 100. A dataset with no active checks reads as 100, so read it together with checks."},"id":{"type":"string"},"incidents":{"type":"integer","format":"int64"},"label":{"type":"string"},"lastUpdated":{"type":"string","format":"date-time"},"name":{"type":"string"},"owners":{"type":"array","items":{"type":"object","$ref":"#/components/schemas/DatasetOwnerDTO"}},"partitionColumn":{"type":"object","$ref":"#/components/schemas/DatasetPartitionColumnContentDTO","deprecated":true},"qualifiedName":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"timePartition":{"type":"object","$ref":"#/components/schemas/DatasetTimePartitionDTO"},"version":{"type":"object","$ref":"#/components/schemas/ModelVersionDTO"}},"required":["checks","cloudUrl","hasContract","healthStatus","id","incidents","name"]},"DataQualityStatusDTO":{"type":"string","enum":["pass","warn","fail"]},"DatasourcePropertiesDTO":{"type":"object","properties":{"label":{"type":"string"},"name":{"type":"string"},"prefix":{"type":"string"},"type":{"type":"string"},"version":{"type":"object","$ref":"#/components/schemas/ModelVersionDTO"}}},"ModelVersionDTO":{"type":"string","enum":["3","4"]},"DatasetOwnerDTO":{"type":"object","properties":{"type":{"type":"object","$ref":"#/components/schemas/DatasetOwnerTypeDTO"},"user":{"type":"object","$ref":"#/components/schemas/UserContentDTO"},"userGroup":{"type":"object","$ref":"#/components/schemas/UserGroupContentBasicDTO"}},"required":["type"]},"UserContentDTO":{"type":"object","properties":{"email":{"type":"string"},"firstName":{"type":"string"},"fullName":{"type":"string"},"lastName":{"type":"string"},"userId":{"type":"string"}},"required":["email","userId"]},"UserGroupContentBasicDTO":{"type":"object","properties":{"name":{"type":"string"},"userGroupId":{"type":"string"}},"required":["name","userGroupId"]},"DatasetPartitionColumnContentDTO":{"type":"object","properties":{"columnType":{"type":"object","$ref":"#/components/schemas/ColumnTypeDTO"},"name":{"type":"string"}},"required":["columnType","name"]},"ColumnTypeDTO":{"type":"string","enum":["unknown","string","integer","float","time","boolean","date","dateTime"]},"DatasetTimePartitionDTO":{"type":"object","properties":{"partitionColumn":{"type":"object","$ref":"#/components/schemas/DatasetPartitionColumnContentDTO"},"sqlExpression":{"type":"string"},"timePartitionType":{"type":"object","$ref":"#/components/schemas/DatasetTimePartitionTypeDTO"}}},"DatasetTimePartitionTypeDTO":{"type":"string","enum":["disabled","partitionColumn","sqlExpression"]},"ErrorResponse":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"paths":{"/api/v1/datasets/{datasetId}":{"post":{"description":"This endpoint enables you to update an existing dataset properties in your organization's Soda Cloud account.\n\n## Authorization\n\nOnly users with **Configure dataset** permission can update dataset properties. Soda Cloud Admins have permission to update all datasets.**See [Manage dataset roles](https://go.soda.io/roles-dataset) for more information.**\n\n## Authentication\n\nUser authentication required: `true`\n\nThis 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.\n\n## Tags\n\n`Datasets`\n\n## Rate limiting\n\n100 requests/60 seconds","operationId":"POST/api/v1/datasets/{datasetId}","parameters":[{"in":"path","name":"datasetId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/PublicApiUpdateDatasetDTO"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/DatasetsContentDTO"}}},"description":"Successful response"},"400":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad request"},"401":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not found"},"429":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too many requests"},"500":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal server error"}},"summary":"Update dataset","tags":["Datasets"]}}}}
```

## Delete dataset

> This endpoint enables you to delete an existing dataset in your organization's Soda Cloud account. \
> \
> Deletion is not immediate and can take some time to complete, depending on the size of your dataset. You can check the status of the deletion by calling the \*\*Get dataset\*\* endpoint.\
> \
> \## Authorization\
> \
> Only users with \*\*Delete dataset\*\* permission can delete a dataset. Soda Cloud Admins have permission to delete any dataset.\*\*See \[Manage dataset roles]\(<https://go.soda.io/roles-dataset>) 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\
> \
> \`Datasets\`\
> \
> \## Rate limiting\
> \
> 10 requests/60 seconds

```json
{"openapi":"3.1.0","info":{"title":"Soda Cloud API v4","version":"v1"},"tags":[{"description":"Soda Cloud API Dataset Endpoints","name":"Datasets"}],"servers":[{"description":"Cloud EU","url":"https://cloud.soda.io"},{"description":"Cloud US","url":"https://cloud.us.soda.io"}],"security":[{"basicAuthApiKey":[]},{"cookieToken":[]}],"components":{"securitySchemes":{"basicAuthApiKey":{"scheme":"basic","type":"http"},"cookieToken":{"in":"cookie","name":"token","type":"apiKey"}},"schemas":{"PublicApiDeleteDatasetResponse":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]},"ErrorResponse":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"paths":{"/api/v1/datasets/{datasetId}":{"delete":{"description":"This endpoint enables you to delete an existing dataset in your organization's Soda Cloud account. \n\nDeletion is not immediate and can take some time to complete, depending on the size of your dataset. You can check the status of the deletion by calling the **Get dataset** endpoint.\n\n## Authorization\n\nOnly users with **Delete dataset** permission can delete a dataset. Soda Cloud Admins have permission to delete any dataset.**See [Manage dataset roles](https://go.soda.io/roles-dataset) for more information.**\n\n## Authentication\n\nUser authentication required: `true`\n\nThis 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.\n\n## Tags\n\n`Datasets`\n\n## Rate limiting\n\n10 requests/60 seconds","operationId":"DELETE/api/v1/datasets/{datasetId}","parameters":[{"in":"path","name":"datasetId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/PublicApiDeleteDatasetResponse"}}},"description":"Successful response"},"400":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad request"},"401":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not found"},"429":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too many requests"},"500":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal server error"}},"summary":"Delete dataset","tags":["Datasets"]}}}}
```

## Set column attribute values in bulk

> Upsert attribute values on the columns of a dataset.\
> \
> The request body maps a column name to a map of attribute-name to value. Setting one attribute on a column does not affect other attribute values on the same column. If any column or attribute name is unknown, or any value has the wrong type, the entire request is rejected and no changes are persisted.\
> \
> Send \`null\` as the value to remove an attribute value from a column. The column and attribute names are still checked, and clearing an attribute that has no value changes nothing.\
> \
> \## 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.\
> \
> \## Authorization\
> \
> Users must have dataset role permission CONFIGURE\_DATASET to execute this call.\
> \
> \## Tags\
> \
> \`Datasets\`\
> \
> \## Rate limiting\
> \
> 60 requests/60 seconds

```json
{"openapi":"3.1.0","info":{"title":"Soda Cloud API v4","version":"v1"},"tags":[{"description":"Soda Cloud API Dataset Endpoints","name":"Datasets"}],"servers":[{"description":"Cloud EU","url":"https://cloud.soda.io"},{"description":"Cloud US","url":"https://cloud.us.soda.io"}],"security":[{"basicAuthApiKey":[]},{"cookieToken":[]}],"components":{"securitySchemes":{"basicAuthApiKey":{"scheme":"basic","type":"http"},"cookieToken":{"in":"cookie","name":"token","type":"apiKey"}},"schemas":{"PublicApiSetColumnAttributesRequestDTO":{"type":"object","properties":{"columnAttributes":{"type":"object","$ref":"#/components/schemas/MapOfStringToMapOfStringTo_object","description":"Column name mapped to the attribute values to set on that column. A null value removes that attribute value from the column."}},"required":["columnAttributes"]},"MapOfStringToMapOfStringTo_object":{"type":"object","additionalProperties":true},"ErrorResponse":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"paths":{"/api/v1/datasets/{datasetId}/columnAttributes":{"post":{"description":"Upsert attribute values on the columns of a dataset.\n\nThe request body maps a column name to a map of attribute-name to value. Setting one attribute on a column does not affect other attribute values on the same column. If any column or attribute name is unknown, or any value has the wrong type, the entire request is rejected and no changes are persisted.\n\nSend `null` as the value to remove an attribute value from a column. The column and attribute names are still checked, and clearing an attribute that has no value changes nothing.\n\n## Authentication\n\nUser authentication required: `true`\n\nThis 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.\n\n## Authorization\n\nUsers must have dataset role permission CONFIGURE_DATASET to execute this call.\n\n## Tags\n\n`Datasets`\n\n## Rate limiting\n\n60 requests/60 seconds","operationId":"POST/api/v1/datasets/{datasetId}/columnAttributes","parameters":[{"in":"path","name":"datasetId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/PublicApiSetColumnAttributesRequestDTO"}}},"required":true},"responses":{"200":{"description":"Successful response","headers":{"Location":{"schema":{"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad request"},"401":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not found"},"429":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too many requests"},"500":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal server error"}},"summary":"Set column attribute values in bulk","tags":["Datasets"]}}}}
```

## Create a column metric monitor

> \*\*Deprecated.\*\* Use \`POST /api/v1/monitors\` instead, with \`datasetId\`, and \`columnName\`, \`metricType\` and \`configuration\` under \`columnMetricMonitor\`. Monitors of V3 datasets can only be created here, because the replacement supports V4 datasets only.\
> \
> This endpoint allows you to create a new column metric monitor for a specific dataset in your organization's Soda Cloud account.\
> \
> \## Authorization\
> \
> Only users with \*\*Manage checks\*\* permission (V3 datasets) or \*\*Manage contracts\*\* permission (V4 datasets) can create column metric monitors. Soda Cloud Admins can create column metric monitors for all datasets.\*\*See \[Manage dataset roles]\(<https://go.soda.io/roles-dataset>) 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\
> \
> \`Datasets\`\
> \
> \## Rate limiting\
> \
> 100 requests/60 seconds

```json
{"openapi":"3.1.0","info":{"title":"Soda Cloud API v4","version":"v1"},"tags":[{"description":"Soda Cloud API Dataset Endpoints","name":"Datasets"}],"servers":[{"description":"Cloud EU","url":"https://cloud.soda.io"},{"description":"Cloud US","url":"https://cloud.us.soda.io"}],"security":[{"basicAuthApiKey":[]},{"cookieToken":[]}],"components":{"securitySchemes":{"basicAuthApiKey":{"scheme":"basic","type":"http"},"cookieToken":{"in":"cookie","name":"token","type":"apiKey"}},"schemas":{"PublicApiCreateColumnMetricMonitorRequestDTO":{"type":"object","properties":{"columnMetricMonitorConfiguration":{"type":"object","$ref":"#/components/schemas/ColumnMetricMonitorConfigurationDTO"},"columnName":{"type":"string"}},"required":["columnMetricMonitorConfiguration","columnName"]},"ColumnMetricMonitorConfigurationDTO":{"type":"object","properties":{"configuration":{"type":"object","$ref":"#/components/schemas/ColumnMonitorConfigurationDTO"},"metricType":{"type":"object","$ref":"#/components/schemas/ColumnMonitorMetricTypeDTO"}},"required":["configuration","metricType"]},"ColumnMonitorConfigurationDTO":{"type":"object","properties":{"groupByColumns":{"type":"array","items":{"type":"object","$ref":"#/components/schemas/GroupByColumnConfigurationDTO"}},"exclusionZones":{"type":"array","items":{"type":"object","$ref":"#/components/schemas/ExclusionZoneDTO"}},"isEnabled":{"type":"boolean"},"isSamplingEnabled":{"type":"boolean"},"sensitivity":{"type":"number"},"thresholdStrategy":{"type":"object","$ref":"#/components/schemas/ThresholdStrategyDTO"},"validRange":{"type":"object","$ref":"#/components/schemas/ValidRangeDTO"}}},"GroupByColumnConfigurationDTO":{"type":"object","properties":{"columnName":{"type":"string"},"excludedValues":{"type":"array","items":{"type":"string"}}},"required":["columnName"]},"ExclusionZoneDTO":{"type":"object","properties":{"lowerLimit":{"type":"number"},"singleValue":{"type":"boolean"},"upperLimit":{"type":"number"}},"required":["lowerLimit","upperLimit"]},"ThresholdStrategyDTO":{"type":"object","properties":{"isLowerBoundEnabled":{"type":"boolean"},"isUpperBoundEnabled":{"type":"boolean"}},"required":["isLowerBoundEnabled","isUpperBoundEnabled"]},"ValidRangeDTO":{"type":"object","properties":{"max":{"type":"number"},"min":{"type":"number"}}},"ColumnMonitorMetricTypeDTO":{"type":"string","enum":["missingPercentage","duplicatePercentage","average","columnFreshness","sum","distinctValuesCount","count","minimumValue","maximumValue","duplicateValuesPercentage","minimumLength","maximumLength","averageLength","standardDeviation","variance","q1","median","q3"]},"PublicApiCreateColumnMetricMonitorResponse":{"type":"object","properties":{"columnMetricMonitor":{"type":"object","$ref":"#/components/schemas/ColumnMetricMonitorDTO"}},"required":["columnMetricMonitor"]},"ColumnMetricMonitorDTO":{"type":"object","properties":{"checkId":{"type":"string"},"columnName":{"type":"string"},"configuration":{"type":"object","$ref":"#/components/schemas/ColumnMonitorConfigurationDTO"},"metricType":{"type":"object","$ref":"#/components/schemas/ColumnMonitorMetricTypeDTO"}},"required":["checkId","columnName","configuration","metricType"]},"ErrorResponse":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"paths":{"/api/v1/datasets/{datasetId}/columnMetricMonitors":{"post":{"deprecated":true,"description":"**Deprecated.** Use `POST /api/v1/monitors` instead, with `datasetId`, and `columnName`, `metricType` and `configuration` under `columnMetricMonitor`. Monitors of V3 datasets can only be created here, because the replacement supports V4 datasets only.\n\nThis endpoint allows you to create a new column metric monitor for a specific dataset in your organization's Soda Cloud account.\n\n## Authorization\n\nOnly users with **Manage checks** permission (V3 datasets) or **Manage contracts** permission (V4 datasets) can create column metric monitors. Soda Cloud Admins can create column metric monitors for all datasets.**See [Manage dataset roles](https://go.soda.io/roles-dataset) for more information.**\n\n## Authentication\n\nUser authentication required: `true`\n\nThis 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.\n\n## Tags\n\n`Datasets`\n\n## Rate limiting\n\n100 requests/60 seconds","operationId":"POST/api/v1/datasets/{datasetId}/columnMetricMonitors","parameters":[{"in":"path","name":"datasetId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/PublicApiCreateColumnMetricMonitorRequestDTO"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/PublicApiCreateColumnMetricMonitorResponse"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad request"},"401":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not found"},"429":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too many requests"},"500":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal server error"}},"summary":"Create a column metric monitor","tags":["Datasets"]}}}}
```

## Update a column metric monitor

> \*\*Deprecated.\*\* Use \`POST /api/v1/monitors/{monitorId}\` instead. Monitors of V3 datasets can only be updated here, because the replacement supports V4 datasets only.\
> \
> This endpoint allows you to update an existing column metric monitor for a specific dataset in your organization's Soda Cloud account.\
> \
> \## Authorization\
> \
> Only users with \*\*Manage checks\*\* permission (V3 datasets) or \*\*Manage contracts\*\* permission (V4 datasets) can update column metric monitors. Soda Cloud Admins can update column metric monitors for all datasets. \*\*See \[Manage dataset roles]\(<https://go.soda.io/roles-dataset>) 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\
> \
> \`Datasets\`\
> \
> \## Rate limiting\
> \
> 100 requests/60 seconds

```json
{"openapi":"3.1.0","info":{"title":"Soda Cloud API v4","version":"v1"},"tags":[{"description":"Soda Cloud API Dataset Endpoints","name":"Datasets"}],"servers":[{"description":"Cloud EU","url":"https://cloud.soda.io"},{"description":"Cloud US","url":"https://cloud.us.soda.io"}],"security":[{"basicAuthApiKey":[]},{"cookieToken":[]}],"components":{"securitySchemes":{"basicAuthApiKey":{"scheme":"basic","type":"http"},"cookieToken":{"in":"cookie","name":"token","type":"apiKey"}},"schemas":{"PublicApiUpdateColumnMetricMonitorRequestDTO":{"type":"object","properties":{"configuration":{"type":"object","$ref":"#/components/schemas/ColumnMonitorConfigurationDTO"}},"required":["configuration"]},"ColumnMonitorConfigurationDTO":{"type":"object","properties":{"groupByColumns":{"type":"array","items":{"type":"object","$ref":"#/components/schemas/GroupByColumnConfigurationDTO"}},"exclusionZones":{"type":"array","items":{"type":"object","$ref":"#/components/schemas/ExclusionZoneDTO"}},"isEnabled":{"type":"boolean"},"isSamplingEnabled":{"type":"boolean"},"sensitivity":{"type":"number"},"thresholdStrategy":{"type":"object","$ref":"#/components/schemas/ThresholdStrategyDTO"},"validRange":{"type":"object","$ref":"#/components/schemas/ValidRangeDTO"}}},"GroupByColumnConfigurationDTO":{"type":"object","properties":{"columnName":{"type":"string"},"excludedValues":{"type":"array","items":{"type":"string"}}},"required":["columnName"]},"ExclusionZoneDTO":{"type":"object","properties":{"lowerLimit":{"type":"number"},"singleValue":{"type":"boolean"},"upperLimit":{"type":"number"}},"required":["lowerLimit","upperLimit"]},"ThresholdStrategyDTO":{"type":"object","properties":{"isLowerBoundEnabled":{"type":"boolean"},"isUpperBoundEnabled":{"type":"boolean"}},"required":["isLowerBoundEnabled","isUpperBoundEnabled"]},"ValidRangeDTO":{"type":"object","properties":{"max":{"type":"number"},"min":{"type":"number"}}},"PublicApiUpdateColumnMetricMonitorResponse":{"type":"object","properties":{"columnMetricMonitor":{"type":"object","$ref":"#/components/schemas/ColumnMetricMonitorDTO"}},"required":["columnMetricMonitor"]},"ColumnMetricMonitorDTO":{"type":"object","properties":{"checkId":{"type":"string"},"columnName":{"type":"string"},"configuration":{"type":"object","$ref":"#/components/schemas/ColumnMonitorConfigurationDTO"},"metricType":{"type":"object","$ref":"#/components/schemas/ColumnMonitorMetricTypeDTO"}},"required":["checkId","columnName","configuration","metricType"]},"ColumnMonitorMetricTypeDTO":{"type":"string","enum":["missingPercentage","duplicatePercentage","average","columnFreshness","sum","distinctValuesCount","count","minimumValue","maximumValue","duplicateValuesPercentage","minimumLength","maximumLength","averageLength","standardDeviation","variance","q1","median","q3"]},"ErrorResponse":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"paths":{"/api/v1/datasets/{datasetId}/columnMetricMonitors/{monitorId}":{"post":{"deprecated":true,"description":"**Deprecated.** Use `POST /api/v1/monitors/{monitorId}` instead. Monitors of V3 datasets can only be updated here, because the replacement supports V4 datasets only.\n\nThis endpoint allows you to update an existing column metric monitor for a specific dataset in your organization's Soda Cloud account.\n\n## Authorization\n\nOnly users with **Manage checks** permission (V3 datasets) or **Manage contracts** permission (V4 datasets) can update column metric monitors. Soda Cloud Admins can update column metric monitors for all datasets. **See [Manage dataset roles](https://go.soda.io/roles-dataset) for more information.**\n\n## Authentication\n\nUser authentication required: `true`\n\nThis 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.\n\n## Tags\n\n`Datasets`\n\n## Rate limiting\n\n100 requests/60 seconds","operationId":"POST/api/v1/datasets/{datasetId}/columnMetricMonitors/{monitorId}","parameters":[{"in":"path","name":"datasetId","required":true,"schema":{"type":"string"}},{"in":"path","name":"monitorId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/PublicApiUpdateColumnMetricMonitorRequestDTO"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/PublicApiUpdateColumnMetricMonitorResponse"}}},"description":"Successful response"},"400":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad request"},"401":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not found"},"429":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too many requests"},"500":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal server error"}},"summary":"Update a column metric monitor","tags":["Datasets"]}}}}
```

## Delete a column metric monitor

> \*\*Deprecated.\*\* Use \`DELETE /api/v1/monitors/{monitorId}\` instead. Monitors of V3 datasets can only be deleted here, because the replacement supports V4 datasets only.\
> \
> This endpoint allows you to delete a column metric monitor for a specific dataset in your organization's Soda Cloud account.\
> \
> \## Authorization\
> \
> Only users with \*\*Manage checks\*\* permission (V3 datasets) or \*\*Manage contracts\*\* permission (V4 datasets) can delete column metric monitors. Soda Cloud Admins can delete column metric monitors for all datasets. \*\*See \[Manage dataset roles]\(<https://go.soda.io/roles-dataset>) 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\
> \
> \`Datasets\`\
> \
> \## Rate limiting\
> \
> 100 requests/60 seconds

```json
{"openapi":"3.1.0","info":{"title":"Soda Cloud API v4","version":"v1"},"tags":[{"description":"Soda Cloud API Dataset Endpoints","name":"Datasets"}],"servers":[{"description":"Cloud EU","url":"https://cloud.soda.io"},{"description":"Cloud US","url":"https://cloud.us.soda.io"}],"security":[{"basicAuthApiKey":[]},{"cookieToken":[]}],"components":{"securitySchemes":{"basicAuthApiKey":{"scheme":"basic","type":"http"},"cookieToken":{"in":"cookie","name":"token","type":"apiKey"}},"schemas":{"PublicApiDeleteColumnMetricMonitorResponse":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]},"ErrorResponse":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"paths":{"/api/v1/datasets/{datasetId}/columnMetricMonitors/{monitorId}":{"delete":{"deprecated":true,"description":"**Deprecated.** Use `DELETE /api/v1/monitors/{monitorId}` instead. Monitors of V3 datasets can only be deleted here, because the replacement supports V4 datasets only.\n\nThis endpoint allows you to delete a column metric monitor for a specific dataset in your organization's Soda Cloud account.\n\n## Authorization\n\nOnly users with **Manage checks** permission (V3 datasets) or **Manage contracts** permission (V4 datasets) can delete column metric monitors. Soda Cloud Admins can delete column metric monitors for all datasets. **See [Manage dataset roles](https://go.soda.io/roles-dataset) for more information.**\n\n## Authentication\n\nUser authentication required: `true`\n\nThis 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.\n\n## Tags\n\n`Datasets`\n\n## Rate limiting\n\n100 requests/60 seconds","operationId":"DELETE/api/v1/datasets/{datasetId}/columnMetricMonitors/{monitorId}","parameters":[{"in":"path","name":"datasetId","required":true,"schema":{"type":"string"}},{"in":"path","name":"monitorId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/PublicApiDeleteColumnMetricMonitorResponse"}}},"description":"Successful response"},"400":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad request"},"401":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not found"},"429":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too many requests"},"500":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal server error"}},"summary":"Delete a column metric monitor","tags":["Datasets"]}}}}
```

## List the active columns of a dataset with their attribute values

> Returns the active columns of a dataset, each with the attribute values currently assigned to it.\
> \
> Columns are ordered by name ascending. Columns with no assigned attribute values are returned with an empty \`attributes\` map.\
> \
> 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 1000.\
> \
> \- \`page\`: Supply a non-negative integer. The default value is 0.\
> \
> \## 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.\
> \
> \## Authorization\
> \
> Users must have dataset role permission VIEW to execute this call.\
> \
> \## Tags\
> \
> \`Datasets\`\
> \
> \## Rate limiting\
> \
> 1000 requests/60 seconds

```json
{"openapi":"3.1.0","info":{"title":"Soda Cloud API v4","version":"v1"},"tags":[{"description":"Soda Cloud API Dataset Endpoints","name":"Datasets"}],"servers":[{"description":"Cloud EU","url":"https://cloud.soda.io"},{"description":"Cloud US","url":"https://cloud.us.soda.io"}],"security":[{"basicAuthApiKey":[]},{"cookieToken":[]}],"components":{"securitySchemes":{"basicAuthApiKey":{"scheme":"basic","type":"http"},"cookieToken":{"in":"cookie","name":"token","type":"apiKey"}},"schemas":{"PublicApiListDatasetColumnsResponse":{"type":"object","properties":{"content":{"type":"array","items":{"type":"object","$ref":"#/components/schemas/PublicApiDatasetColumnContentDTO"}},"first":{"type":"boolean"},"last":{"type":"boolean"},"number":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"}},"required":["content","first","last","number","size","totalElements","totalPages"]},"PublicApiDatasetColumnContentDTO":{"type":"object","properties":{"attributes":{"type":"object","$ref":"#/components/schemas/MapOfStringTo_object"},"columnId":{"type":"string"},"columnName":{"type":"string"}},"required":["attributes","columnId","columnName"]},"MapOfStringTo_object":{"type":"object","additionalProperties":true},"ErrorResponse":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"paths":{"/api/v1/datasets/{datasetId}/columns":{"get":{"description":"Returns the active columns of a dataset, each with the attribute values currently assigned to it.\n\nColumns are ordered by name ascending. Columns with no assigned attribute values are returned with an empty `attributes` map.\n\nThis GET is a paginated API that uses the following parameters to request specific details:\n\n- `size`: Supply an integer value between 10 and 1000, inclusive. The default value is 1000.\n\n- `page`: Supply a non-negative integer. The default value is 0.\n\n## Authentication\n\nUser authentication required: `true`\n\nThis 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.\n\n## Authorization\n\nUsers must have dataset role permission VIEW to execute this call.\n\n## Tags\n\n`Datasets`\n\n## Rate limiting\n\n1000 requests/60 seconds","operationId":"GET/api/v1/datasets/{datasetId}/columns","parameters":[{"in":"path","name":"datasetId","required":true,"schema":{"type":"string"}},{"in":"query","name":"page","schema":{"type":"integer","format":"int32"}},{"in":"query","name":"size","schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/PublicApiListDatasetColumnsResponse"}}},"description":"Successful response"},"400":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad request"},"401":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not found"},"429":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too many requests"},"500":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal server error"}},"summary":"List the active columns of a dataset with their attribute values","tags":["Datasets"]}}}}
```

## Get dataset compute warehouse configuration

> This endpoint retrieves the compute warehouse configuration for a specific dataset in your organization's Soda Cloud account. When the compute warehouse configuration is enabled, the warehouse in the configuration will be used for compute-heavy tasks like data contract execution, metric monitoring, and profiling.\
> \
> \## Authorization\
> \
> Only users with \*\*View dataset\*\* permission can retrieve dataset compute warehouse configuration. Soda Cloud Admins have permission to view all datasets.\*\*See \[Manage dataset roles]\(<https://go.soda.io/roles-dataset>) 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\
> \
> \`Datasets\`\
> \
> \## Rate limiting\
> \
> 100 requests/60 seconds

```json
{"openapi":"3.1.0","info":{"title":"Soda Cloud API v4","version":"v1"},"tags":[{"description":"Soda Cloud API Dataset Endpoints","name":"Datasets"}],"servers":[{"description":"Cloud EU","url":"https://cloud.soda.io"},{"description":"Cloud US","url":"https://cloud.us.soda.io"}],"security":[{"basicAuthApiKey":[]},{"cookieToken":[]}],"components":{"securitySchemes":{"basicAuthApiKey":{"scheme":"basic","type":"http"},"cookieToken":{"in":"cookie","name":"token","type":"apiKey"}},"schemas":{"DatasetComputeWarehouseConfigurationDTO":{"type":"object","properties":{"availableWarehouses":{"type":"array","items":{"type":"object","$ref":"#/components/schemas/DatasetComputeWarehouseConfigurationDTO_WarehouseConfigurationDTO"}},"currentWarehouse":{"type":"object","$ref":"#/components/schemas/DatasetComputeWarehouseConfigurationDTO_WarehouseConfigurationDTO"},"datasetWarehouseOverride":{"type":"object","$ref":"#/components/schemas/DatasetComputeWarehouseConfigurationDTO_WarehouseConfigurationDTO"},"defaultWarehouse":{"type":"object","$ref":"#/components/schemas/DatasetComputeWarehouseConfigurationDTO_WarehouseConfigurationDTO"},"enabled":{"type":"boolean"}}},"DatasetComputeWarehouseConfigurationDTO_WarehouseConfigurationDTO":{"type":"object","properties":{"name":{"type":"string"}},"required":["name"]},"ErrorResponse":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"paths":{"/api/v1/datasets/{datasetId}/computeWarehouse":{"get":{"description":"This endpoint retrieves the compute warehouse configuration for a specific dataset in your organization's Soda Cloud account. When the compute warehouse configuration is enabled, the warehouse in the configuration will be used for compute-heavy tasks like data contract execution, metric monitoring, and profiling.\n\n## Authorization\n\nOnly users with **View dataset** permission can retrieve dataset compute warehouse configuration. Soda Cloud Admins have permission to view all datasets.**See [Manage dataset roles](https://go.soda.io/roles-dataset) for more information.**\n\n## Authentication\n\nUser authentication required: `true`\n\nThis 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.\n\n## Tags\n\n`Datasets`\n\n## Rate limiting\n\n100 requests/60 seconds","operationId":"GET/api/v1/datasets/{datasetId}/computeWarehouse","parameters":[{"in":"path","name":"datasetId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/DatasetComputeWarehouseConfigurationDTO"}}},"description":"Successful response"},"400":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad request"},"401":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not found"},"429":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too many requests"},"500":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal server error"}},"summary":"Get dataset compute warehouse configuration","tags":["Datasets"]}}}}
```

## Create a custom SQL monitor

> \*\*Deprecated.\*\* Use \`POST /api/v1/monitors\` instead, with \`datasetId\` and this body under \`customSqlMetricMonitor\`.\
> \
> This endpoint allows you to create a new custom SQL monitor for a specific dataset in your organization's Soda Cloud account.\
> \
> \## Authorization\
> \
> Only users with \*\*Manage contracts\*\* permission can create custom SQL monitors. Soda Cloud Admins can create custom SQL monitors for all datasets.\*\*See \[Manage dataset roles]\(<https://go.soda.io/roles-dataset>) 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\
> \
> \`Datasets\`\
> \
> \## Rate limiting\
> \
> 100 requests/60 seconds

```json
{"openapi":"3.1.0","info":{"title":"Soda Cloud API v4","version":"v1"},"tags":[{"description":"Soda Cloud API Dataset Endpoints","name":"Datasets"}],"servers":[{"description":"Cloud EU","url":"https://cloud.soda.io"},{"description":"Cloud US","url":"https://cloud.us.soda.io"}],"security":[{"basicAuthApiKey":[]},{"cookieToken":[]}],"components":{"securitySchemes":{"basicAuthApiKey":{"scheme":"basic","type":"http"},"cookieToken":{"in":"cookie","name":"token","type":"apiKey"}},"schemas":{"PublicApiCreateCustomSqlMonitorRequestDTO":{"type":"object","properties":{"columnName":{"type":"string"},"configuration":{"type":"object","$ref":"#/components/schemas/CustomSqlMonitorConfigurationDTO"},"monitorName":{"type":"string"}},"required":["configuration","monitorName"]},"CustomSqlMonitorConfigurationDTO":{"type":"object","properties":{"groupByColumnNames":{"type":"array","items":{"type":"string"}},"resultMetric":{"type":"string"},"sqlQuery":{"type":"string"},"exclusionZones":{"type":"array","items":{"type":"object","$ref":"#/components/schemas/ExclusionZoneDTO"}},"isEnabled":{"type":"boolean"},"isSamplingEnabled":{"type":"boolean"},"sensitivity":{"type":"number"},"thresholdStrategy":{"type":"object","$ref":"#/components/schemas/ThresholdStrategyDTO"},"validRange":{"type":"object","$ref":"#/components/schemas/ValidRangeDTO"}},"required":["resultMetric","sqlQuery"]},"ExclusionZoneDTO":{"type":"object","properties":{"lowerLimit":{"type":"number"},"singleValue":{"type":"boolean"},"upperLimit":{"type":"number"}},"required":["lowerLimit","upperLimit"]},"ThresholdStrategyDTO":{"type":"object","properties":{"isLowerBoundEnabled":{"type":"boolean"},"isUpperBoundEnabled":{"type":"boolean"}},"required":["isLowerBoundEnabled","isUpperBoundEnabled"]},"ValidRangeDTO":{"type":"object","properties":{"max":{"type":"number"},"min":{"type":"number"}}},"PublicApiCreateCustomSqlMonitorResponse":{"type":"object","properties":{"customSqlMonitor":{"type":"object","$ref":"#/components/schemas/CustomMetricMonitorDTO"}},"required":["customSqlMonitor"]},"CustomMetricMonitorDTO":{"type":"object","properties":{"checkId":{"type":"string"},"columnName":{"type":"string"},"configuration":{"type":"object","$ref":"#/components/schemas/CustomSqlMonitorConfigurationDTO"},"monitorName":{"type":"string"}},"required":["checkId","configuration","monitorName"]},"ErrorResponse":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"paths":{"/api/v1/datasets/{datasetId}/customSqlMonitors":{"post":{"deprecated":true,"description":"**Deprecated.** Use `POST /api/v1/monitors` instead, with `datasetId` and this body under `customSqlMetricMonitor`.\n\nThis endpoint allows you to create a new custom SQL monitor for a specific dataset in your organization's Soda Cloud account.\n\n## Authorization\n\nOnly users with **Manage contracts** permission can create custom SQL monitors. Soda Cloud Admins can create custom SQL monitors for all datasets.**See [Manage dataset roles](https://go.soda.io/roles-dataset) for more information.**\n\n## Authentication\n\nUser authentication required: `true`\n\nThis 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.\n\n## Tags\n\n`Datasets`\n\n## Rate limiting\n\n100 requests/60 seconds","operationId":"POST/api/v1/datasets/{datasetId}/customSqlMonitors","parameters":[{"in":"path","name":"datasetId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/PublicApiCreateCustomSqlMonitorRequestDTO"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/PublicApiCreateCustomSqlMonitorResponse"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad request"},"401":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not found"},"429":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too many requests"},"500":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal server error"}},"summary":"Create a custom SQL monitor","tags":["Datasets"]}}}}
```

## Update a custom SQL monitor

> \*\*Deprecated.\*\* Use \`POST /api/v1/monitors/{monitorId}\` instead.\
> \
> This endpoint allows you to update an existing custom SQL monitor for a specific dataset in your organization's Soda Cloud account.\
> \
> \## Authorization\
> \
> Only users with \*\*Manage contracts\*\* permission can update custom SQL monitors. Soda Cloud Admins can update custom SQL monitors for all datasets. \*\*See \[Manage dataset roles]\(<https://go.soda.io/roles-dataset>) 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\
> \
> \`Datasets\`\
> \
> \## Rate limiting\
> \
> 100 requests/60 seconds

```json
{"openapi":"3.1.0","info":{"title":"Soda Cloud API v4","version":"v1"},"tags":[{"description":"Soda Cloud API Dataset Endpoints","name":"Datasets"}],"servers":[{"description":"Cloud EU","url":"https://cloud.soda.io"},{"description":"Cloud US","url":"https://cloud.us.soda.io"}],"security":[{"basicAuthApiKey":[]},{"cookieToken":[]}],"components":{"securitySchemes":{"basicAuthApiKey":{"scheme":"basic","type":"http"},"cookieToken":{"in":"cookie","name":"token","type":"apiKey"}},"schemas":{"PublicApiUpdateCustomSqlMonitorRequestDTO":{"type":"object","properties":{"columnName":{"type":"string"},"configuration":{"type":"object","$ref":"#/components/schemas/CustomSqlMonitorConfigurationUpdateDTO"},"name":{"type":"string"}}},"CustomSqlMonitorConfigurationUpdateDTO":{"type":"object","properties":{"groupByColumnNames":{"type":"array","items":{"type":"string"}},"resultMetric":{"type":"string"},"sqlQuery":{"type":"string"},"exclusionZones":{"type":"array","items":{"type":"object","$ref":"#/components/schemas/ExclusionZoneDTO"}},"isEnabled":{"type":"boolean"},"isSamplingEnabled":{"type":"boolean"},"sensitivity":{"type":"number"},"thresholdStrategy":{"type":"object","$ref":"#/components/schemas/ThresholdStrategyDTO"},"validRange":{"type":"object","$ref":"#/components/schemas/ValidRangeDTO"}}},"ExclusionZoneDTO":{"type":"object","properties":{"lowerLimit":{"type":"number"},"singleValue":{"type":"boolean"},"upperLimit":{"type":"number"}},"required":["lowerLimit","upperLimit"]},"ThresholdStrategyDTO":{"type":"object","properties":{"isLowerBoundEnabled":{"type":"boolean"},"isUpperBoundEnabled":{"type":"boolean"}},"required":["isLowerBoundEnabled","isUpperBoundEnabled"]},"ValidRangeDTO":{"type":"object","properties":{"max":{"type":"number"},"min":{"type":"number"}}},"PublicApiUpdateCustomSqlMonitorResponse":{"type":"object","properties":{"customSqlMetricMonitor":{"type":"object","$ref":"#/components/schemas/CustomMetricMonitorDTO"}},"required":["customSqlMetricMonitor"]},"CustomMetricMonitorDTO":{"type":"object","properties":{"checkId":{"type":"string"},"columnName":{"type":"string"},"configuration":{"type":"object","$ref":"#/components/schemas/CustomSqlMonitorConfigurationDTO"},"monitorName":{"type":"string"}},"required":["checkId","configuration","monitorName"]},"CustomSqlMonitorConfigurationDTO":{"type":"object","properties":{"groupByColumnNames":{"type":"array","items":{"type":"string"}},"resultMetric":{"type":"string"},"sqlQuery":{"type":"string"},"exclusionZones":{"type":"array","items":{"type":"object","$ref":"#/components/schemas/ExclusionZoneDTO"}},"isEnabled":{"type":"boolean"},"isSamplingEnabled":{"type":"boolean"},"sensitivity":{"type":"number"},"thresholdStrategy":{"type":"object","$ref":"#/components/schemas/ThresholdStrategyDTO"},"validRange":{"type":"object","$ref":"#/components/schemas/ValidRangeDTO"}},"required":["resultMetric","sqlQuery"]},"ErrorResponse":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"paths":{"/api/v1/datasets/{datasetId}/customSqlMonitors/{monitorId}":{"post":{"deprecated":true,"description":"**Deprecated.** Use `POST /api/v1/monitors/{monitorId}` instead.\n\nThis endpoint allows you to update an existing custom SQL monitor for a specific dataset in your organization's Soda Cloud account.\n\n## Authorization\n\nOnly users with **Manage contracts** permission can update custom SQL monitors. Soda Cloud Admins can update custom SQL monitors for all datasets. **See [Manage dataset roles](https://go.soda.io/roles-dataset) for more information.**\n\n## Authentication\n\nUser authentication required: `true`\n\nThis 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.\n\n## Tags\n\n`Datasets`\n\n## Rate limiting\n\n100 requests/60 seconds","operationId":"POST/api/v1/datasets/{datasetId}/customSqlMonitors/{monitorId}","parameters":[{"in":"path","name":"datasetId","required":true,"schema":{"type":"string"}},{"in":"path","name":"monitorId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/PublicApiUpdateCustomSqlMonitorRequestDTO"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/PublicApiUpdateCustomSqlMonitorResponse"}}},"description":"Successful response"},"400":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad request"},"401":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not found"},"429":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too many requests"},"500":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal server error"}},"summary":"Update a custom SQL monitor","tags":["Datasets"]}}}}
```

## Delete a custom SQL monitor

> \*\*Deprecated.\*\* Use \`DELETE /api/v1/monitors/{monitorId}\` instead.\
> \
> This endpoint allows you to delete a custom SQL monitor for a specific dataset in your organization's Soda Cloud account.\
> \
> \## Authorization\
> \
> Only users with \*\*Manage contracts\*\* permission can delete custom SQL monitors. Soda Cloud Admins can delete custom SQL monitors for all datasets. \*\*See \[Manage dataset roles]\(<https://go.soda.io/roles-dataset>) 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\
> \
> \`Datasets\`\
> \
> \## Rate limiting\
> \
> 100 requests/60 seconds

```json
{"openapi":"3.1.0","info":{"title":"Soda Cloud API v4","version":"v1"},"tags":[{"description":"Soda Cloud API Dataset Endpoints","name":"Datasets"}],"servers":[{"description":"Cloud EU","url":"https://cloud.soda.io"},{"description":"Cloud US","url":"https://cloud.us.soda.io"}],"security":[{"basicAuthApiKey":[]},{"cookieToken":[]}],"components":{"securitySchemes":{"basicAuthApiKey":{"scheme":"basic","type":"http"},"cookieToken":{"in":"cookie","name":"token","type":"apiKey"}},"schemas":{"PublicApiDeleteCustomSqlMonitorResponse":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]},"ErrorResponse":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"paths":{"/api/v1/datasets/{datasetId}/customSqlMonitors/{monitorId}":{"delete":{"deprecated":true,"description":"**Deprecated.** Use `DELETE /api/v1/monitors/{monitorId}` instead.\n\nThis endpoint allows you to delete a custom SQL monitor for a specific dataset in your organization's Soda Cloud account.\n\n## Authorization\n\nOnly users with **Manage contracts** permission can delete custom SQL monitors. Soda Cloud Admins can delete custom SQL monitors for all datasets. **See [Manage dataset roles](https://go.soda.io/roles-dataset) for more information.**\n\n## Authentication\n\nUser authentication required: `true`\n\nThis 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.\n\n## Tags\n\n`Datasets`\n\n## Rate limiting\n\n100 requests/60 seconds","operationId":"DELETE/api/v1/datasets/{datasetId}/customSqlMonitors/{monitorId}","parameters":[{"in":"path","name":"datasetId","required":true,"schema":{"type":"string"}},{"in":"path","name":"monitorId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/PublicApiDeleteCustomSqlMonitorResponse"}}},"description":"Successful response"},"400":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad request"},"401":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not found"},"429":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too many requests"},"500":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal server error"}},"summary":"Delete a custom SQL monitor","tags":["Datasets"]}}}}
```

## Get dataset diagnostics warehouse information

> This endpoint allows you to retrieve detailed diagnostics warehouse information for a specific dataset in your organization's Soda Cloud account. The diagnostics warehouse collects scan-related data and securely forwards it to the customer's warehouse for storage and analysis.\
> \
> \`schema\`, \`failedRowsConfiguration\` and \`scanAndResultsConfiguration\` hold only the settings stored on the dataset itself. \`effectiveConfiguration\` holds the configuration the runner actually uses for this dataset, once the settings of its datasource are merged in. It is read-only: \`POST /api/v1/datasets/{datasetId}\` ignores it.\
> \
> How the values in \`effectiveConfiguration\` are combined:\
> \- \`failedRowsConfiguration.enabled\` is \`true\` only when the datasource diagnostics warehouse, its failed rows collection and the dataset failed rows collection are all on.\
> \- \`scanAndResultsConfiguration.enabled\` is \`true\` only when the datasource diagnostics warehouse and both scan and results settings are on. A dataset with failed rows settings but no scan and results settings of its own follows its failed rows value.\
> \- A dataset without diagnostics warehouse settings of its own has nothing written for it, so both are \`false\`.\
> \- \`schema\`, \`maxRowCount\`, \`failedRowsCollectionStrategy\` and \`failedRowSamples\` are the dataset value when it is set, and the datasource value otherwise. \`failedRowSamples.enabled\` is also \`false\` while failed row samples are not enabled for your organization.\
> \- \`storageStrategy\` and \`uniqueKeyColumnNames\` come from the dataset only.\
> \
> \## Authorization\
> \
> Only users with \*\*View dataset\*\* permission can view dataset diagnostics warehouse. Soda Cloud Admins have access to diagnostics warehouse information for all datasets.\*\*See \[Manage dataset roles]\(<https://go.soda.io/roles-dataset>) 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\
> \
> \`Datasets\`\
> \
> \## Rate limiting\
> \
> 1000 requests/60 seconds

```json
{"openapi":"3.1.0","info":{"title":"Soda Cloud API v4","version":"v1"},"tags":[{"description":"Soda Cloud API Dataset Endpoints","name":"Datasets"}],"servers":[{"description":"Cloud EU","url":"https://cloud.soda.io"},{"description":"Cloud US","url":"https://cloud.us.soda.io"}],"security":[{"basicAuthApiKey":[]},{"cookieToken":[]}],"components":{"securitySchemes":{"basicAuthApiKey":{"scheme":"basic","type":"http"},"cookieToken":{"in":"cookie","name":"token","type":"apiKey"}},"schemas":{"PublicApiDatasetDiagnosticsWarehouseResponse":{"type":"object","properties":{"effectiveConfiguration":{"type":"object","$ref":"#/components/schemas/PublicApiDatasetDiagnosticsWarehouseResponse_EffectiveConfigurationDTO","description":"What applies to this dataset once the settings of its datasource are merged in. Read-only: `POST /api/v1/datasets/{datasetId}` ignores it."},"failedRowsConfiguration":{"type":"object","$ref":"#/components/schemas/PublicApiDatasetDiagnosticsWarehouseResponse_DiagnosticsWarehouseFailedRowsConfigurationDTO"},"scanAndResultsConfiguration":{"type":"object","$ref":"#/components/schemas/PublicApiDatasetDiagnosticsWarehouseResponse_DiagnosticsWarehouseScanAndResultsConfigurationDTO"},"schema":{"oneOf":[{"type":"string"},{"type":"null"}]}}},"PublicApiDatasetDiagnosticsWarehouseResponse_EffectiveConfigurationDTO":{"type":"object","properties":{"datasourceId":{"type":"string"},"failedRowsConfiguration":{"type":"object","$ref":"#/components/schemas/PublicApiDatasetDiagnosticsWarehouseResponse_EffectiveFailedRowsConfigurationDTO"},"scanAndResultsConfiguration":{"type":"object","$ref":"#/components/schemas/PublicApiDatasetDiagnosticsWarehouseResponse_DiagnosticsWarehouseScanAndResultsConfigurationDTO"},"schema":{"oneOf":[{"type":"string"},{"type":"null"}]}}},"PublicApiDatasetDiagnosticsWarehouseResponse_EffectiveFailedRowsConfigurationDTO":{"type":"object","properties":{"enabled":{"type":"boolean"},"failedRowSamples":{"type":"object","$ref":"#/components/schemas/FailedRowSamplesDTO"},"failedRowsCollectionStrategy":{"type":"object","$ref":"#/components/schemas/FailedRowsCollectionStrategyDTO"},"maxRowCount":{"type":"integer","format":"int32"},"storageStrategy":{"type":"object","$ref":"#/components/schemas/DiagnosticsWarehouseFailedRowsStorageStrategyDTO"},"uniqueKeyColumnNames":{"type":"array","items":{"type":"string"}}}},"FailedRowSamplesDTO":{"type":"object","properties":{"enabled":{"type":"boolean"},"sampleSize":{"type":"integer","format":"int32"}}},"FailedRowsCollectionStrategyDTO":{"type":"object","properties":{"maxRowCountOverride":{"type":"integer","format":"int32"},"threshold":{"type":"number"},"thresholdCondition":{"type":"object","$ref":"#/components/schemas/ThresholdConditionDTO"},"type":{"type":"object","$ref":"#/components/schemas/FailedRowsCollectionStrategyTypeDTO"}},"required":["threshold","thresholdCondition"]},"ThresholdConditionDTO":{"type":"string","enum":["greaterThan","lessThan"]},"FailedRowsCollectionStrategyTypeDTO":{"type":"string","enum":["useDefaultMaxRowCount","absolute","percentage"]},"DiagnosticsWarehouseFailedRowsStorageStrategyDTO":{"type":"string","enum":["fullFailedRows","uniqueKeys","scansAndResultsOnly"]},"PublicApiDatasetDiagnosticsWarehouseResponse_DiagnosticsWarehouseScanAndResultsConfigurationDTO":{"type":"object","properties":{"enabled":{"type":"boolean"}}},"PublicApiDatasetDiagnosticsWarehouseResponse_DiagnosticsWarehouseFailedRowsConfigurationDTO":{"type":"object","properties":{"enabled":{"type":"boolean"},"failedRowSamples":{"type":"object","$ref":"#/components/schemas/FailedRowSamplesDTO"},"failedRowsCollectionStrategy":{"type":"object","$ref":"#/components/schemas/FailedRowsCollectionStrategyDTO"},"maxRowCount":{"type":"integer","format":"int32"},"state":{"type":"object","$ref":"#/components/schemas/FailedRowsConfigurationStateDTO"},"storageStrategy":{"type":"object","$ref":"#/components/schemas/DiagnosticsWarehouseFailedRowsStorageStrategyDTO"},"uniqueKeyColumnNames":{"type":"array","items":{"type":"string"}}}},"FailedRowsConfigurationStateDTO":{"type":"string","enum":["ready","doNotDetectAutomatically","awaitingPrimaryKeysInformationFromAgent","awaitingPrimaryKeysInformationFromRunner","errorMissingUniqueKeys"]},"ErrorResponse":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"paths":{"/api/v1/datasets/{datasetId}/diagnosticsWarehouse":{"get":{"description":"This endpoint allows you to retrieve detailed diagnostics warehouse information for a specific dataset in your organization's Soda Cloud account. The diagnostics warehouse collects scan-related data and securely forwards it to the customer's warehouse for storage and analysis.\n\n`schema`, `failedRowsConfiguration` and `scanAndResultsConfiguration` hold only the settings stored on the dataset itself. `effectiveConfiguration` holds the configuration the runner actually uses for this dataset, once the settings of its datasource are merged in. It is read-only: `POST /api/v1/datasets/{datasetId}` ignores it.\n\nHow the values in `effectiveConfiguration` are combined:\n- `failedRowsConfiguration.enabled` is `true` only when the datasource diagnostics warehouse, its failed rows collection and the dataset failed rows collection are all on.\n- `scanAndResultsConfiguration.enabled` is `true` only when the datasource diagnostics warehouse and both scan and results settings are on. A dataset with failed rows settings but no scan and results settings of its own follows its failed rows value.\n- A dataset without diagnostics warehouse settings of its own has nothing written for it, so both are `false`.\n- `schema`, `maxRowCount`, `failedRowsCollectionStrategy` and `failedRowSamples` are the dataset value when it is set, and the datasource value otherwise. `failedRowSamples.enabled` is also `false` while failed row samples are not enabled for your organization.\n- `storageStrategy` and `uniqueKeyColumnNames` come from the dataset only.\n\n## Authorization\n\nOnly users with **View dataset** permission can view dataset diagnostics warehouse. Soda Cloud Admins have access to diagnostics warehouse information for all datasets.**See [Manage dataset roles](https://go.soda.io/roles-dataset) for more information.**\n\n## Authentication\n\nUser authentication required: `true`\n\nThis 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.\n\n## Tags\n\n`Datasets`\n\n## Rate limiting\n\n1000 requests/60 seconds","operationId":"GET/api/v1/datasets/{datasetId}/diagnosticsWarehouse","parameters":[{"in":"path","name":"datasetId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/PublicApiDatasetDiagnosticsWarehouseResponse"}}},"description":"Successful response"},"400":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad request"},"401":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not found"},"429":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too many requests"},"500":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal server error"}},"summary":"Get dataset diagnostics warehouse information","tags":["Datasets"]}}}}
```

## Get dataset metric monitoring configuration information

> This endpoint allows you to retrieve detailed metric monitoring configuration information for a specific dataset in your organization's Soda Cloud account.\
> \
> \## Authorization\
> \
> Only users with \*\*View dataset\*\* permission can view dataset metric monitoring configuration. Soda Cloud Admins have access to metric monitoring configuration information for all datasets.\*\*See \[Manage dataset roles]\(<https://go.soda.io/roles-dataset>) 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\
> \
> \`Datasets\`\
> \
> \## Rate limiting\
> \
> 1000 requests/60 seconds

```json
{"openapi":"3.1.0","info":{"title":"Soda Cloud API v4","version":"v1"},"tags":[{"description":"Soda Cloud API Dataset Endpoints","name":"Datasets"}],"servers":[{"description":"Cloud EU","url":"https://cloud.soda.io"},{"description":"Cloud US","url":"https://cloud.us.soda.io"}],"security":[{"basicAuthApiKey":[]},{"cookieToken":[]}],"components":{"securitySchemes":{"basicAuthApiKey":{"scheme":"basic","type":"http"},"cookieToken":{"in":"cookie","name":"token","type":"apiKey"}},"schemas":{"PublicApiDatasetMetricMonitoringResponse":{"type":"object","properties":{"columnMetricMonitors":{"type":"array","items":{"type":"object","$ref":"#/components/schemas/ColumnMetricMonitorDTO"}},"customSqlMetricMonitors":{"type":"array","items":{"type":"object","$ref":"#/components/schemas/CustomMetricMonitorDTO"}},"dataDelaySeconds":{"type":"integer","format":"int32"},"datasetId":{"type":"string"},"datasetMetricMonitorsConfiguration":{"type":"array","items":{"type":"object","$ref":"#/components/schemas/DatasetMetricMonitorConfigurationDTO"}},"enabled":{"type":"boolean"},"historicalMetricCollectionScanStartDate":{"type":"string","format":"date-time"},"partitionColumn":{"type":"string","deprecated":true},"scanSchedule":{"type":"object","$ref":"#/components/schemas/ZonedCronDTO"},"timePartition":{"type":"object","$ref":"#/components/schemas/DatasetTimePartitionDTO"}}},"ColumnMetricMonitorDTO":{"type":"object","properties":{"checkId":{"type":"string"},"columnName":{"type":"string"},"configuration":{"type":"object","$ref":"#/components/schemas/ColumnMonitorConfigurationDTO"},"metricType":{"type":"object","$ref":"#/components/schemas/ColumnMonitorMetricTypeDTO"}},"required":["checkId","columnName","configuration","metricType"]},"ColumnMonitorConfigurationDTO":{"type":"object","properties":{"groupByColumns":{"type":"array","items":{"type":"object","$ref":"#/components/schemas/GroupByColumnConfigurationDTO"}},"exclusionZones":{"type":"array","items":{"type":"object","$ref":"#/components/schemas/ExclusionZoneDTO"}},"isEnabled":{"type":"boolean"},"isSamplingEnabled":{"type":"boolean"},"sensitivity":{"type":"number"},"thresholdStrategy":{"type":"object","$ref":"#/components/schemas/ThresholdStrategyDTO"},"validRange":{"type":"object","$ref":"#/components/schemas/ValidRangeDTO"}}},"GroupByColumnConfigurationDTO":{"type":"object","properties":{"columnName":{"type":"string"},"excludedValues":{"type":"array","items":{"type":"string"}}},"required":["columnName"]},"ExclusionZoneDTO":{"type":"object","properties":{"lowerLimit":{"type":"number"},"singleValue":{"type":"boolean"},"upperLimit":{"type":"number"}},"required":["lowerLimit","upperLimit"]},"ThresholdStrategyDTO":{"type":"object","properties":{"isLowerBoundEnabled":{"type":"boolean"},"isUpperBoundEnabled":{"type":"boolean"}},"required":["isLowerBoundEnabled","isUpperBoundEnabled"]},"ValidRangeDTO":{"type":"object","properties":{"max":{"type":"number"},"min":{"type":"number"}}},"ColumnMonitorMetricTypeDTO":{"type":"string","enum":["missingPercentage","duplicatePercentage","average","columnFreshness","sum","distinctValuesCount","count","minimumValue","maximumValue","duplicateValuesPercentage","minimumLength","maximumLength","averageLength","standardDeviation","variance","q1","median","q3"]},"CustomMetricMonitorDTO":{"type":"object","properties":{"checkId":{"type":"string"},"columnName":{"type":"string"},"configuration":{"type":"object","$ref":"#/components/schemas/CustomSqlMonitorConfigurationDTO"},"monitorName":{"type":"string"}},"required":["checkId","configuration","monitorName"]},"CustomSqlMonitorConfigurationDTO":{"type":"object","properties":{"groupByColumnNames":{"type":"array","items":{"type":"string"}},"resultMetric":{"type":"string"},"sqlQuery":{"type":"string"},"exclusionZones":{"type":"array","items":{"type":"object","$ref":"#/components/schemas/ExclusionZoneDTO"}},"isEnabled":{"type":"boolean"},"isSamplingEnabled":{"type":"boolean"},"sensitivity":{"type":"number"},"thresholdStrategy":{"type":"object","$ref":"#/components/schemas/ThresholdStrategyDTO"},"validRange":{"type":"object","$ref":"#/components/schemas/ValidRangeDTO"}},"required":["resultMetric","sqlQuery"]},"DatasetMetricMonitorConfigurationDTO":{"type":"object","properties":{"configuration":{"type":"object","$ref":"#/components/schemas/DatasetMonitorConfigurationDTO"},"metricType":{"type":"object","$ref":"#/components/schemas/DatasetMonitorMetricTypeDTO"}},"required":["configuration","metricType"]},"DatasetMonitorConfigurationDTO":{"type":"object","properties":{"exclusionZones":{"type":"array","items":{"type":"object","$ref":"#/components/schemas/ExclusionZoneDTO"}},"isEnabled":{"type":"boolean"},"isSamplingEnabled":{"type":"boolean"},"sensitivity":{"type":"number"},"thresholdStrategy":{"type":"object","$ref":"#/components/schemas/ThresholdStrategyDTO"},"validRange":{"type":"object","$ref":"#/components/schemas/ValidRangeDTO"}}},"DatasetMonitorMetricTypeDTO":{"type":"string","enum":["rowCount","freshness","schema","rowsInserted","totalRowCountChange","timeliness","recordAnomalyScore"]},"ZonedCronDTO":{"type":"object","properties":{"cronExpression":{"type":"string"},"timezone":{"type":"string"}},"required":["cronExpression","timezone"]},"DatasetTimePartitionDTO":{"type":"object","properties":{"partitionColumn":{"type":"object","$ref":"#/components/schemas/DatasetPartitionColumnContentDTO"},"sqlExpression":{"type":"string"},"timePartitionType":{"type":"object","$ref":"#/components/schemas/DatasetTimePartitionTypeDTO"}}},"DatasetPartitionColumnContentDTO":{"type":"object","properties":{"columnType":{"type":"object","$ref":"#/components/schemas/ColumnTypeDTO"},"name":{"type":"string"}},"required":["columnType","name"]},"ColumnTypeDTO":{"type":"string","enum":["unknown","string","integer","float","time","boolean","date","dateTime"]},"DatasetTimePartitionTypeDTO":{"type":"string","enum":["disabled","partitionColumn","sqlExpression"]},"ErrorResponse":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"paths":{"/api/v1/datasets/{datasetId}/metricMonitoring":{"get":{"description":"This endpoint allows you to retrieve detailed metric monitoring configuration information for a specific dataset in your organization's Soda Cloud account.\n\n## Authorization\n\nOnly users with **View dataset** permission can view dataset metric monitoring configuration. Soda Cloud Admins have access to metric monitoring configuration information for all datasets.**See [Manage dataset roles](https://go.soda.io/roles-dataset) for more information.**\n\n## Authentication\n\nUser authentication required: `true`\n\nThis 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.\n\n## Tags\n\n`Datasets`\n\n## Rate limiting\n\n1000 requests/60 seconds","operationId":"GET/api/v1/datasets/{datasetId}/metricMonitoring","parameters":[{"in":"path","name":"datasetId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/PublicApiDatasetMetricMonitoringResponse"}}},"description":"Successful response"},"400":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad request"},"401":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not found"},"429":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too many requests"},"500":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal server error"}},"summary":"Get dataset metric monitoring configuration information","tags":["Datasets"]}}}}
```

## Run historical metric collection for a dataset

> This endpoint triggers a historical metric collection scan for a specific dataset in your organization's Soda Cloud account.\
> \
> The dataset must have metric monitoring enabled and a historical collection scan definition configured.\
> \
> The response includes the scan ID and a Location header pointing to the scan status endpoint.\
> \
> \## Authorization\
> \
> Only users with \*\*Manage contracts\*\* permission can run historical metric collection. Soda Cloud Admins have access to run historical metric collection for all datasets. \*\*See \[Manage dataset roles]\(<https://go.soda.io/roles-dataset>) 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\
> \
> \`Datasets\`\
> \
> \## Rate limiting\
> \
> 10 requests/60 seconds

```json
{"openapi":"3.1.0","info":{"title":"Soda Cloud API v4","version":"v1"},"tags":[{"description":"Soda Cloud API Dataset Endpoints","name":"Datasets"}],"servers":[{"description":"Cloud EU","url":"https://cloud.soda.io"},{"description":"Cloud US","url":"https://cloud.us.soda.io"}],"security":[{"basicAuthApiKey":[]},{"cookieToken":[]}],"components":{"securitySchemes":{"basicAuthApiKey":{"scheme":"basic","type":"http"},"cookieToken":{"in":"cookie","name":"token","type":"apiKey"}},"schemas":{"ErrorResponse":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"paths":{"/api/v1/datasets/{datasetId}/metricMonitoring/historicalMetricCollection":{"post":{"description":"This endpoint triggers a historical metric collection scan for a specific dataset in your organization's Soda Cloud account.\n\nThe dataset must have metric monitoring enabled and a historical collection scan definition configured.\n\nThe response includes the scan ID and a Location header pointing to the scan status endpoint.\n\n## Authorization\n\nOnly users with **Manage contracts** permission can run historical metric collection. Soda Cloud Admins have access to run historical metric collection for all datasets. **See [Manage dataset roles](https://go.soda.io/roles-dataset) for more information.**\n\n## Authentication\n\nUser authentication required: `true`\n\nThis 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.\n\n## Tags\n\n`Datasets`\n\n## Rate limiting\n\n10 requests/60 seconds","operationId":"POST/api/v1/datasets/{datasetId}/metricMonitoring/historicalMetricCollection","parameters":[{"in":"path","name":"datasetId","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Created","headers":{"Location":{"schema":{"type":"string"}},"X-Soda-Scan-Id":{"schema":{"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad request"},"403":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not found"},"429":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too many requests"},"500":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal server error"}},"summary":"Run historical metric collection for a dataset","tags":["Datasets"]}}}}
```

## Get dataset profiling information

> This endpoint allows you to retrieve detailed profiling information for a specific dataset in your organization's Soda Cloud account. Profiling information provides insights into the dataset's structure, statistical summaries, and data characteristics.\
> \
> \## Authorization\
> \
> Only users with \*\*Access dataset profiling and sampling\*\* permission can view dataset profiling. Soda Cloud Admins have access to profiling information for all datasets.\*\*See \[Manage dataset roles]\(<https://go.soda.io/roles-dataset>) 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\
> \
> \`Datasets\`\
> \
> \## Rate limiting\
> \
> 1000 requests/60 seconds

```json
{"openapi":"3.1.0","info":{"title":"Soda Cloud API v4","version":"v1"},"tags":[{"description":"Soda Cloud API Dataset Endpoints","name":"Datasets"}],"servers":[{"description":"Cloud EU","url":"https://cloud.soda.io"},{"description":"Cloud US","url":"https://cloud.us.soda.io"}],"security":[{"basicAuthApiKey":[]},{"cookieToken":[]}],"components":{"securitySchemes":{"basicAuthApiKey":{"scheme":"basic","type":"http"},"cookieToken":{"in":"cookie","name":"token","type":"apiKey"}},"schemas":{"PublicApiDatasetProfilingResponse":{"type":"object","properties":{"columnCount":{"type":"integer","format":"int64"},"columns":{"type":"array","items":{"type":"object","$ref":"#/components/schemas/DatasetColumnProfilingContentDTO"}},"datasetId":{"type":"string"},"enabled":{"type":"boolean"},"partitionColumn":{"type":"string","deprecated":true},"profilingTime":{"type":"string","format":"date-time"},"rowCount":{"type":"integer","format":"int64"},"samplingStrategyConfiguration":{"type":"object","$ref":"#/components/schemas/ProfilingSamplingStrategyConfigurationDTO"},"scanSchedule":{"type":"object","$ref":"#/components/schemas/ZonedCronDTO"},"timePartition":{"type":"object","$ref":"#/components/schemas/DatasetTimePartitionDTO"}},"required":["columns","datasetId"]},"DatasetColumnProfilingContentDTO":{"type":"object","properties":{"id":{"type":"string"},"metrics":{"type":"object","$ref":"#/components/schemas/ColumnMetricContentDTO"},"name":{"type":"string"},"type":{"type":"string"}},"required":["id","name","type"]},"ColumnMetricContentDTO":{"type":"object","properties":{"average":{"type":"number"},"averageLength":{"type":"number"},"distinctCount":{"type":"integer","format":"int64"},"extremeValues":{"type":"object","$ref":"#/components/schemas/ExtremeValuesContentDTO"},"frequentValues":{"type":"array","items":{"type":"object","$ref":"#/components/schemas/ValueCountContentDTO"}},"histogram":{"type":"array","items":{"type":"object","$ref":"#/components/schemas/HistogramBinContentDTO"}},"maximum":{"type":"object","$ref":"#/components/schemas/_object"},"maximumLength":{"type":"integer","format":"int32"},"maximumTimestamp":{"type":"string","format":"date-time"},"median":{"type":"number"},"minimum":{"type":"object","$ref":"#/components/schemas/_object"},"minimumLength":{"type":"integer","format":"int32"},"minimumTimestamp":{"type":"string","format":"date-time"},"missingCount":{"type":"integer","format":"int64"},"standardDeviation":{"type":"number"},"sum":{"type":"number"},"variance":{"type":"number"}}},"ExtremeValuesContentDTO":{"type":"object","properties":{"maximum":{"type":"array","items":{"type":"object","$ref":"#/components/schemas/_object"}},"minimum":{"type":"array","items":{"type":"object","$ref":"#/components/schemas/_object"}}}},"_object":{"type":"object"},"ValueCountContentDTO":{"type":"object","properties":{"count":{"type":"integer","format":"int64"},"value":{"type":"object","$ref":"#/components/schemas/_object"}}},"HistogramBinContentDTO":{"type":"object","properties":{"count":{"type":"integer","format":"int64"},"lowerBound":{"type":"number"},"upperBound":{"type":"number"}},"required":["count","lowerBound","upperBound"]},"ProfilingSamplingStrategyConfigurationDTO":{"type":"object","properties":{"numberOfRows":{"type":"integer","format":"int32"},"numberOfUnits":{"type":"integer","format":"int32"},"unitOfTime":{"type":"object","$ref":"#/components/schemas/UnitOfTimeDTO"}}},"UnitOfTimeDTO":{"type":"string","enum":["hours","days","weeks"]},"ZonedCronDTO":{"type":"object","properties":{"cronExpression":{"type":"string"},"timezone":{"type":"string"}},"required":["cronExpression","timezone"]},"DatasetTimePartitionDTO":{"type":"object","properties":{"partitionColumn":{"type":"object","$ref":"#/components/schemas/DatasetPartitionColumnContentDTO"},"sqlExpression":{"type":"string"},"timePartitionType":{"type":"object","$ref":"#/components/schemas/DatasetTimePartitionTypeDTO"}}},"DatasetPartitionColumnContentDTO":{"type":"object","properties":{"columnType":{"type":"object","$ref":"#/components/schemas/ColumnTypeDTO"},"name":{"type":"string"}},"required":["columnType","name"]},"ColumnTypeDTO":{"type":"string","enum":["unknown","string","integer","float","time","boolean","date","dateTime"]},"DatasetTimePartitionTypeDTO":{"type":"string","enum":["disabled","partitionColumn","sqlExpression"]},"ErrorResponse":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"paths":{"/api/v1/datasets/{datasetId}/profiling":{"get":{"description":"This endpoint allows you to retrieve detailed profiling information for a specific dataset in your organization's Soda Cloud account. Profiling information provides insights into the dataset's structure, statistical summaries, and data characteristics.\n\n## Authorization\n\nOnly users with **Access dataset profiling and sampling** permission can view dataset profiling. Soda Cloud Admins have access to profiling information for all datasets.**See [Manage dataset roles](https://go.soda.io/roles-dataset) for more information.**\n\n## Authentication\n\nUser authentication required: `true`\n\nThis 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.\n\n## Tags\n\n`Datasets`\n\n## Rate limiting\n\n1000 requests/60 seconds","operationId":"GET/api/v1/datasets/{datasetId}/profiling","parameters":[{"in":"path","name":"datasetId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/PublicApiDatasetProfilingResponse"}}},"description":"Successful response"},"400":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad request"},"401":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not found"},"429":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too many requests"},"500":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal server error"}},"summary":"Get dataset profiling information","tags":["Datasets"]}}}}
```

## List dataset responsibilities

> This endpoint enables you to gather information about the user and user groups permissions assigned to a dataset, and their associated roles in your organization's Soda Cloud account.\
> \
> This GET is a paginated API that uses the following parameters to request specific details:\
> \
> \- \`size\`: Supply an integer value between 1 and 100, inclusive. The default value is 100.\
> \
> \- \`page\`: Supply an integer value. The default value is 0.\
> \
> \## Authorization\
> \
> Soda only returns the dataset responsibilities to which the user has \*\*View dataset\*\* permissions. Soda Cloud Admins have access to all dataset responsibilities.\*\*See \[Manage dataset roles]\(<https://go.soda.io/roles-dataset>) 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\
> \
> \`Datasets\`\
> \
> \## Rate limiting\
> \
> 100 requests/60 seconds

```json
{"openapi":"3.1.0","info":{"title":"Soda Cloud API v4","version":"v1"},"tags":[{"description":"Soda Cloud API Dataset Endpoints","name":"Datasets"}],"servers":[{"description":"Cloud EU","url":"https://cloud.soda.io"},{"description":"Cloud US","url":"https://cloud.us.soda.io"}],"security":[{"basicAuthApiKey":[]},{"cookieToken":[]}],"components":{"securitySchemes":{"basicAuthApiKey":{"scheme":"basic","type":"http"},"cookieToken":{"in":"cookie","name":"token","type":"apiKey"}},"schemas":{"PublicApiDatasetResponsibilitiesResponse":{"type":"object","properties":{"content":{"type":"array","items":{"type":"object","$ref":"#/components/schemas/DatasetResponsibilityContentDTO"}},"first":{"type":"boolean"},"last":{"type":"boolean"},"number":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"}},"required":["content","first","last","number","size","totalElements","totalPages"]},"DatasetResponsibilityContentDTO":{"type":"object","properties":{"managed":{"type":"boolean"},"role":{"type":"object","$ref":"#/components/schemas/DatasetRoleContentDTO"},"type":{"type":"object","$ref":"#/components/schemas/ResponsibilityTypeDTO"},"userGroupId":{"type":"string"},"userId":{"type":"string"}},"required":["managed","role","type"]},"DatasetRoleContentDTO":{"type":"object","properties":{"configureDataset":{"type":"boolean"},"createCheckProposals":{"type":"boolean"},"deleteDataset":{"type":"boolean"},"executeContracts":{"type":"boolean","deprecated":true},"id":{"type":"string"},"manageChecks":{"type":"boolean"},"manageContracts":{"type":"boolean"},"manageIncidents":{"type":"boolean"},"managePermissions":{"type":"boolean"},"name":{"type":"string"},"publishContracts":{"type":"boolean","deprecated":true},"viewFailedRows":{"type":"boolean"},"viewProfilingAndSamples":{"type":"boolean"}},"required":["id","name"]},"ResponsibilityTypeDTO":{"type":"string","enum":["user","userGroup"]},"ErrorResponse":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"paths":{"/api/v1/datasets/{datasetId}/responsibilities":{"get":{"description":"This endpoint enables you to gather information about the user and user groups permissions assigned to a dataset, and their associated roles in your organization's Soda Cloud account.\n\nThis GET is a paginated API that uses the following parameters to request specific details:\n\n- `size`: Supply an integer value between 1 and 100, inclusive. The default value is 100.\n\n- `page`: Supply an integer value. The default value is 0.\n\n## Authorization\n\nSoda only returns the dataset responsibilities to which the user has **View dataset** permissions. Soda Cloud Admins have access to all dataset responsibilities.**See [Manage dataset roles](https://go.soda.io/roles-dataset) for more information.**\n\n## Authentication\n\nUser authentication required: `true`\n\nThis 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.\n\n## Tags\n\n`Datasets`\n\n## Rate limiting\n\n100 requests/60 seconds","operationId":"GET/api/v1/datasets/{datasetId}/responsibilities","parameters":[{"in":"path","name":"datasetId","required":true,"schema":{"type":"string"}},{"in":"query","name":"page","schema":{"type":"integer","format":"int32"}},{"in":"query","name":"size","schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/PublicApiDatasetResponsibilitiesResponse"}}},"description":"Successful response"},"400":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad request"},"401":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not found"},"429":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too many requests"},"500":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal server error"}},"summary":"List dataset responsibilities","tags":["Datasets"]}}}}
```

## Update dataset responsibilities

> This endpoint enables you to update the user and user groups permissions and their associated roles for a dataset in your organization's Soda Cloud account.\
> \
> \*\*Note\*\*: This API fully replaces the existing responsibilities. The entire list of responsibilities must be provided in the request, including both new and existing entries, as any omissions will result in their removal.\
> \
> \## Authorization\
> \
> Only users with \*\*Manage dataset responsibilities\*\* permission can update dataset responsibilities. Soda Cloud Admins have permission to update all datasets responsibilities.\*\*See \[Manage dataset roles]\(<https://go.soda.io/roles-dataset>) for more information.\*\*The Response of this call, when successful, is \`201\` and contains header \`Location\` which identify the URL where the responsibilities will eventually become available.\
> \
> \## 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\
> \
> \`Datasets\`\
> \
> \## Rate limiting\
> \
> 100 requests/60 seconds

```json
{"openapi":"3.1.0","info":{"title":"Soda Cloud API v4","version":"v1"},"tags":[{"description":"Soda Cloud API Dataset Endpoints","name":"Datasets"}],"servers":[{"description":"Cloud EU","url":"https://cloud.soda.io"},{"description":"Cloud US","url":"https://cloud.us.soda.io"}],"security":[{"basicAuthApiKey":[]},{"cookieToken":[]}],"components":{"securitySchemes":{"basicAuthApiKey":{"scheme":"basic","type":"http"},"cookieToken":{"in":"cookie","name":"token","type":"apiKey"}},"schemas":{"PublicApiUpdateDatasetResponsibilitiesRequestDTO":{"type":"object","properties":{"responsibilities":{"type":"array","items":{"type":"object","$ref":"#/components/schemas/DatasetResponsibilityContentRequestDTO"}}},"required":["responsibilities"]},"DatasetResponsibilityContentRequestDTO":{"type":"object","properties":{"roleId":{"type":"string"},"type":{"type":"object","$ref":"#/components/schemas/ResponsibilityTypeDTO"},"userGroupId":{"type":"string"},"userId":{"type":"string"}},"required":["roleId","type"]},"ResponsibilityTypeDTO":{"type":"string","enum":["user","userGroup"]},"ErrorResponse":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"paths":{"/api/v1/datasets/{datasetId}/responsibilities":{"post":{"description":"This endpoint enables you to update the user and user groups permissions and their associated roles for a dataset in your organization's Soda Cloud account.\n\n**Note**: This API fully replaces the existing responsibilities. The entire list of responsibilities must be provided in the request, including both new and existing entries, as any omissions will result in their removal.\n\n## Authorization\n\nOnly users with **Manage dataset responsibilities** permission can update dataset responsibilities. Soda Cloud Admins have permission to update all datasets responsibilities.**See [Manage dataset roles](https://go.soda.io/roles-dataset) for more information.**The Response of this call, when successful, is `201` and contains header `Location` which identify the URL where the responsibilities will eventually become available.\n\n## Authentication\n\nUser authentication required: `true`\n\nThis 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.\n\n## Tags\n\n`Datasets`\n\n## Rate limiting\n\n100 requests/60 seconds","operationId":"POST/api/v1/datasets/{datasetId}/responsibilities","parameters":[{"in":"path","name":"datasetId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/PublicApiUpdateDatasetResponsibilitiesRequestDTO"}}},"required":true},"responses":{"201":{"description":"Created","headers":{"Location":{"schema":{"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad request"},"401":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not found"},"429":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too many requests"},"500":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal server error"}},"summary":"Update dataset responsibilities","tags":["Datasets"]}}}}
```

## Update a metric monitor

> This endpoint allows you to update an existing dataset metric monitor, column metric monitor or custom SQL monitor of a V4 dataset in your organization's Soda Cloud account, knowing only the id of the monitor. Soda looks up the dataset the monitor belongs to and the kind of monitor it is.\
> \
> Use the \`monitorId\` returned by \`POST /api/v1/monitors\`, or the check id from a monitor's results, as the monitor id. Column and custom SQL monitor creation and listing responses also expose this id as \`checkId\`. This endpoint returns it as \`monitorId\`.\
> \
> Only the configuration settings you send are changed. Dataset and column metric monitors have generated names; \`name\` and \`columnName\` updates apply only to custom SQL monitors.\
> \
> \## Authorization\
> \
> Only users with \*\*Manage contracts\*\* permission can update monitors. Soda Cloud Admins can update monitors for all datasets. \*\*See \[Manage dataset roles]\(<https://go.soda.io/roles-dataset>) 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\
> \
> \`Datasets\`, \`Metric Monitors\`\
> \
> \## Rate limiting\
> \
> 100 requests/60 seconds

```json
{"openapi":"3.1.0","info":{"title":"Soda Cloud API v4","version":"v1"},"tags":[{"description":"Soda Cloud API Dataset Endpoints","name":"Datasets"},{"description":"Soda Cloud API Metric Monitor Endpoints","name":"Metric Monitors"}],"servers":[{"description":"Cloud EU","url":"https://cloud.soda.io"},{"description":"Cloud US","url":"https://cloud.us.soda.io"}],"security":[{"basicAuthApiKey":[]},{"cookieToken":[]}],"components":{"securitySchemes":{"basicAuthApiKey":{"scheme":"basic","type":"http"},"cookieToken":{"in":"cookie","name":"token","type":"apiKey"}},"schemas":{"PublicApiUpdateMonitorRequestDTO":{"type":"object","properties":{"columnName":{"type":"string","description":"Custom SQL monitors only: the column the monitor is listed under. Send null to list the monitor on the dataset instead of on a column."},"configuration":{"type":"object","$ref":"#/components/schemas/MonitorConfigurationUpdateDTO","description":"The settings to change. Only the settings you send are changed, the others keep their current value."},"name":{"type":"string","description":"Custom SQL monitors only: the name of the monitor. Soda generates dataset and column metric monitor names, so they cannot be changed."}}},"MonitorConfigurationUpdateDTO":{"type":"object","properties":{"groupByColumnNames":{"type":"array","description":"Custom SQL monitors only: the columns the query result is grouped by.","items":{"type":"string"}},"groupByColumns":{"type":"array","description":"Column metric monitors only: the columns the metric is grouped by.","items":{"type":"object","$ref":"#/components/schemas/GroupByColumnConfigurationDTO"}},"resultMetric":{"type":"string","description":"Custom SQL monitors only: the name of the query result column that holds the measured value."},"sqlQuery":{"type":"string","description":"Custom SQL monitors only: the query that produces the measured value."},"exclusionZones":{"type":"array","items":{"type":"object","$ref":"#/components/schemas/ExclusionZoneDTO"}},"isEnabled":{"type":"boolean"},"isSamplingEnabled":{"type":"boolean"},"sensitivity":{"type":"number"},"thresholdStrategy":{"type":"object","$ref":"#/components/schemas/ThresholdStrategyDTO"},"validRange":{"type":"object","$ref":"#/components/schemas/ValidRangeDTO"}}},"GroupByColumnConfigurationDTO":{"type":"object","properties":{"columnName":{"type":"string"},"excludedValues":{"type":"array","items":{"type":"string"}}},"required":["columnName"]},"ExclusionZoneDTO":{"type":"object","properties":{"lowerLimit":{"type":"number"},"singleValue":{"type":"boolean"},"upperLimit":{"type":"number"}},"required":["lowerLimit","upperLimit"]},"ThresholdStrategyDTO":{"type":"object","properties":{"isLowerBoundEnabled":{"type":"boolean"},"isUpperBoundEnabled":{"type":"boolean"}},"required":["isLowerBoundEnabled","isUpperBoundEnabled"]},"ValidRangeDTO":{"type":"object","properties":{"max":{"type":"number"},"min":{"type":"number"}}},"PublicApiUpdateMonitorResponse":{"type":"object","properties":{"columnMetricMonitor":{"type":"object","$ref":"#/components/schemas/ColumnMetricMonitorDTO","description":"Set when the updated monitor is a column metric monitor."},"customSqlMetricMonitor":{"type":"object","$ref":"#/components/schemas/CustomMetricMonitorDTO","description":"Set when the updated monitor is a custom SQL monitor."},"datasetId":{"type":"string","description":"The dataset the monitor belongs to, resolved from the monitor id."},"datasetMetricMonitor":{"type":"object","$ref":"#/components/schemas/DatasetMetricMonitorConfigurationDTO","description":"Set when the updated monitor is a dataset metric monitor."},"monitorId":{"type":"string"}},"required":["datasetId","monitorId"]},"ColumnMetricMonitorDTO":{"type":"object","properties":{"checkId":{"type":"string"},"columnName":{"type":"string"},"configuration":{"type":"object","$ref":"#/components/schemas/ColumnMonitorConfigurationDTO"},"metricType":{"type":"object","$ref":"#/components/schemas/ColumnMonitorMetricTypeDTO"}},"required":["checkId","columnName","configuration","metricType"]},"ColumnMonitorConfigurationDTO":{"type":"object","properties":{"groupByColumns":{"type":"array","items":{"type":"object","$ref":"#/components/schemas/GroupByColumnConfigurationDTO"}},"exclusionZones":{"type":"array","items":{"type":"object","$ref":"#/components/schemas/ExclusionZoneDTO"}},"isEnabled":{"type":"boolean"},"isSamplingEnabled":{"type":"boolean"},"sensitivity":{"type":"number"},"thresholdStrategy":{"type":"object","$ref":"#/components/schemas/ThresholdStrategyDTO"},"validRange":{"type":"object","$ref":"#/components/schemas/ValidRangeDTO"}}},"ColumnMonitorMetricTypeDTO":{"type":"string","enum":["missingPercentage","duplicatePercentage","average","columnFreshness","sum","distinctValuesCount","count","minimumValue","maximumValue","duplicateValuesPercentage","minimumLength","maximumLength","averageLength","standardDeviation","variance","q1","median","q3"]},"CustomMetricMonitorDTO":{"type":"object","properties":{"checkId":{"type":"string"},"columnName":{"type":"string"},"configuration":{"type":"object","$ref":"#/components/schemas/CustomSqlMonitorConfigurationDTO"},"monitorName":{"type":"string"}},"required":["checkId","configuration","monitorName"]},"CustomSqlMonitorConfigurationDTO":{"type":"object","properties":{"groupByColumnNames":{"type":"array","items":{"type":"string"}},"resultMetric":{"type":"string"},"sqlQuery":{"type":"string"},"exclusionZones":{"type":"array","items":{"type":"object","$ref":"#/components/schemas/ExclusionZoneDTO"}},"isEnabled":{"type":"boolean"},"isSamplingEnabled":{"type":"boolean"},"sensitivity":{"type":"number"},"thresholdStrategy":{"type":"object","$ref":"#/components/schemas/ThresholdStrategyDTO"},"validRange":{"type":"object","$ref":"#/components/schemas/ValidRangeDTO"}},"required":["resultMetric","sqlQuery"]},"DatasetMetricMonitorConfigurationDTO":{"type":"object","properties":{"configuration":{"type":"object","$ref":"#/components/schemas/DatasetMonitorConfigurationDTO"},"metricType":{"type":"object","$ref":"#/components/schemas/DatasetMonitorMetricTypeDTO"}},"required":["configuration","metricType"]},"DatasetMonitorConfigurationDTO":{"type":"object","properties":{"exclusionZones":{"type":"array","items":{"type":"object","$ref":"#/components/schemas/ExclusionZoneDTO"}},"isEnabled":{"type":"boolean"},"isSamplingEnabled":{"type":"boolean"},"sensitivity":{"type":"number"},"thresholdStrategy":{"type":"object","$ref":"#/components/schemas/ThresholdStrategyDTO"},"validRange":{"type":"object","$ref":"#/components/schemas/ValidRangeDTO"}}},"DatasetMonitorMetricTypeDTO":{"type":"string","enum":["rowCount","freshness","schema","rowsInserted","totalRowCountChange","timeliness","recordAnomalyScore"]},"ErrorResponse":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"paths":{"/api/v1/monitors/{monitorId}":{"post":{"description":"This endpoint allows you to update an existing dataset metric monitor, column metric monitor or custom SQL monitor of a V4 dataset in your organization's Soda Cloud account, knowing only the id of the monitor. Soda looks up the dataset the monitor belongs to and the kind of monitor it is.\n\nUse the `monitorId` returned by `POST /api/v1/monitors`, or the check id from a monitor's results, as the monitor id. Column and custom SQL monitor creation and listing responses also expose this id as `checkId`. This endpoint returns it as `monitorId`.\n\nOnly the configuration settings you send are changed. Dataset and column metric monitors have generated names; `name` and `columnName` updates apply only to custom SQL monitors.\n\n## Authorization\n\nOnly users with **Manage contracts** permission can update monitors. Soda Cloud Admins can update monitors for all datasets. **See [Manage dataset roles](https://go.soda.io/roles-dataset) for more information.**\n\n## Authentication\n\nUser authentication required: `true`\n\nThis 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.\n\n## Tags\n\n`Datasets`, `Metric Monitors`\n\n## Rate limiting\n\n100 requests/60 seconds","operationId":"POST/api/v1/monitors/{monitorId}","parameters":[{"in":"path","name":"monitorId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/PublicApiUpdateMonitorRequestDTO"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/PublicApiUpdateMonitorResponse"}}},"description":"Successful response"},"400":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad request"},"401":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not found"},"429":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too many requests"},"500":{"content":{"application/json":{"schema":{"type":"object","$ref":"#/components/schemas/ErrorResponse"}}},"description":"Internal server error"}},"summary":"Update a metric monitor","tags":["Datasets","Metric Monitors"]}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.soda.io/reference/soda-apis/rest-api/datasets.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
