Soda Datasets API
The Datasets surface of the Soda Cloud v4 API — 24 operation(s) across 17 path(s).
The Datasets surface of the Soda Cloud v4 API — 24 operation(s) across 17 path(s).
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/soda-data-datasets-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
# generated: '2026-08-29'
# method: searched
# source: https://docs.soda.io/reference/soda-apis/rest-api/ — assembled from the OpenAPI 3.1.0
# documents Soda publishes inline on each REST API reference page (16 pages, 103 operations,
# zero conflicting definitions). Ownership: info.title 'Soda Cloud API v4', servers
# https://cloud.soda.io + https://cloud.us.soda.io — Soda's own hosts.
openapi: 3.1.0
info:
title: Soda Cloud API v4 — Datasets
version: v1
description: The Datasets surface of the Soda Cloud v4 public REST API — 24 operation(s). Harvested
verbatim from the OpenAPI documents Soda publishes at https://docs.soda.io/reference/soda-apis/rest-api/.
contact:
name: Soda
url: https://www.soda.io
servers:
- description: Cloud EU
url: https://cloud.soda.io
- description: Cloud US
url: https://cloud.us.soda.io
security:
- basicAuthApiKey: []
- cookieToken: []
tags:
- name: Datasets
description: Soda Cloud API Dataset Endpoints
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.
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.
If not specified, the query gathers information for all datasets in the account and sorts the
results first by dataset name and then by datasource 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'
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: page
schema:
type: integer
format: int32
- in: query
name: search
schema:
type: string
- in: query
name: size
schema:
type: integer
format: int32
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
/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.
## 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'
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
/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.
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'
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
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.
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'
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
/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.
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'
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:
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.
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'
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
/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.
## 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'
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
post:
description: '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'
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:
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
/api/v1/datasets/{datasetId}/columnAttributes:
post:
description: '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'
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
/api/v1/datasets/{datasetId}/columnMetricMonitors:
post:
description: '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'
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:
# --- truncated at 32 KB (101 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/soda-data/refs/heads/main/openapi/soda-data-datasets-api-openapi.yml