Datasets
Soda Cloud API Dataset Endpoints
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:00datasourceName: 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).
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 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
Successful response
Bad request
Unauthorized
Forbidden
Not found
Too many requests
Internal server error
GET /api/v1/datasets HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Accept: */*
{
"content": [
{
"attributes": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"checks": 1,
"cloudUrl": "text",
"contractId": "text",
"dataQualityStatus": "pass",
"datasetQualifiedName": "text",
"datasource": {
"label": "text",
"name": "text",
"prefix": "text",
"type": "text",
"version": "3"
},
"hasContract": true,
"healthStatus": 1,
"id": "text",
"incidents": 1,
"label": "text",
"lastUpdated": "2026-01-01T00:00:00.000Z",
"name": "text",
"owners": [
{
"type": "user",
"user": {
"email": "text",
"firstName": "text",
"fullName": "text",
"lastName": "text",
"userId": "text"
},
"userGroup": {
"name": "text",
"userGroupId": "text"
}
}
],
"qualifiedName": "text",
"tags": [
"text"
],
"timePartition": {
"partitionColumn": {
"columnType": "unknown",
"name": "text"
},
"sqlExpression": "text",
"timePartitionType": "disabled"
}
}
],
"first": true,
"last": true,
"number": 1,
"size": 1,
"totalElements": 1,
"totalPages": 1
}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 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
Successful response
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.
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.
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.
Bad request
Unauthorized
Forbidden
Not found
Too many requests
Internal server error
GET /api/v1/datasets/byDatasetQualifiedName/{datasetQualifiedName} HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Accept: */*
{
"attributes": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"checks": 1,
"cloudUrl": "text",
"contractId": "text",
"dataQualityStatus": "pass",
"datasetQualifiedName": "text",
"datasource": {
"label": "text",
"name": "text",
"prefix": "text",
"type": "text",
"version": "3"
},
"hasContract": true,
"healthStatus": 1,
"id": "text",
"incidents": 1,
"label": "text",
"lastUpdated": "2026-01-01T00:00:00.000Z",
"name": "text",
"owners": [
{
"type": "user",
"user": {
"email": "text",
"firstName": "text",
"fullName": "text",
"lastName": "text",
"userId": "text"
},
"userGroup": {
"name": "text",
"userGroupId": "text"
}
}
],
"qualifiedName": "text",
"tags": [
"text"
],
"timePartition": {
"partitionColumn": {
"columnType": "unknown",
"name": "text"
},
"sqlExpression": "text",
"timePartitionType": "disabled"
}
}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
Successful response
Bad request
Unauthorized
Forbidden
Not found
Too many requests
Internal server error
GET /api/v1/datasets/roles HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Accept: */*
{
"content": [
{
"configureDataset": true,
"createCheckProposals": true,
"deleteDataset": true,
"id": "text",
"manageChecks": true,
"manageContracts": true,
"manageIncidents": true,
"managePermissions": true,
"name": "text",
"viewFailedRows": true,
"viewProfilingAndSamples": true
}
],
"first": true,
"last": true,
"number": 1,
"size": 1,
"totalElements": 1,
"totalPages": 1
}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
Successful response
Bad request
Unauthorized
Forbidden
Too many requests
Internal server error
POST /api/v1/datasets/roles HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Content-Type: application/json
Accept: */*
Content-Length: 232
{
"configureDataset": true,
"createCheckProposals": true,
"deleteDataset": true,
"manageChecks": true,
"manageContracts": true,
"manageIncidents": true,
"managePermissions": true,
"name": "text",
"viewFailedRows": true,
"viewProfilingAndSamples": true
}{
"datasetRole": {
"configureDataset": true,
"createCheckProposals": true,
"deleteDataset": true,
"id": "text",
"manageChecks": true,
"manageContracts": true,
"manageIncidents": true,
"managePermissions": true,
"name": "text",
"viewFailedRows": true,
"viewProfilingAndSamples": true
}
}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
Successful response
Bad request
Unauthorized
Forbidden
Not found
Too many requests
Internal server error
POST /api/v1/datasets/roles/{roleId} HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Content-Type: application/json
Accept: */*
Content-Length: 232
{
"configureDataset": true,
"createCheckProposals": true,
"deleteDataset": true,
"manageChecks": true,
"manageContracts": true,
"manageIncidents": true,
"managePermissions": true,
"name": "text",
"viewFailedRows": true,
"viewProfilingAndSamples": true
}{
"datasetRole": {
"configureDataset": true,
"createCheckProposals": true,
"deleteDataset": true,
"id": "text",
"manageChecks": true,
"manageContracts": true,
"manageIncidents": true,
"managePermissions": true,
"name": "text",
"viewFailedRows": true,
"viewProfilingAndSamples": true
}
}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
Successful response
Bad request
Unauthorized
Forbidden
Not found
Too many requests
Internal server error
DELETE /api/v1/datasets/roles/{roleId} HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Accept: */*
{
"message": "text"
}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 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
Successful response
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.
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.
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.
Bad request
Unauthorized
Forbidden
Not found
Too many requests
Internal server error
GET /api/v1/datasets/{datasetId} HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Accept: */*
{
"attributes": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"checks": 1,
"cloudUrl": "text",
"contractId": "text",
"dataQualityStatus": "pass",
"datasetQualifiedName": "text",
"datasource": {
"label": "text",
"name": "text",
"prefix": "text",
"type": "text",
"version": "3"
},
"hasContract": true,
"healthStatus": 1,
"id": "text",
"incidents": 1,
"label": "text",
"lastUpdated": "2026-01-01T00:00:00.000Z",
"name": "text",
"owners": [
{
"type": "user",
"user": {
"email": "text",
"firstName": "text",
"fullName": "text",
"lastName": "text",
"userId": "text"
},
"userGroup": {
"name": "text",
"userGroupId": "text"
}
}
],
"qualifiedName": "text",
"tags": [
"text"
],
"timePartition": {
"partitionColumn": {
"columnType": "unknown",
"name": "text"
},
"sqlExpression": "text",
"timePartitionType": "disabled"
}
}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 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
Successful response
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.
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.
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.
Bad request
Unauthorized
Forbidden
Not found
Too many requests
Internal server error
POST /api/v1/datasets/{datasetId} HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Content-Type: application/json
Accept: */*
Content-Length: 1364
{
"attributes": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"computeWarehouseOverride": {
"computeWarehouseConfiguration": {
"name": "text"
},
"enabled": true
},
"diagnosticsWarehouse": {
"failedRowsConfiguration": {
"enabled": true,
"failedRowSamples": {
"enabled": true,
"sampleSize": 1
},
"failedRowsCollectionStrategy": {
"maxRowCountOverride": 1,
"threshold": 1,
"thresholdCondition": "greaterThan",
"type": "useDefaultMaxRowCount"
},
"maxRowCount": 1,
"storageStrategy": "fullFailedRows",
"uniqueKeyColumnNames": [
"text"
]
},
"scanAndResultsConfiguration": {
"enabled": true
},
"schema": "text"
},
"label": "text",
"metricMonitoring": {
"datasetMetricMonitorsConfiguration": [
{
"configuration": {
"exclusionZones": [
{
"lowerLimit": 1,
"singleValue": true,
"upperLimit": 1
}
],
"isEnabled": true,
"isSamplingEnabled": true,
"sensitivity": 1,
"thresholdStrategy": {
"isLowerBoundEnabled": true,
"isUpperBoundEnabled": true
},
"validRange": {
"max": 1,
"min": 1
}
},
"metricType": "rowCount"
}
],
"enabled": true,
"historicalMetricCollectionScanStartDate": "2026-01-01T00:00:00.000Z",
"scanSchedule": {
"cronExpression": "text",
"timezone": "text"
}
},
"owners": [
{
"type": "user",
"userGroupId": "text",
"userId": "text"
}
],
"profiling": {
"enabled": true,
"profilingSamplingStrategy": {
"numberOfRows": 1,
"numberOfUnits": 1,
"unitOfTime": "hours"
},
"scanSchedule": {
"cronExpression": "text",
"timezone": "text"
}
},
"tags": [
"text"
],
"timePartition": {
"partitionColumn": "text",
"sqlExpression": "text"
}
}{
"attributes": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"checks": 1,
"cloudUrl": "text",
"contractId": "text",
"dataQualityStatus": "pass",
"datasetQualifiedName": "text",
"datasource": {
"label": "text",
"name": "text",
"prefix": "text",
"type": "text",
"version": "3"
},
"hasContract": true,
"healthStatus": 1,
"id": "text",
"incidents": 1,
"label": "text",
"lastUpdated": "2026-01-01T00:00:00.000Z",
"name": "text",
"owners": [
{
"type": "user",
"user": {
"email": "text",
"firstName": "text",
"fullName": "text",
"lastName": "text",
"userId": "text"
},
"userGroup": {
"name": "text",
"userGroupId": "text"
}
}
],
"qualifiedName": "text",
"tags": [
"text"
],
"timePartition": {
"partitionColumn": {
"columnType": "unknown",
"name": "text"
},
"sqlExpression": "text",
"timePartitionType": "disabled"
}
}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 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
Successful response
Bad request
Unauthorized
Forbidden
Not found
Too many requests
Internal server error
DELETE /api/v1/datasets/{datasetId} HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Accept: */*
{
"message": "text"
}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.
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
Successful response
Bad request
Unauthorized
Forbidden
Not found
Too many requests
Internal server error
POST /api/v1/datasets/{datasetId}/columnAttributes HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Content-Type: application/json
Accept: */*
Content-Length: 59
{
"columnAttributes": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}No content
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 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
Created
Bad request
Unauthorized
Forbidden
Not found
Too many requests
Internal server error
POST /api/v1/datasets/{datasetId}/columnMetricMonitors HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Content-Type: application/json
Accept: */*
Content-Length: 411
{
"columnMetricMonitorConfiguration": {
"configuration": {
"groupByColumns": [
{
"columnName": "text",
"excludedValues": [
"text"
]
}
],
"exclusionZones": [
{
"lowerLimit": 1,
"singleValue": true,
"upperLimit": 1
}
],
"isEnabled": true,
"isSamplingEnabled": true,
"sensitivity": 1,
"thresholdStrategy": {
"isLowerBoundEnabled": true,
"isUpperBoundEnabled": true
},
"validRange": {
"max": 1,
"min": 1
}
},
"metricType": "missingPercentage"
},
"columnName": "text"
}{
"columnMetricMonitor": {
"checkId": "text",
"columnName": "text",
"configuration": {
"groupByColumns": [
{
"columnName": "text",
"excludedValues": [
"text"
]
}
],
"exclusionZones": [
{
"lowerLimit": 1,
"singleValue": true,
"upperLimit": 1
}
],
"isEnabled": true,
"isSamplingEnabled": true,
"sensitivity": 1,
"thresholdStrategy": {
"isLowerBoundEnabled": true,
"isUpperBoundEnabled": true
},
"validRange": {
"max": 1,
"min": 1
}
},
"metricType": "missingPercentage"
}
}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 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
Successful response
Bad request
Unauthorized
Forbidden
Not found
Too many requests
Internal server error
POST /api/v1/datasets/{datasetId}/columnMetricMonitors/{monitorId} HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Content-Type: application/json
Accept: */*
Content-Length: 321
{
"configuration": {
"groupByColumns": [
{
"columnName": "text",
"excludedValues": [
"text"
]
}
],
"exclusionZones": [
{
"lowerLimit": 1,
"singleValue": true,
"upperLimit": 1
}
],
"isEnabled": true,
"isSamplingEnabled": true,
"sensitivity": 1,
"thresholdStrategy": {
"isLowerBoundEnabled": true,
"isUpperBoundEnabled": true
},
"validRange": {
"max": 1,
"min": 1
}
}
}{
"columnMetricMonitor": {
"checkId": "text",
"columnName": "text",
"configuration": {
"groupByColumns": [
{
"columnName": "text",
"excludedValues": [
"text"
]
}
],
"exclusionZones": [
{
"lowerLimit": 1,
"singleValue": true,
"upperLimit": 1
}
],
"isEnabled": true,
"isSamplingEnabled": true,
"sensitivity": 1,
"thresholdStrategy": {
"isLowerBoundEnabled": true,
"isUpperBoundEnabled": true
},
"validRange": {
"max": 1,
"min": 1
}
},
"metricType": "missingPercentage"
}
}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 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
Successful response
Bad request
Unauthorized
Forbidden
Not found
Too many requests
Internal server error
DELETE /api/v1/datasets/{datasetId}/columnMetricMonitors/{monitorId} HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Accept: */*
{
"message": "text"
}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
Successful response
Bad request
Unauthorized
Forbidden
Not found
Too many requests
Internal server error
GET /api/v1/datasets/{datasetId}/columns HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Accept: */*
{
"content": [
{
"attributes": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"columnId": "text",
"columnName": "text"
}
],
"first": true,
"last": true,
"number": 1,
"size": 1,
"totalElements": 1,
"totalPages": 1
}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 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
Successful response
Unauthorized
Forbidden
Not found
Too many requests
Internal server error
GET /api/v1/datasets/{datasetId}/computeWarehouse HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Accept: */*
{
"availableWarehouses": [
{
"name": "text"
}
],
"currentWarehouse": {
"name": "text"
},
"datasetWarehouseOverride": {
"name": "text"
},
"defaultWarehouse": {
"name": "text"
},
"enabled": true
}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 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
Created
Bad request
Unauthorized
Forbidden
Not found
Too many requests
Internal server error
POST /api/v1/datasets/{datasetId}/customSqlMonitors HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Content-Type: application/json
Accept: */*
Content-Length: 365
{
"columnName": "text",
"configuration": {
"groupByColumnNames": [
"text"
],
"resultMetric": "text",
"sqlQuery": "text",
"exclusionZones": [
{
"lowerLimit": 1,
"singleValue": true,
"upperLimit": 1
}
],
"isEnabled": true,
"isSamplingEnabled": true,
"sensitivity": 1,
"thresholdStrategy": {
"isLowerBoundEnabled": true,
"isUpperBoundEnabled": true
},
"validRange": {
"max": 1,
"min": 1
}
},
"monitorName": "text"
}{
"customSqlMonitor": {
"checkId": "text",
"columnName": "text",
"configuration": {
"groupByColumnNames": [
"text"
],
"resultMetric": "text",
"sqlQuery": "text",
"exclusionZones": [
{
"lowerLimit": 1,
"singleValue": true,
"upperLimit": 1
}
],
"isEnabled": true,
"isSamplingEnabled": true,
"sensitivity": 1,
"thresholdStrategy": {
"isLowerBoundEnabled": true,
"isUpperBoundEnabled": true
},
"validRange": {
"max": 1,
"min": 1
}
},
"monitorName": "text"
}
}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 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
Successful response
Bad request
Unauthorized
Forbidden
Not found
Too many requests
Internal server error
POST /api/v1/datasets/{datasetId}/customSqlMonitors/{monitorId} HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Content-Type: application/json
Accept: */*
Content-Length: 358
{
"columnName": "text",
"configuration": {
"groupByColumnNames": [
"text"
],
"resultMetric": "text",
"sqlQuery": "text",
"exclusionZones": [
{
"lowerLimit": 1,
"singleValue": true,
"upperLimit": 1
}
],
"isEnabled": true,
"isSamplingEnabled": true,
"sensitivity": 1,
"thresholdStrategy": {
"isLowerBoundEnabled": true,
"isUpperBoundEnabled": true
},
"validRange": {
"max": 1,
"min": 1
}
},
"name": "text"
}{
"customSqlMetricMonitor": {
"checkId": "text",
"columnName": "text",
"configuration": {
"groupByColumnNames": [
"text"
],
"resultMetric": "text",
"sqlQuery": "text",
"exclusionZones": [
{
"lowerLimit": 1,
"singleValue": true,
"upperLimit": 1
}
],
"isEnabled": true,
"isSamplingEnabled": true,
"sensitivity": 1,
"thresholdStrategy": {
"isLowerBoundEnabled": true,
"isUpperBoundEnabled": true
},
"validRange": {
"max": 1,
"min": 1
}
},
"monitorName": "text"
}
}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 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
Successful response
Bad request
Unauthorized
Forbidden
Not found
Too many requests
Internal server error
DELETE /api/v1/datasets/{datasetId}/customSqlMonitors/{monitorId} HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Accept: */*
{
"message": "text"
}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.
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 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
Successful response
Bad request
Unauthorized
Forbidden
Not found
Too many requests
Internal server error
GET /api/v1/datasets/{datasetId}/diagnosticsWarehouse HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Accept: */*
{
"failedRowsConfiguration": {
"enabled": true,
"failedRowSamples": {
"enabled": true,
"sampleSize": 1
},
"failedRowsCollectionStrategy": {
"maxRowCountOverride": 1,
"threshold": 1,
"thresholdCondition": "greaterThan",
"type": "useDefaultMaxRowCount"
},
"maxRowCount": 1,
"state": "ready",
"storageStrategy": "fullFailedRows",
"uniqueKeyColumnNames": [
"text"
]
},
"scanAndResultsConfiguration": {
"enabled": true
},
"schema": "text"
}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 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
Successful response
Bad request
Unauthorized
Forbidden
Not found
Too many requests
Internal server error
GET /api/v1/datasets/{datasetId}/metricMonitoring HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Accept: */*
{
"columnMetricMonitors": [
{
"checkId": "text",
"columnName": "text",
"configuration": {
"groupByColumns": [
{
"columnName": "text",
"excludedValues": [
"text"
]
}
],
"exclusionZones": [
{
"lowerLimit": 1,
"singleValue": true,
"upperLimit": 1
}
],
"isEnabled": true,
"isSamplingEnabled": true,
"sensitivity": 1,
"thresholdStrategy": {
"isLowerBoundEnabled": true,
"isUpperBoundEnabled": true
},
"validRange": {
"max": 1,
"min": 1
}
},
"metricType": "missingPercentage"
}
],
"customSqlMetricMonitors": [
{
"checkId": "text",
"columnName": "text",
"configuration": {
"groupByColumnNames": [
"text"
],
"resultMetric": "text",
"sqlQuery": "text",
"exclusionZones": [
{
"lowerLimit": 1,
"singleValue": true,
"upperLimit": 1
}
],
"isEnabled": true,
"isSamplingEnabled": true,
"sensitivity": 1,
"thresholdStrategy": {
"isLowerBoundEnabled": true,
"isUpperBoundEnabled": true
},
"validRange": {
"max": 1,
"min": 1
}
},
"monitorName": "text"
}
],
"datasetId": "text",
"datasetMetricMonitorsConfiguration": [
{
"configuration": {
"exclusionZones": [
{
"lowerLimit": 1,
"singleValue": true,
"upperLimit": 1
}
],
"isEnabled": true,
"isSamplingEnabled": true,
"sensitivity": 1,
"thresholdStrategy": {
"isLowerBoundEnabled": true,
"isUpperBoundEnabled": true
},
"validRange": {
"max": 1,
"min": 1
}
},
"metricType": "rowCount"
}
],
"enabled": true,
"historicalMetricCollectionScanStartDate": "2026-01-01T00:00:00.000Z",
"scanSchedule": {
"cronExpression": "text",
"timezone": "text"
},
"timePartition": {
"partitionColumn": {
"columnType": "unknown",
"name": "text"
},
"sqlExpression": "text",
"timePartitionType": "disabled"
}
}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 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
Created
Bad request
Forbidden
Not found
Too many requests
Internal server error
POST /api/v1/datasets/{datasetId}/metricMonitoring/historicalMetricCollection HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Accept: */*
No content
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 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
Successful response
Bad request
Unauthorized
Forbidden
Not found
Too many requests
Internal server error
GET /api/v1/datasets/{datasetId}/profiling HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Accept: */*
{
"columnCount": 1,
"columns": [
{
"id": "text",
"metrics": {
"average": 1,
"averageLength": 1,
"distinctCount": 1,
"extremeValues": {
"maximum": [
{}
],
"minimum": [
{}
]
},
"frequentValues": [
{
"count": 1,
"value": {}
}
],
"histogram": [
{
"count": 1,
"lowerBound": 1,
"upperBound": 1
}
],
"maximum": {},
"maximumLength": 1,
"maximumTimestamp": "2026-01-01T00:00:00.000Z",
"median": 1,
"minimum": {},
"minimumLength": 1,
"minimumTimestamp": "2026-01-01T00:00:00.000Z",
"missingCount": 1,
"standardDeviation": 1,
"sum": 1,
"variance": 1
},
"name": "text",
"type": "text"
}
],
"datasetId": "text",
"enabled": true,
"profilingTime": "2026-01-01T00:00:00.000Z",
"rowCount": 1,
"samplingStrategyConfiguration": {
"numberOfRows": 1,
"numberOfUnits": 1,
"unitOfTime": "hours"
},
"scanSchedule": {
"cronExpression": "text",
"timezone": "text"
},
"timePartition": {
"partitionColumn": {
"columnType": "unknown",
"name": "text"
},
"sqlExpression": "text",
"timePartitionType": "disabled"
}
}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 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
Successful response
Bad request
Unauthorized
Forbidden
Not found
Too many requests
Internal server error
GET /api/v1/datasets/{datasetId}/responsibilities HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Accept: */*
{
"content": [
{
"managed": true,
"role": {
"configureDataset": true,
"createCheckProposals": true,
"deleteDataset": true,
"id": "text",
"manageChecks": true,
"manageContracts": true,
"manageIncidents": true,
"managePermissions": true,
"name": "text",
"viewFailedRows": true,
"viewProfilingAndSamples": true
},
"type": "user",
"userGroupId": "text",
"userId": "text"
}
],
"first": true,
"last": true,
"number": 1,
"size": 1,
"totalElements": 1,
"totalPages": 1
}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 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
Created
Bad request
Unauthorized
Forbidden
Not found
Too many requests
Internal server error
POST /api/v1/datasets/{datasetId}/responsibilities HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Content-Type: application/json
Accept: */*
Content-Length: 91
{
"responsibilities": [
{
"roleId": "text",
"type": "user",
"userGroupId": "text",
"userId": "text"
}
]
}No content
Last updated
Was this helpful?
