Use the REST API

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:

  1. Click the user icon in the top right corner and select Manage API keys.
  2. Click Create new API Key.
  3. 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.
  4. Select the API permission(s) you want to associate with the key.
  5. Click Generate.
  6. 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>"
}

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} Manage External Systems External system and credential (Create/update)
Delete External Systems DELETE /{tenancyId}/externalsystems/{externalSystemId} Manage External Systems External system and credential (Delete)
List all credentials for an External System GET /{tenancyId}/externalsystems/{externalSystemId}/credentials View External Systems External system and credential (Read/list)
Retrieve the credential fields for an External System GET /{tenancyId}/externalsystems/{externalSystemId}/credentials/fields View External systems External system and credential (Read/list)
Create a Credential POST /{tenancyId}/externalsystems/{externalSystemId}/credentials Manage External Systems External system and credential (Create/update)
Patch a Credential PATCH /{tenancyId}/externalsystems/{externalSystemId}/credentials/{credentialId} Manage External Systems External system and credential (Create/update)
Delete a Credential DELETE /{tenancyId}/externalsystems/{externalSystemId}/credentials/{credentialId} Manage External Systems External system and credential (Delete)
Test the connection for an External System GET /{tenancyId}/externalsystems/{externalSystemId}/credentials/{credentialId}/testconnection View External systems External system and credential (Read/list)
Test External System connection using provided properties POST /{tenancyId}/externalsystems/testconnectionproperties View External systems External system and credential (Read/list)

Metadata operations

Action Request method & endpoint Required user capabilities Required API permission
List exportable objects in a Space GET /{tenancyId}/exportableobjects/{spaceId} Export Metadata Metadata exchange (Export)
Export metadata POST /{tenancyId}/export/{spaceId} Export Metadata Metadata exchange (Export)
Import metadata POST /{tenancyId}/import/{spaceId} Import Metadata Metadata exchange (Import)
Synchronize metadata POST /{tenancyId}/synchronize/{spaceId} Synchronize Metadata Metadata exchange (Synchronize or deploy Solution)
Upload a file (dmx for import/sync metadata or other files to create datasets) POST /{tenancyId}/upload Import Metadata or Manage Datasets Metadata exchange (Synchronize or deploy Solution)

Solutions operations

Action Request method & endpoint Required user capabilities Required API permission
Deploy solution POST /{tenancyId}/deploy Synchronize Metadata Between Environments Metadata exchange (Synchronize or deploy Solution)

Chart operations

Action Request method & endpoint Required user capabilities Required API permission
Retrieve sharing details for a Chart GET /{tenancyId}/charts/{spaceId}/{chartId}/sharing Manage Charts Charts (Share/include)
Update Chart sharing settings PUT /{tenancyId}/charts/{spaceId}/{chartId}/sharing Manage Charts Charts (Share/include)
Include or unincluded Chart in a Space PUT /{tenancyId}/charts/{spaceId}/include Manage Charts Charts (Share/include)

Dataset operations

Action Request method & endpoint Required user capabilities Required API permission
List all Datasets GET /{tenancyId}/datasets View Datasets Datasets (Read/list)
List all Datasets in a Space GET /{tenancyId}/datasets/{spaceID} View Datasets Datasets (Read/list)
Retrieve a Dataset GET /{tenancyId}/datasets/{spaceId}/{datasetId} View Datasets Datasets (Read/list)
Delete a Dataset DELETE /{tenancyId}/datasets/{spaceId}/{datasetId} Manage Datasets Datasets (Delete)
Update Dataset settings PATCH /{tenancyId}/datasets/{spaceId}/{datasetId} Manage Datasets Datasets (Update)
Create a Dataset POST /{tenancyId}/datasets/create Manage Datasets Datasets (Create)
Refresh a Dataset PUT /{tenancyId}/datasets/refresh View External systems Refresh data and execute Workflows or Automations (Refresh Dataset)
Query the status of a Dataset GET /{tenancyId}/datasets/status/{statusId} Manage Datasets or View External systems Refresh data and execute Workflows or Automations (Read Dataset status)

Function Operations

Action Request method & endpoint Required user capabilities Required API permission
List Functions available to all Spaces GET /{tenancyId}/functions View Functions Functions (Read/list)
List Functions available to a Space GET /{tenancyId}/functions/{spaceId} View Functions Functions (Read/list)
Create a Function POST /{tenancyId}/functions/{spaceId} Manage Functions Functions (Create/update)
Retrieve a Function GET /{tenancyId}/functions/{spaceId}/{functionId} View Functions Functions (Read/list)
Update a Function PUT /{tenancyId}/functions/{spaceId}/{functionId} Manage Functions Functions (Create/update)
Delete a Function DELETE /{tenancyId}/functions/{spaceId}/{functionId} Manage Functions Functions (Delete)
Publish a Function POST /{tenancyId}/functions/{spaceId}/{functionId}/publish Manage Functions Functions (Create/update)
Retrieve the sharing details for a Function GET /{tenancyId}/functions/{spaceId}/{functionId}/sharing Manage Functions Functions (Share)
Update the sharing settings for a Function PUT /{tenancyId}/functions/{spaceId}/{functionId}/sharing Manage Functions Functions (Share)

Issue operations

Action Request method & endpoint Required user capabilities Required API permission
List Issue list (and summary) available to a Space GET /{tenancyId}/issuelist/{spaceId} Manage Issue lists Issue list and issues (Read/list)
List Issues (and summary) in an Issue list GET /{tenancyId}/issuelist/{spaceId}/{issueListId}/issues Manage Issue lists Issue list and issues (Read/list)
Create an Issue list POST /{tenancyId}/issuelist/{spaceId} Manage Issue lists Issue list and issues (Create)
Retrieve an Issue list GET /{tenancyId}/issuelist/{spaceId}/{issueListId} Manage Issue lists Issue list and issues (Read/list)

Ruleset Operations

Action Request method & endpoint Required user capabilities Required API permission
List Rulesets available to all Spaces GET /{tenancyId}/rulesets View Rulesets Rulesets (Read/list)
List Rulesets available to a Space GET /{tenancyId}/rulesets/{spaceId} View Rulesets Rulesets (Read/list)
Create a Ruleset POST /{tenancyId}/rulesets/{spaceId} Manage Rulesets Rulesets (Create/update)
Retrieve a Ruleset GET /{tenancyId}/rulesets/{spaceId}/{rulesetId} View Rulesets Rulesets (Read/list)
Update a Ruleset PUT /{tenancyId}/rulesets/{spaceId}/{rulesetId} Manage Rulesets Rulesets (Create/update)
Delete a Ruleset DELETE /{tenancyId}/rulesets/{spaceId}/{rulesetId} Manage Rulesets Rulesets (Delete)
Publish a Ruleset POST /{tenancyId}/rulesets/{spaceId}/{rulesetId}/publish Manage Rulesets Rulesets (Create/update)
Retrieve the sharing details for a Ruleset GET /{tenancyId}/rulesets/{spaceId}/{rulesetId}/sharing Manage Rulesets Rulesets (Share/include)
Update the sharing settings for a Ruleset PUT /{tenancyId}/rulesets/{spaceId}/{rulesetId}/sharing Manage Rulesets Rulesets (Share/include)
Include or unincluded a Ruleset in a Space PUT /{tenancyId}/rulesets/{spaceId}/include Manage Rulesets Rulesets (Share/include)

Space Operations

Action Request method & endpoint Required user capabilities Required API permission
List all Spaces GET /{tenancyId}/spaces Manage Spaces Spaces (Read/list)
Retrieve a Space GET /{tenancyId}/spaces/{spaceId} Manage Spaces Spaces (Read/list)
Create a Space POST /{tenancyId}/spaces Manage Spaces Spaces (Create/update)
Update a Space PUT /{tenancyId}/spaces/{spaceId} Manage Spaces Spaces (Create/update)
Delete a Space DELETE /{tenancyId}/spaces/{spaceId} Manage Spaces Spaces (Delete)
Patch a Space PATCH /{tenancyId}/spaces/{spaceId} Manage Spaces Spaces (Create/update)

Schedule Operations

Action Request method & endpoint Required user capabilities Required API permission
List all Schedules GET /{tenancyId}/schedule View Schedules Schedules (Read/list)
List Schedules in a Space GET /{tenancyId}/schedule/{spaceId} View Schedules Schedules (Read/list)
Retrieve a Schedule GET /{tenancyId}/schedule/{spaceId}/{scheduleId} View Schedules Schedules (Read/list)

View Operations

Action Request method & endpoint Required user capabilities Required API permission
List all Views GET /{tenancyId}/views Manage Views Views (Read/list)
List Views in a Space GET /{tenancyId}/views/{spaceId} Manage Views Views (Read/list)
Retrieve the sharing details for a View GET /{tenancyId}/views/{spaceId}/{viewId}/sharing Manage Views Views (Share/include)
Update View sharing settings PUT /{tenancyId}/views/{spaceId}/{viewId}/sharing Manage Views Views (Share/include)
Include or unincluded View in a Space PUT /{tenancyId}/views/{spaceId}/include Manage Views Views (Share/include)

Workflow Operations

Action Request method & endpoint Required user capabilities Required API permission
List all Workflows GET /{tenancyId}/workflows Manage Workflows Workflow operations (Read)
List Workflows available to a Space GET /{tenancyId}/workflows/{spaceId} Manage Workflows Workflow operations (Read)
Retrieve workflow settings GET /{tenancyId}/workflows/{spaceId}/{workflowId}/settings/{versionType} Manage Workflows Workflow operations (Read)
Retrieve the sharing settings for a Workflow GET /{tenancyId}/workflows/{spaceId}/{workflowId}/sharing Manage Workflows Workflow operations (Share)
Update Workflow sharing settings PUT /{tenancyId}/workflows/{spaceId}/{workflowId}/sharing Manage Workflows Workflow operations (Share)
Include or unincluded Workflow in a Space PUT /{tenancyId}/workflows/{spaceId}/include Manage Workflows Workflow operations (Share)

Schedule operations

Action Request method & endpoint Required user capabilities Required API permission
Retrieve the status for a Schedule GET /{tenancyId}/schedule/status/{executionId} Monitor Workflows / Jobs Refresh data and execute Workflows or Automations (Read/list jobs or Schedule status)
Execute a Schedule POST /{tenancyId}/schedule/runnow Execute Workflows Refresh data and execute Workflows or Automations (Execute Workflow or Schedule (Submit jobs)

Worfklow execution operations

Action Request method & endpoint Required user capabilities Required API permission
List all Jobs GET /{tenancyId}/jobs Monitor Workflows / Jobs Refresh data and execute Workflows or Automations (Read/list jobs or Schedule status)
Retrieve details for a Job GET /{tenancyId}/jobs/{executionId} Monitor Workflows / Jobs Refresh data and execute Workflows or Automations (Read/list jobs or Schedule status)
Execute a workflow POST /{tenancyId}/jobs View Workflows and Execute Workflows Refresh data and execute Workflows or Automations (Execute Workflow or Schedule (Submit jobs)

Troubleshooting

If you get a HTTP response with a 401 error, the possible causes are:

Possible cause Error message in HTTP response body
Missing user capabilities The API key must have the following capabilities: {required capabilities}
User (creator of API key) is disabled Unauthorized
Invalid API key Unauthorized
Expired API key Unauthorized
Missing API key Unauthorized
Missing API key permissions Unauthorized
Incorrect environment label Unauthorized
Missing environment label Unauthorized
Aperture Data Studio

Customize