Interacting with the server
The client interacts with the server. It can create computation tasks and collect their results, manage organizations, collaborations, users, etc. The server hosts an API which the client can use for this purpose. There is a client library available for R and Python.
For tutorials on how to use the clients, please visit our discourse pages:

API documentation

To see the API docs of your server visit:
View the API documentation of the server you are using
For Petronas, the API docs can thus be found at


To access the API you need to be a user, node or container (algorithm). Nodes and containers have a fixed set of permissions at the server. Users can have rules assigned to them by another user.
These rules can be assigned from the root user using the API. The root user which is created during initialization at the first run of the server has all available permissions.
It is not possible to assign rules to another user if you do not own the rule you are trying to assign.
It is possible to collect rules into a single role so that you can assign them to multiple users. This approach allows you to implement your own roles and distribution of permissions within your organization.
The following roles are pre-defined, and are created when a new server is started for the first time.
Superuser with all permissions, can be assigned only by a superuser itself.
Role that all nodes have
Role that all containers have
An administrator can also assign rules and roles using the shell.

Client libraries

You can use any language to interact with the API of the server as long as it is able to create HTTP-requests. However, we do recommend using one of our client libraries, as this will greatly simplify the process of serializing and encrypting data. It also helps to find the parameters needed for each of the API endpoints.
The R client is only suitable for creating tasks and retrieve their results. With the Python client it is possible to use the entire API.