For the complete documentation index, see llms.txt. This page is also available as Markdown.

Datasources

Soda Cloud API Datasource Endpoints

List datasources

get
/api/v1/datasources

This endpoint allows you to list datasources in your organization.

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.

  • search: Supply a string value to filter datasources by name (case-insensitive partial match).

  • version: Optionally, use this parameter to list only datasources on a given Soda model version (3 or 4).

Datasources that are being deleted are left out of the results, and out of totalElements, from the moment the delete is requested until the deletion has finished.

Authorization

Soda only returns datasources for which the user has the View permission. Soda Cloud Admins have access to all datasources.

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

Datasources

Rate limiting

60 requests/60 seconds

Authorizations
AuthorizationstringRequired
Query parameters
pageinteger · int32Optional
searchstringOptional
sizeinteger · int32Optional
versionobject · enumOptionalPossible values:
Responses
200

Successful response

application/json
firstbooleanRequired
lastbooleanRequired
numberinteger · int32Required
sizeinteger · int32Required
totalElementsinteger · int32Required
totalPagesinteger · int32Required
get/api/v1/datasources
GET /api/v1/datasources HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Accept: */*
{
  "content": [
    {
      "createdAt": "2026-01-01T00:00:00.000Z",
      "id": "text",
      "label": "text",
      "name": "text",
      "owner": {
        "email": "text",
        "firstName": "text",
        "fullName": "text",
        "lastName": "text",
        "userId": "text"
      },
      "type": "bigquery",
      "updatedAt": "2026-01-01T00:00:00.000Z",
      "version": "3"
    }
  ],
  "first": true,
  "last": true,
  "number": 1,
  "size": 1,
  "totalElements": 1,
  "totalPages": 1
}

Create a datasource

post
/api/v1/datasources

Creates a new V4 datasource with the provided configuration.

The datasource type is extracted from the YAML configuration file contents.

The ownerId is optional and defaults to the user making the request. Runner service users cannot own a datasource.

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_DATASOURCES_AND_AGENTS to execute this call.

Tags

Datasources

Rate limiting

10 requests/60 seconds

Authorizations
AuthorizationstringRequired
Body
configurationFileContentsstringRequired
labelstringOptional
ownerIdstringOptional
runnerIdstringOptional
Responses
200

Successful response

application/json
discoveryScanIdstringOptional
post/api/v1/datasources
POST /api/v1/datasources HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Content-Type: application/json
Accept: */*
Content-Length: 86

{
  "configurationFileContents": "text",
  "label": "text",
  "ownerId": "text",
  "runnerId": "text"
}
{
  "datasource": {
    "createdAt": "2026-01-01T00:00:00.000Z",
    "id": "text",
    "label": "text",
    "name": "text",
    "owner": {
      "email": "text",
      "firstName": "text",
      "fullName": "text",
      "lastName": "text",
      "userId": "text"
    },
    "type": "bigquery",
    "updatedAt": "2026-01-01T00:00:00.000Z",
    "version": "3"
  },
  "discoveryScanId": "text"
}

Test datasource connection

post
/api/v1/datasources/actions/testConnection

This endpoint triggers an asynchronous connection test for a datasource configuration.

The response includes an operation ID that you can use to poll the status of the connection test.

Authorization

Any authenticated Soda Cloud user in your organization may test a datasource connection. The test runs against a configuration provided in the request, not against an existing datasource.

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

Datasources

Rate limiting

10 requests/60 seconds

Authorizations
AuthorizationstringRequired
Body
configurationFileContentsstringRequired
runnerIdstringRequired
Responses
202

Accepted

post/api/v1/datasources/actions/testConnection
POST /api/v1/datasources/actions/testConnection HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Content-Type: application/json
Accept: */*
Content-Length: 54

{
  "configurationFileContents": "text",
  "runnerId": "text"
}

No content

Get status for async connection test

get
/api/v1/datasources/actions/testConnection/{operationId}

This endpoint allows you to check the status of an asynchronous connection test operation.

Use the operation ID returned by the test connection endpoint to poll for its current state.

Authorization

Any authenticated Soda Cloud user in your organization may poll the status of a connection test operation.

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

Datasources

Rate limiting

60 requests/60 seconds

Authorizations
AuthorizationstringRequired
Path parameters
operationIdstringRequired
Responses
200

Successful response

application/json
idstringRequired
messagestringOptional
startedstring · date-timeOptional
stateobject · enumRequiredPossible values:
get/api/v1/datasources/actions/testConnection/{operationId}
GET /api/v1/datasources/actions/testConnection/{operationId} HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Accept: */*
{
  "id": "text",
  "message": "text",
  "started": "2026-01-01T00:00:00.000Z",
  "state": "queued"
}

Get the default datasource responsibilities

get
/api/v1/datasources/defaultResponsibilities

This endpoint returns the organization-wide defaults that Soda applies to every newly created datasource: the datasource role granted to the datasource owner, and the users and user groups that are assigned a datasource role automatically.

Assignments whose role has since been deleted are left out, because they no longer grant anything.

Datasource roles must be enabled for your organization; if they are not, this endpoint answers 400.

Authorization

Only users with the Manage organization settings permission can read the default datasource 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

Datasources

Rate limiting

60 requests/60 seconds

Authorizations
AuthorizationstringRequired
Responses
200

Successful response

application/json
get/api/v1/datasources/defaultResponsibilities
GET /api/v1/datasources/defaultResponsibilities HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Accept: */*
{
  "assignments": [
    {
      "role": {
        "createDatasets": true,
        "deleteDatasource": true,
        "id": "text",
        "manageDatasourceSettings": true,
        "managePermissions": true,
        "name": "text",
        "viewDatasource": true
      },
      "type": "user",
      "userGroupId": "text",
      "userId": "text"
    }
  ],
  "defaultOwnerRole": {
    "createDatasets": true,
    "deleteDatasource": true,
    "id": "text",
    "manageDatasourceSettings": true,
    "managePermissions": true,
    "name": "text",
    "viewDatasource": true
  }
}

Update the default datasource responsibilities

post
/api/v1/datasources/defaultResponsibilities

This endpoint updates the organization-wide defaults that Soda applies to every newly created datasource.

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 datasources that already exist.

Existing datasources keep the responsibilities they already have, apart from that owner role.

Datasource roles must be enabled for your organization; if they are not, this endpoint answers 400.

Authorization

Only users with the Manage organization settings permission can update the default datasource 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

Datasources

Rate limiting

60 requests/60 seconds

Authorizations
AuthorizationstringRequired
Body
defaultOwnerRoleIdstringOptional

Id of the datasource role to grant to the owner of a newly created datasource. Leave it out to keep the role that is configured now.

Responses
200

Successful response

application/json
post/api/v1/datasources/defaultResponsibilities
POST /api/v1/datasources/defaultResponsibilities HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Content-Type: application/json
Accept: */*
Content-Length: 114

{
  "assignments": [
    {
      "roleId": "text",
      "type": "user",
      "userGroupId": "text",
      "userId": "text"
    }
  ],
  "defaultOwnerRoleId": "text"
}
{
  "assignments": [
    {
      "role": {
        "createDatasets": true,
        "deleteDatasource": true,
        "id": "text",
        "manageDatasourceSettings": true,
        "managePermissions": true,
        "name": "text",
        "viewDatasource": true
      },
      "type": "user",
      "userGroupId": "text",
      "userId": "text"
    }
  ],
  "defaultOwnerRole": {
    "createDatasets": true,
    "deleteDatasource": true,
    "id": "text",
    "manageDatasourceSettings": true,
    "managePermissions": true,
    "name": "text",
    "viewDatasource": true
  }
}

List datasource roles

get
/api/v1/datasources/roles

This endpoint enables you to gather information about the datasource roles available in your organization's Soda Cloud account. Use the datasource roles to manage access to individual datasources.

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

Datasources

Rate limiting

60 requests/60 seconds

Authorizations
AuthorizationstringRequired
Query parameters
pageinteger · int32Optional
sizeinteger · int32Optional
Responses
200

Successful response

application/json
firstbooleanRequired
lastbooleanRequired
numberinteger · int32Required
sizeinteger · int32Required
totalElementsinteger · int32Required
totalPagesinteger · int32Required
get/api/v1/datasources/roles
GET /api/v1/datasources/roles HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Accept: */*
{
  "content": [
    {
      "createDatasets": true,
      "deleteDatasource": true,
      "id": "text",
      "manageDatasourceSettings": true,
      "managePermissions": true,
      "name": "text",
      "viewDatasource": true
    }
  ],
  "first": true,
  "last": true,
  "number": 1,
  "size": 1,
  "totalElements": 1,
  "totalPages": 1
}

Create a datasource role

post
/api/v1/datasources/roles

This endpoint allows you to create a new custom datasource role in your organization's Soda Cloud account. Datasource roles define a named set of permissions that control what actions users can perform on individual datasources, such as creating datasets, managing datasource settings, managing permissions, or deleting the datasource.

Once created, the role can be assigned to users or user groups via the datasource 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

Datasources

Rate limiting

60 requests/60 seconds

Authorizations
AuthorizationstringRequired
Body
createDatasetsbooleanOptional
deleteDatasourcebooleanOptional
manageDatasourceSettingsbooleanOptional
managePermissionsbooleanOptional
namestringRequired
viewDatasourcebooleanOptional
Responses
200

Successful response

application/json
post/api/v1/datasources/roles
POST /api/v1/datasources/roles HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Content-Type: application/json
Accept: */*
Content-Length: 140

{
  "createDatasets": true,
  "deleteDatasource": true,
  "manageDatasourceSettings": true,
  "managePermissions": true,
  "name": "text",
  "viewDatasource": true
}
{
  "datasourceRole": {
    "createDatasets": true,
    "deleteDatasource": true,
    "id": "text",
    "manageDatasourceSettings": true,
    "managePermissions": true,
    "name": "text",
    "viewDatasource": true
  }
}

Update a datasource role

post
/api/v1/datasources/roles/{roleId}

This endpoint allows you to update the name or permissions of an existing custom datasource role. Datasource roles define a named set of permissions that control what actions users can perform on individual datasources, such as creating datasets, managing datasource settings, managing permissions, or deleting the datasource.

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

Datasources

Rate limiting

60 requests/60 seconds

Authorizations
AuthorizationstringRequired
Path parameters
roleIdstringRequired
Body
createDatasetsbooleanOptional
deleteDatasourcebooleanOptional
manageDatasourceSettingsbooleanOptional
managePermissionsbooleanOptional
namestringRequired
viewDatasourcebooleanOptional
Responses
200

Successful response

application/json
post/api/v1/datasources/roles/{roleId}
POST /api/v1/datasources/roles/{roleId} HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Content-Type: application/json
Accept: */*
Content-Length: 140

{
  "createDatasets": true,
  "deleteDatasource": true,
  "manageDatasourceSettings": true,
  "managePermissions": true,
  "name": "text",
  "viewDatasource": true
}
{
  "datasourceRole": {
    "createDatasets": true,
    "deleteDatasource": true,
    "id": "text",
    "manageDatasourceSettings": true,
    "managePermissions": true,
    "name": "text",
    "viewDatasource": true
  }
}

Delete a datasource role

delete
/api/v1/datasources/roles/{roleId}

This endpoint allows you to delete a custom datasource role from your organization's Soda Cloud account. Datasource roles define a named set of permissions that control what actions users can perform on individual datasources, such as creating datasets, managing datasource settings, managing permissions, or deleting the datasource.

Deletion is performed asynchronously and may take some time to complete.

Deletion will fail if the role is still assigned to any datasource 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

Datasources

Rate limiting

60 requests/60 seconds

Authorizations
AuthorizationstringRequired
Path parameters
roleIdstringRequired
Responses
200

Successful response

application/json
messagestringRequired
delete/api/v1/datasources/roles/{roleId}
DELETE /api/v1/datasources/roles/{roleId} HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Accept: */*
{
  "message": "text"
}

Get a datasource

get
/api/v1/datasources/{datasourceId}

This endpoint allows you to retrieve a specific datasource by its ID.

A datasource that is being deleted returns 400 with error code resource_in_deletion until the deletion has finished, after which it returns 404.

Authorization

Users with the View permission on the datasource can retrieve its details.

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

Datasources

Rate limiting

1000 requests/60 seconds

Authorizations
AuthorizationstringRequired
Path parameters
datasourceIdstringRequired
Responses
200

Successful response

application/json
get/api/v1/datasources/{datasourceId}
GET /api/v1/datasources/{datasourceId} HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Accept: */*
{
  "datasource": {
    "createdAt": "2026-01-01T00:00:00.000Z",
    "id": "text",
    "label": "text",
    "name": "text",
    "owner": {
      "email": "text",
      "firstName": "text",
      "fullName": "text",
      "lastName": "text",
      "userId": "text"
    },
    "type": "bigquery",
    "updatedAt": "2026-01-01T00:00:00.000Z",
    "version": "3"
  }
}

Update a datasource

post
/api/v1/datasources/{datasourceId}

Updates the configuration of an existing contract (V4) datasource.

Only the fields provided in the request body will be updated.

Supplying ownerId transfers ownership of the datasource. Runner service users cannot own a datasource.

Authorization

Users with the Manage datasource settings permission on the datasource, or the organization-level Manage datasources and runners permission, can update its configuration.

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

Datasources

Rate limiting

100 requests/60 seconds

Authorizations
AuthorizationstringRequired
Path parameters
datasourceIdstringRequired
Body
configurationFileContentsstringOptional
labelstringOptional
ownerIdstringOptional
runnerIdstringOptional
Responses
200

Successful response

application/json
post/api/v1/datasources/{datasourceId}
POST /api/v1/datasources/{datasourceId} HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Content-Type: application/json
Accept: */*
Content-Length: 86

{
  "configurationFileContents": "text",
  "label": "text",
  "ownerId": "text",
  "runnerId": "text"
}
{
  "datasource": {
    "createdAt": "2026-01-01T00:00:00.000Z",
    "id": "text",
    "label": "text",
    "name": "text",
    "owner": {
      "email": "text",
      "firstName": "text",
      "fullName": "text",
      "lastName": "text",
      "userId": "text"
    },
    "type": "bigquery",
    "updatedAt": "2026-01-01T00:00:00.000Z",
    "version": "3"
  }
}

Delete a datasource

delete
/api/v1/datasources/{datasourceId}

Deletes an existing datasource and all its associated resources.

The deletion is performed asynchronously.

Authorization

Users with the Delete permission on the datasource, or the organization-level Manage datasources and runners permission, can delete it.

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

Datasources

Rate limiting

10 requests/60 seconds

Authorizations
AuthorizationstringRequired
Path parameters
datasourceIdstringRequired
Responses
200

Successful response

application/json
messagestringOptional
delete/api/v1/datasources/{datasourceId}
DELETE /api/v1/datasources/{datasourceId} HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Accept: */*
{
  "message": "text"
}

Get datasource configuration file contents

get
/api/v1/datasources/{datasourceId}/configurationFileContents

This endpoint returns the connection configuration YAML currently stored for a datasource in your organization's Soda Cloud account.

Use it to read the configuration before editing it: send the returned YAML, with your edits applied, as configurationFileContents to POST /api/v1/datasources/{datasourceId}. That update replaces the whole file, so starting from this response is what keeps the settings you do not want to change.

Passwords and other credentials are stored as ${secret.NAME} placeholders when the configuration was created with secrets, and those placeholders are what this endpoint returns. A configuration that was created with literal credentials returns them as they were stored.

Authorization

Users with the Manage datasource settings permission on the datasource, or the organization-level Manage datasources and runners permission, can retrieve its configuration file contents.

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

Datasources

Rate limiting

1000 requests/60 seconds

Authorizations
AuthorizationstringRequired
Path parameters
datasourceIdstringRequired
Responses
200

Successful response

application/json
configurationFileContentsstringOptional
get/api/v1/datasources/{datasourceId}/configurationFileContents
GET /api/v1/datasources/{datasourceId}/configurationFileContents HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Accept: */*
{
  "configurationFileContents": "text"
}

Get datasource diagnostics warehouse configuration

get
/api/v1/datasources/{datasourceId}/diagnosticsWarehouse

This endpoint allows you to retrieve the diagnostics warehouse configuration for a specific datasource 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 is the schema the diagnostics tables are created in. It is null when no schema was configured, in which case Soda creates and uses a default schema. When the destination is qualified with a database or catalog, schema reports the schema part of it; the qualifier is not exposed here, and is preserved when you set schema through the update endpoint.

A datasource with no diagnostics warehouse configured returns {"enabled": false}, with every other field left out. It reads back the same way as a datasource whose diagnostics warehouse is turned off.

Authorization

Users with the View permission on the datasource can retrieve its diagnostics warehouse configuration.

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

Datasources

Rate limiting

1000 requests/60 seconds

Authorizations
AuthorizationstringRequired
Path parameters
datasourceIdstringRequired
Responses
200

Successful response

application/json
enabledbooleanOptional
reuseDatasourcebooleanOptional
schemastring · nullableOptional
tableNameTemplatestringOptional
get/api/v1/datasources/{datasourceId}/diagnosticsWarehouse
GET /api/v1/datasources/{datasourceId}/diagnosticsWarehouse HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Accept: */*
{
  "enabled": true,
  "failedRowsConfiguration": {
    "actionButton": {
      "enabled": true,
      "title": "text",
      "url": "text"
    },
    "enabled": true,
    "exposeQueries": true,
    "failedRowSamples": {
      "enabled": true,
      "sampleSize": 1
    },
    "failedRowsCollectionStrategy": {
      "maxRowCountOverride": 1,
      "threshold": 1,
      "thresholdCondition": "greaterThan",
      "type": "useDefaultMaxRowCount"
    },
    "locationMessage": "text",
    "maxRowCount": 1
  },
  "reuseDatasource": true,
  "scanAndResultsConfiguration": {
    "enabled": true
  },
  "schema": "text",
  "tableNameTemplate": "text"
}

Update datasource diagnostics warehouse configuration

post
/api/v1/datasources/{datasourceId}/diagnosticsWarehouse

This endpoint allows you to update the diagnostics warehouse configuration for a specific datasource in your organization's Soda Cloud account. The diagnostics warehouse collects scan-related data and securely stores it in your warehouse for storage and analysis.

Schema

The schema field sets the schema the diagnostics tables are created in, for every dataset of this datasource. Leave it out (or send an empty string) to let Soda create and use a default schema. Individual datasets can override it through schema on POST /api/v1/datasets/{datasetId} in their diagnosticsWarehouse block.

This request replaces the stored configuration, so a field you leave out is cleared. Read the current values with GET /api/v1/datasources/{datasourceId}/diagnosticsWarehouse first if you only mean to change some of them.

If the destination is qualified with a database or catalog, sending schema changes only the schema and keeps the qualifier, so reading the configuration and sending it back leaves the destination as it was.

Table name template

The tableNameTemplate field controls how diagnostic tables are named in the warehouse. Use the {dataset_name} placeholder to include the source dataset name. For example, dwh_{dataset_name}_failed produces table names like dwh_orders_failed.

Authorization

Users with the Manage datasource settings permission on the datasource, or the organization-level Manage datasources and runners permission, can update its diagnostics warehouse configuration.

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

Datasources

Rate limiting

100 requests/60 seconds

Authorizations
AuthorizationstringRequired
Path parameters
datasourceIdstringRequired
Body
configurationFileContentsstringOptional
enabledbooleanOptional
reuseDatasourcebooleanOptional
schemastringOptional
tableNameTemplatestringOptional
Responses
200

Successful response

application/json
enabledbooleanOptional
reuseDatasourcebooleanOptional
schemastring · nullableOptional
tableNameTemplatestringOptional
post/api/v1/datasources/{datasourceId}/diagnosticsWarehouse
POST /api/v1/datasources/{datasourceId}/diagnosticsWarehouse HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Content-Type: application/json
Accept: */*
Content-Length: 517

{
  "configurationFileContents": "text",
  "enabled": true,
  "failedRowsConfiguration": {
    "actionButton": {
      "enabled": true,
      "title": "text",
      "url": "text"
    },
    "enabled": true,
    "exposeQueries": true,
    "failedRowSamples": {
      "enabled": true,
      "sampleSize": 1
    },
    "failedRowsCollectionStrategy": {
      "maxRowCountOverride": 1,
      "threshold": 1,
      "thresholdCondition": "greaterThan",
      "type": "useDefaultMaxRowCount"
    },
    "locationMessage": "text",
    "maxRowCount": 1
  },
  "reuseDatasource": true,
  "scanAndResultsConfiguration": {
    "enabled": true
  },
  "schema": "text",
  "tableNameTemplate": "text"
}
{
  "enabled": true,
  "failedRowsConfiguration": {
    "actionButton": {
      "enabled": true,
      "title": "text",
      "url": "text"
    },
    "enabled": true,
    "exposeQueries": true,
    "failedRowSamples": {
      "enabled": true,
      "sampleSize": 1
    },
    "failedRowsCollectionStrategy": {
      "maxRowCountOverride": 1,
      "threshold": 1,
      "thresholdCondition": "greaterThan",
      "type": "useDefaultMaxRowCount"
    },
    "locationMessage": "text",
    "maxRowCount": 1
  },
  "reuseDatasource": true,
  "scanAndResultsConfiguration": {
    "enabled": true
  },
  "schema": "text",
  "tableNameTemplate": "text"
}

Trigger datasource discovery

post
/api/v1/datasources/{datasourceId}/discover

This endpoint triggers a discovery scan on the specified datasource.

Discovery scans detect new tables and schemas in the datasource. Use this to run discovery on-demand instead of waiting for the scheduled cron.

The response includes a Location header and X-Soda-Scan-Id header identifying the triggered scan. Use the scan ID with the Get scan status endpoint to poll for completion.

Authorization

Users with the Manage datasource settings permission on the datasource, or the organization-level Manage datasources and runners permission, can trigger discovery on the datasource.

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

Datasources

Rate limiting

10 requests/60 seconds

Authorizations
AuthorizationstringRequired
Path parameters
datasourceIdstringRequired
Responses
201

Created

post/api/v1/datasources/{datasourceId}/discover
POST /api/v1/datasources/{datasourceId}/discover HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Accept: */*

No content

Onboard discovered datasets

post
/api/v1/datasources/{datasourceId}/onboardDatasets

This endpoint triggers the asynchronous onboarding of discovered datasets for a datasource.

Supply a list of discovered dataset IDs in the request body to onboard them as datasets.

The response includes an onboarding ID that you can use to poll the status of the onboarding process.

Authorization

Users with the Create datasets permission on the datasource, or the organization-level Create new datasources and datasets permission, can onboard discovered datasets.

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

Datasources

Rate limiting

10 requests/60 seconds

Authorizations
AuthorizationstringRequired
Path parameters
datasourceIdstringRequired
Body
discoveredDatasetIdsstring[]Required
Responses
202

Accepted

post/api/v1/datasources/{datasourceId}/onboardDatasets
POST /api/v1/datasources/{datasourceId}/onboardDatasets HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Content-Type: application/json
Accept: */*
Content-Length: 33

{
  "discoveredDatasetIds": [
    "text"
  ]
}

No content

Get status for async dataset onboarding process

get
/api/v1/datasources/{datasourceId}/onboardDatasets/{operationId}

This endpoint allows you to check the status of an asynchronous dataset onboarding operation.

Use the operation ID returned by the onboard datasets endpoint to poll for its current state.

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

Datasources

Rate limiting

60 requests/60 seconds

Authorizations
AuthorizationstringRequired
Path parameters
datasourceIdstringRequired
operationIdstringRequired
Responses
200

Successful response

application/json
endedstring · date-timeOptional
idstringRequired
messagestringOptional
startedstring · date-timeOptional
stateobject · enumRequiredPossible values:
get/api/v1/datasources/{datasourceId}/onboardDatasets/{operationId}
GET /api/v1/datasources/{datasourceId}/onboardDatasets/{operationId} HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Accept: */*
{
  "ended": "2026-01-01T00:00:00.000Z",
  "id": "text",
  "message": "text",
  "started": "2026-01-01T00:00:00.000Z",
  "state": "queued"
}

List datasource responsibilities

get
/api/v1/datasources/{datasourceId}/responsibilities

This endpoint enables you to gather information about the user and user groups permissions assigned to a datasource, 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 datasource responsibilities to which the user has View datasource permissions. Soda Cloud Admins have access to all datasource 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.

Tags

Datasources

Rate limiting

100 requests/60 seconds

Authorizations
AuthorizationstringRequired
Path parameters
datasourceIdstringRequired
Query parameters
pageinteger · int32Optional
sizeinteger · int32Optional
Responses
200

Successful response

application/json
firstbooleanRequired
lastbooleanRequired
numberinteger · int32Required
sizeinteger · int32Required
totalElementsinteger · int32Required
totalPagesinteger · int32Required
get/api/v1/datasources/{datasourceId}/responsibilities
GET /api/v1/datasources/{datasourceId}/responsibilities HTTP/1.1
Host: cloud.soda.io
Authorization: Basic username:password
Accept: */*
{
  "content": [
    {
      "managed": true,
      "role": {
        "createDatasets": true,
        "deleteDatasource": true,
        "id": "text",
        "manageDatasourceSettings": true,
        "managePermissions": true,
        "name": "text",
        "viewDatasource": true
      },
      "type": "user",
      "userGroupId": "text",
      "userId": "text"
    }
  ],
  "first": true,
  "last": true,
  "number": 1,
  "size": 1,
  "totalElements": 1,
  "totalPages": 1
}

Update datasource responsibilities

post
/api/v1/datasources/{datasourceId}/responsibilities

This endpoint enables you to update the user and user groups permissions and their associated roles for a datasource 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 datasource responsibilities permission can update datasource responsibilities. Soda Cloud Admins have permission to update all datasources responsibilities.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

Datasources

Rate limiting

100 requests/60 seconds

Authorizations
AuthorizationstringRequired
Path parameters
datasourceIdstringRequired
Body
Responses
201

Created

post/api/v1/datasources/{datasourceId}/responsibilities
POST /api/v1/datasources/{datasourceId}/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?