Data Standards
Soda Cloud API Data Standard Endpoints
This endpoint allows you to list the data standards in your organization.
This GET is a paginated API that uses the following parameters to request specific details:
size: Supply an integer value between 1 and 1000, inclusive. The default value is 10.page: Supply an integer value. The default value is 0.search: Optionally, use this parameter to perform a fuzzy search on the data standard name and label.status: Optionally, use this parameter to list only data standards with a given status (draft,active,paused, orinvalid).ownerId: Optionally, use this parameter to list only the data standards owned by one user or one user group. Supply a single id: either a user id or a user group id, as returned in theownerslist of this endpoint. A user id also matches the data standards owned by a user group that the user belongs to.sort: Optionally, sort the results byname(default) orlabel.
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
Data Standards
Rate limiting
60 requests/60 seconds
Successful response
Bad request
Unauthorized
Forbidden
Too many requests
Internal server error
GET /api/v1/dataStandards HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Accept: */*
{
"content": [
{
"attributes": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"checkResults": {
"failingCount": 1,
"notEvaluatedCount": 1,
"passingCount": 1,
"warningCount": 1
},
"cloudUrl": "text",
"compliance": 1,
"contents": "text",
"created": "2026-01-01T00:00:00.000Z",
"datasetCount": 1,
"description": "text",
"id": "text",
"label": "text",
"lastScanTime": "2026-01-01T00:00:00.000Z",
"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"
}
}
],
"schedule": {
"enabled": true
},
"scope": {
"rules": [
{
"attributesFilter": "[Circular Reference]",
"datasourceId": "text",
"name": "text",
"schema": "text"
}
]
},
"status": "draft"
}
],
"first": true,
"last": true,
"number": 1,
"size": 1,
"totalElements": 1,
"totalPages": 1
}This endpoint allows you to create a new data standard from YAML contents, a structured scope, status, owners and an optional schedule.
The contents field must contain valid data standard YAML. If the YAML is malformed, the request is rejected with a 400 error.
A dataset is in scope when it matches at least one rule in scope.rules. Within a rule, schema and name are matched as patterns:
analyticsmatches that value and nothing else.analytics*matches values starting withanalytics,*_rawthose ending with_raw, and*core*those containingcore.A
*in the middle, as inan*ics, is rejected with a 400, and you cannot match a literal*.Leaving a field out, or setting it to blank or just
*, puts no constraint on it, so a scope that constrains nothing matches all datasets.
Authorization
Only users with Manage data standards permission can create data standards.
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_DATA_STANDARDS to execute this call.
Tags
Data Standards
Rate limiting
100 requests/60 seconds
Successful response
Bad request
Unauthorized
Forbidden
Not found
Too many requests
Internal server error
POST /api/v1/dataStandards HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Content-Type: application/json
Accept: */*
Content-Length: 468
{
"attributes": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"contents": "text",
"description": "text",
"label": "text",
"name": "text",
"owners": [
{
"type": "user",
"userGroupId": "text",
"userId": "text"
}
],
"schedule": {
"enabled": true
},
"scope": {
"rules": [
{
"attributesFilter": {
"attributeName": "text",
"booleanValue": true,
"date": "2026-01-01T00:00:00.000Z",
"filters": [
"[Circular Reference]"
],
"type": "equals",
"value": "text"
},
"datasourceId": "text",
"name": "text",
"schema": "text"
}
]
},
"status": "draft"
}{
"dataStandard": {
"attributes": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"checkResults": {
"failingCount": 1,
"notEvaluatedCount": 1,
"passingCount": 1,
"warningCount": 1
},
"cloudUrl": "text",
"compliance": 1,
"contents": "text",
"created": "2026-01-01T00:00:00.000Z",
"datasetCount": 1,
"description": "text",
"id": "text",
"label": "text",
"lastScanTime": "2026-01-01T00:00:00.000Z",
"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"
}
}
],
"schedule": {
"enabled": true
},
"scope": {
"rules": [
{
"attributesFilter": {
"attributeName": "text",
"booleanValue": true,
"date": "2026-01-01T00:00:00.000Z",
"filters": "[Circular Reference]",
"type": "equals",
"value": "text"
},
"datasourceId": "text",
"name": "text",
"schema": "text"
}
]
},
"status": "draft"
}
}This endpoint triggers a scan that runs the active data standards linked to the specified dataset.
The response, when successful, is 201 and contains the header X-Soda-Scan-Id and a Location header which identify the triggered scan. Use the value of X-Soda-Scan-Id in the scanId parameter of the Get scan status, Get scan logs, and Cancel a scan endpoints.
Authorization
Only users with Manage data standards permission can execute data standards.
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_DATA_STANDARDS to execute this call.
Tags
Data Standards
Rate limiting
10 requests/60 seconds
Created
Bad request
Unauthorized
Forbidden
Not found
Too many requests
Internal server error
POST /api/v1/dataStandards/actions/execute HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Content-Type: application/json
Accept: */*
Content-Length: 20
{
"datasetId": "text"
}{
"dataStandardIds": [
"text"
],
"scanId": "text"
}This endpoint evaluates a candidate scope and returns the datasets that would match it, without creating or modifying any data standard.
The scope uses the same structured rule grammar as the create-data-standard endpoint. An omitted or empty scope matches all datasets, mirroring how a data standard without a scope applies to every dataset. Results are paged with page (0-based, default 0) and size (between 1 and 1000, default 10).
Authorization
Only users with Manage data standards permission can preview a data standard scope.
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_DATA_STANDARDS to execute this call.
Tags
Data Standards
Rate limiting
100 requests/60 seconds
Successful response
Bad request
Unauthorized
Forbidden
Too many requests
Internal server error
POST /api/v1/dataStandards/actions/previewScope HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Content-Type: application/json
Accept: */*
Content-Length: 257
{
"page": 1,
"scope": {
"rules": [
{
"attributesFilter": {
"attributeName": "text",
"booleanValue": true,
"date": "2026-01-01T00:00:00.000Z",
"filters": [
"[Circular Reference]"
],
"type": "equals",
"value": "text"
},
"datasourceId": "text",
"name": "text",
"schema": "text"
}
]
},
"size": 1
}{
"content": [
{
"datasourceId": "text",
"id": "text",
"label": "text",
"name": "text",
"qualifiedName": "text"
}
],
"first": true,
"last": true,
"number": 1,
"size": 1,
"totalElements": 1,
"totalPages": 1
}This endpoint runs the checks of an unsaved data standard against one dataset's live data, without creating or modifying any data standard. The tested standard does not appear in your data standards and no checks or check results are persisted; the outcome is only visible on the triggered scan.
The contents field must contain valid data standard YAML. If the YAML is malformed, the request is rejected with a 400 error.
The response, when successful, is 201 and contains the header X-Soda-Scan-Id and a Location header which identify the triggered scan. Use the value of X-Soda-Scan-Id in the scanId parameter of the Get scan status, Get scan logs, and Cancel a scan endpoints.
Authorization
Only users with Manage data standards permission who can view the dataset's datasource can test a data standard.
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_DATA_STANDARDS to execute this call.
Tags
Data Standards
Rate limiting
10 requests/60 seconds
Created
Bad request
Unauthorized
Forbidden
Not found
Too many requests
Internal server error
POST /api/v1/dataStandards/actions/test HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Content-Type: application/json
Accept: */*
Content-Length: 38
{
"contents": "text",
"datasetId": "text"
}{
"scanId": "text"
}This endpoint returns an organization-wide rollup of data standards activity, including counts of active and total standards, matched datasets, and check results.
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
Data Standards
Rate limiting
60 requests/60 seconds
Successful response
Bad request
Unauthorized
Forbidden
Too many requests
Internal server error
GET /api/v1/dataStandards/activity HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Accept: */*
{
"activity": {
"activeCount": 1,
"checkResults": {
"failingCount": 1,
"notEvaluatedCount": 1,
"passingCount": 1,
"warningCount": 1
},
"datasetCount": 1,
"totalCount": 1
}
}This endpoint allows you to retrieve a specific data standard, including its YAML contents and scope.
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
Data Standards
Rate limiting
1000 requests/60 seconds
Successful response
Bad request
Unauthorized
Forbidden
Not found
Too many requests
Internal server error
GET /api/v1/dataStandards/{dataStandardId} HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Accept: */*
{
"dataStandard": {
"attributes": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"checkResults": {
"failingCount": 1,
"notEvaluatedCount": 1,
"passingCount": 1,
"warningCount": 1
},
"cloudUrl": "text",
"compliance": 1,
"contents": "text",
"created": "2026-01-01T00:00:00.000Z",
"datasetCount": 1,
"description": "text",
"id": "text",
"label": "text",
"lastScanTime": "2026-01-01T00:00:00.000Z",
"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"
}
}
],
"schedule": {
"enabled": true
},
"scope": {
"rules": [
{
"attributesFilter": {
"attributeName": "text",
"booleanValue": true,
"date": "2026-01-01T00:00:00.000Z",
"filters": "[Circular Reference]",
"type": "equals",
"value": "text"
},
"datasourceId": "text",
"name": "text",
"schema": "text"
}
]
},
"status": "draft"
}
}This endpoint allows you to replace an existing data standard's YAML contents, scope, status, owners and schedule.
The contents field must contain valid data standard YAML. If the YAML is malformed, the request is rejected with a 400 error.
A dataset is in scope when it matches at least one rule in scope.rules. Within a rule, schema and name are matched as patterns:
analyticsmatches that value and nothing else.analytics*matches values starting withanalytics,*_rawthose ending with_raw, and*core*those containingcore.A
*in the middle, as inan*ics, is rejected with a 400, and you cannot match a literal*.Leaving a field out, or setting it to blank or just
*, puts no constraint on it, so a scope that constrains nothing matches all datasets.
Authorization
Only users with Manage data standards permission can update data standards.
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_DATA_STANDARDS to execute this call.
Tags
Data Standards
Rate limiting
100 requests/60 seconds
Successful response
Bad request
Unauthorized
Forbidden
Not found
Too many requests
Internal server error
POST /api/v1/dataStandards/{dataStandardId} HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Content-Type: application/json
Accept: */*
Content-Length: 468
{
"attributes": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"contents": "text",
"description": "text",
"label": "text",
"name": "text",
"owners": [
{
"type": "user",
"userGroupId": "text",
"userId": "text"
}
],
"schedule": {
"enabled": true
},
"scope": {
"rules": [
{
"attributesFilter": {
"attributeName": "text",
"booleanValue": true,
"date": "2026-01-01T00:00:00.000Z",
"filters": [
"[Circular Reference]"
],
"type": "equals",
"value": "text"
},
"datasourceId": "text",
"name": "text",
"schema": "text"
}
]
},
"status": "draft"
}{
"dataStandard": {
"attributes": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"checkResults": {
"failingCount": 1,
"notEvaluatedCount": 1,
"passingCount": 1,
"warningCount": 1
},
"cloudUrl": "text",
"compliance": 1,
"contents": "text",
"created": "2026-01-01T00:00:00.000Z",
"datasetCount": 1,
"description": "text",
"id": "text",
"label": "text",
"lastScanTime": "2026-01-01T00:00:00.000Z",
"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"
}
}
],
"schedule": {
"enabled": true
},
"scope": {
"rules": [
{
"attributesFilter": {
"attributeName": "text",
"booleanValue": true,
"date": "2026-01-01T00:00:00.000Z",
"filters": "[Circular Reference]",
"type": "equals",
"value": "text"
},
"datasourceId": "text",
"name": "text",
"schema": "text"
}
]
},
"status": "draft"
}
}Schedules a data standard for deletion. Deletion is processed asynchronously: the standard and its dataset associations, owners and YAML file are removed in the background.
Authorization
Only users with Manage data standards permission can delete data standards.
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_DATA_STANDARDS to execute this call.
Tags
Data Standards
Rate limiting
100 requests/60 seconds
Successful response
Bad request
Unauthorized
Forbidden
Not found
Too many requests
Internal server error
DELETE /api/v1/dataStandards/{dataStandardId} HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Accept: */*
{
"message": "text"
}This endpoint re-evaluates a data standard's scope and returns the ids of the datasets that currently match it.
Authorization
Only users with Manage data standards permission can evaluate a data standard's scope.
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_DATA_STANDARDS to execute this call.
Tags
Data Standards
Rate limiting
100 requests/60 seconds
Successful response
Bad request
Unauthorized
Forbidden
Not found
Too many requests
Internal server error
POST /api/v1/dataStandards/{dataStandardId}/actions/evaluateScope HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Accept: */*
{
"dataStandardId": "text",
"datasetIds": [
"text"
]
}This endpoint transitions a data standard to a new status without modifying its contents, scope, owners or schedule.
Allowed transitions are validated; an invalid transition is rejected with a 400 error.
Authorization
Only users with Manage data standards permission can update a data standard's status.
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_DATA_STANDARDS to execute this call.
Tags
Data Standards
Rate limiting
100 requests/60 seconds
Successful response
Bad request
Unauthorized
Forbidden
Not found
Too many requests
Internal server error
POST /api/v1/dataStandards/{dataStandardId}/actions/status HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Content-Type: application/json
Accept: */*
Content-Length: 18
{
"status": "draft"
}{
"dataStandard": {
"attributes": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"checkResults": {
"failingCount": 1,
"notEvaluatedCount": 1,
"passingCount": 1,
"warningCount": 1
},
"cloudUrl": "text",
"compliance": 1,
"contents": "text",
"created": "2026-01-01T00:00:00.000Z",
"datasetCount": 1,
"description": "text",
"id": "text",
"label": "text",
"lastScanTime": "2026-01-01T00:00:00.000Z",
"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"
}
}
],
"schedule": {
"enabled": true
},
"scope": {
"rules": [
{
"attributesFilter": {
"attributeName": "text",
"booleanValue": true,
"date": "2026-01-01T00:00:00.000Z",
"filters": "[Circular Reference]",
"type": "equals",
"value": "text"
},
"datasourceId": "text",
"name": "text",
"schema": "text"
}
]
},
"status": "draft"
}
}This endpoint allows you to list the aggregated checks of a specific data standard.
This GET is a paginated API that uses the following parameters to request specific details:
size: Supply an integer value between 1 and 1000, inclusive. The default value is 10.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.
Tags
Data Standards
Rate limiting
60 requests/60 seconds
Successful response
Bad request
Unauthorized
Forbidden
Not found
Too many requests
Internal server error
GET /api/v1/dataStandards/{dataStandardId}/checks HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Accept: */*
{
"content": [
{
"checkType": "missing",
"compliance": 1,
"datasetCount": 1,
"failingCount": 1,
"lastScanTime": "2026-01-01T00:00:00.000Z",
"name": "text",
"notEvaluatedCount": 1,
"passingCount": 1,
"warningCount": 1,
"worstLevel": "info"
}
],
"first": true,
"last": true,
"number": 1,
"size": 1,
"totalElements": 1,
"totalPages": 1
}This endpoint allows you to list the datasets matched by a specific data standard.
This GET is a paginated API that uses the following parameters to request specific details:
size: Supply an integer value between 1 and 1000, inclusive. The default value is 10.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.
Tags
Data Standards
Rate limiting
60 requests/60 seconds
Successful response
Bad request
Unauthorized
Forbidden
Not found
Too many requests
Internal server error
GET /api/v1/dataStandards/{dataStandardId}/datasets HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Accept: */*
{
"content": [
{
"checkResults": {
"failingCount": 1,
"notEvaluatedCount": 1,
"passingCount": 1,
"warningCount": 1
},
"cloudUrl": "text",
"id": "text",
"label": "text",
"lastScanId": "text",
"lastScanTime": "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"
}
],
"first": true,
"last": true,
"number": 1,
"size": 1,
"totalElements": 1,
"totalPages": 1
}Last updated
Was this helpful?
