Data Studio's REST API provides a RESTful interface which can be integrated programmatically, allowing you to fully automate or speed up certain operations, such as:
Updating external system credentials.
Listing all objects in an Environment or Space.
Creating and managing Datasets, Spaces, Users, User Groups, Roles, and Permissions.
Sharing objects and include them into Spaces.
Executing Workflows and Schedules.
Importing, synching, and exporting metadata.
Generating audit information.
Generating system monitoring metrics.
Querying Dataset creation/refresh status.
Retrieving API key information.
Uploading files for use by other APIs.
Getting started
Authentication
All API requests require an API key for authentication. Follow the steps below to generate an API key:
Only users assigned the role permission ‘API access’ are able to generate and manage API keys.
Click the user icon in the top right corner and select Manage API keys.
Click Create new API Key.
Enter a name for the key and specify the number of days until it expires. The ‘Maximum days for API Keys’ can be adjusted by editing the Environment settings.
Select the API permission(s) you want to associate with the key.
Click Generate.
Click Copy to take a copy of the generated key. You will have to paste it in the authorization header of your request.
Your authorization header should look like this:
{
"Authorization": "<Environment external label> <Your API Key>"
}
The Environment's external label is used to identify the Environment in which the API key was generated.
Any attempt to access the API with an incorrect or missing key, or a key generated from a user without the necessary role capabilities and relevant Space access will be denied. To ensure API operations are successful, the user creating the API key has to have necessary capabilities and permissions.
API reference
The full interactive API reference is available in Swagger UI, allowing you to test resources and get a better understanding of all requests and parameters.
You can access it by clicking the help icon (?) in the top right corner of Data Studio followed by 'Try out the API', which will open the page: http://<server>/api/docs/index.html. If you've installed Data Studio locally using the default server port, the URL will be http://localhost:7701/api/docs/index.html.
Please refer below for the full listing of APIs together with the user capabilities and API permission requirements:
Audit operations
Action
Request method & endpoint
Required user capabilities
Required API permission
List event information
GET /{tenancyId}/events
Installation Manager
Admin and audit (Audit event and session data)
List session information
GET /{tenancyId}/sessions
Installation Manager
Admin and audit (Audit event and session data)
Metric operations
Action
Request method & endpoint
Required user capabilities
Required API permission
Returns the most used performance metrics
GET /metrics
View System Information
Admin and audit (Performance and disk space metrics)
Lists all recorded metric
GET /metrics/list
View System Information
Admin and audit (Performance and disk space metrics)
Returns detailed information for the specified metric
GET /metrics/{name}
View System Information
Admin and audit (Performance and disk space metrics)
REST API Key operations
Action
Request method & endpoint
Required user capabilities
Required API permission
Retrieve API key information
GET /{tenancyId}/apiKey
Manage API Keys
Admin and audit (Read/list API keys)
Role operations
Action
Request method & endpoint
Required user capabilities
Required API permission
List all Roles
GET /{tenancyId}/roles
Access Designer Interface
Users, user groups, roles (Read/list)
Retrieve a Role
GET /{tenancyId}/roles/{roleId}
Access Designer Interface
Users, user groups, roles (Read/list)
Create a Role
POST /{tenancyId}/roles
Manage Roles and Permissions
Users, user groups, roles (Create/update)
Patch a Role
PATCH /{tenancyId}/roles/{roleId}
Manage Roles and Permissions
Users, user groups, roles (Create/update)
Update a Role
PUT /{tenancyId}/roles
Manage Roles and Permissions
Users, user groups, roles (Create/update)
Delete a Role
DELETE /{tenancyId}/roles/{roleId}
Manage Roles and Permissions
Users, user groups, roles (Create/update)
User operations
Action
Request method & endpoint
Required user capabilities
Required API permission
List all Users
GET /{tenancyId}/users
Access Designer Interface
Users, user groups, roles (Read/list)
Retrieve a User
GET /{tenancyId}/users/{userId}
Access Designer Interface
Users, user groups, roles (Read/list)
Create a User
POST /{tenancyId}/users
Manage Users
Users, user groups, roles (Create/update)
Patch a User
PATCH /{tenancyId}/users/{userId}
Manage Users
Users, user groups, roles (Create/update)
Update a User
PUT /{tenancyId}/users/{userId}
Manage Users
Users, user groups, roles (Create/update)
Delete a User
DELETE /{tenancyId}/users/{userId}
Manage Users
Users, user groups, roles (Create/update)
User group operations
Action
Request method & endpoint
Required user capabilities
Required API permission
List all Users Groups
GET /{tenancyId}/usergroups
Access Designer Interface
Users, user groups, roles (Read/list)
Retrieve a User Group
GET /{tenancyId}/usergroups/{userGroupId}
Access Designer Interface
Users, user groups, roles (Read/list)
Create a User Group
POST /{tenancyId}/usergroups
Manage User Groups
Users, user groups, roles (Create/update)
Patch a User Group
PATCH /{tenancyId}/usergroups/{userGroupId}
Manage User Groups
Users, user groups, roles (Create/update)
Update a User Group
PUT /{tenancyId}/usergroups/{userGroupId}
Manage User Groups
Users, user groups, roles (Create/update)
Delete a User Group
DELETE /{tenancyId}/usergroups/{userGroupId}
Manage User Groups
Users, user groups, roles (Create/update)
External systems and credential operations
Action
Request method & endpoint
Required user capabilities
Required API permission
List all External Systems
GET /{tenancyId}/externalsystems
View External Systems
External system and credential (Read/list)
Create External Systems
POST /{tenancyId}/externalsystems
Manage External Systems
External system and credential (Create/update)
Update External Systems
PUT /{tenancyId}/externalsystems/{externalSystemId}