PROCESIO API Documentation

Avatar

By Marian Voicu

updated 8 days ago

Our REST APIs allow you to integrate with PROCESIO from any other application. We expose 2 APIs: Proxy API and Web API. Use the Proxy API for connecting to the Authentication Service, and the Web API to perform operations on your application, such as running a process, or getting a data type configuration.

Proxy API

Use the Proxy API to reach the Authentication Service. The Authentication Service exposes methods such as authenticate, refreshToken, password change, and password update.

In order to be able to perform any operation on the PROCESIO platform through the Web API, you need to first get an access token from the Proxy API. In order to obtain an access token you can use the POST /api/Authentication method.

The POST /api/Authentication method requires the following parameters:

  • realm: your tenant name (example: procesio01)

  • grant_type: password

  • username: your user name

  • password: your user’s password

  • client_id: procesio-ui

  • client_secret (can be left empty)

If the request is successful, you will receive an access token in the response which you will be able to use to access the Web API services.

Here’s how the request would look like testing through Swagger:


And if successful, the response in Swagger will look like this:


For a full list of methods, check Proxy API.  

Web API

Use the Web API to interact with the PROCESIO platform. To be able to send requests to the Web API, you need to be authorized with the access token received from the Proxy API (see the previous chapter regarding the Proxy API).

Bearer Authentication


API Key Authentication


Once authorized to the WebAPI, you have access to the following services:


Service 

Method type

Method name

Description

Actions

GET

/api/Actions/{id}



Actions

DELETE

/api/Actions/{id}


Actions

GET

/api/Actions


Actions

POST

/api/Actions


Actions

GET

/api/Actions/category/{category}


Actions

POST

/api/Actions/test


Actions

GET

/api/Actions/test/{id}


Credentials

GET

/api/Credentials/types

Returns the credential configuration types (REST API, Email Server) with their associated fields (URL, authentication type,..).

Credentials

POST

/api/Credentials/types

Creates a new credential configuration type.

Credentials

GET

/api/Credentials/types/{id}

Returns the credential fields necessary for a given type.

Credentials

POST

/api/Credentials/test

Tests if a credential configuration is valid.

Credentials

GET

/api/Credentials

Returns a list of existing credential configurations.

Credentials

POST

/api/Credentials

Creates a new credential configuration.

Credentials

PUT

/api/Credentials

Modifies an existing credential configuration.

Credentials

GET

/api/Credentials/list/{templateId}


Credentials

GET

/api/Credentials/{id}

Returns the credential configuration details for a configuration ID.

Credentials

DELETE

/api/Credentials/{id}

Deletes a credential configuration based on a configuration ID.

Credentials

GET

/api/Credentials/verbs/{templateId}


DataTypes

POST

/api/DataTypes

Creates a new data type.

DataTypes

PUT

/api/DataTypes

Modifies an existing data type.

DataTypes

GET

/api/DataTypes

Returns a list of available data types in the tenant.

DataTypes

GET

/api/DataTypes/{id}

Returns the attributes of a data type for a data type id.

DataTypes

DELETE

/api/DataTypes/{id}

Deletes a data type based on the data type ID.

DataTypes

GET

/api/DataTypes/{value}

Returns the properties of a data type based on the data type name.

DataTypes

GET

/api/DataTypes/primary

Returns a list of primitive data types available on the platform.

Projects

POST

/api/Projects

Create a process.

Projects

PUT

/api/Projects

Modify a process.

Projects

GET

/api/Projects

Returns a list of processes.

Projects

POST

/api/Projects/validate

Validates a process.

Projects

DELETE

/api/Projects/{id}

Deletes a process based on the ID.

Projects

GET

/api/Projects/{id}

Returns the process configurations based on a process ID.

Projects

GET

/api/Projects/{id}/instances/publish

Copies a process and creates an instance which is ready to be launched. After publishing the process, use the launch method to execute the instance using the ID returned by this method.

Alternatively use the run method to execute a process.

Projects

GET

/api/Projects/{id}/instances

Returns a list of process instances for a given process ID.

Projects

GET

/api/Projects/instances/{id}/status

Returns the status of a process instance.

Projects

GET

/api/Projects/instances/{id}/launch

Executes a process instance by instance ID. Note that the process instance is created with the publish method.

Projects

POST

/api/Projects/{id}/run

Trigger a process using the process ID.

Schedules

GET

/api/Schedules

Returns a list of schedules.

Schedules

POST

/api/Schedules

Create a schedule.

Schedules

PUT

/api/Schedules

Modify a schedule.

Schedules

GET

/api/Schedules/{scheduleId}

Returns the schedule configurations based on a schedule ID.

Schedules

DELETE

/api/Schedules/{scheduleId}

Deletes a process based on the ID.

Schedules

POST

/api/Schedules/{scheduleId}/duplicate

Creates a copy of a schedule based on the ID.


Schedules

GET

/api/Schedules/{scheduleId}/status

Returns the schedule status based on the ID.

Status

GET

/api/Status

Returns the platform status.


To test these methods, check Web API.  

How to run a process from an external application?

Step 1:  Authenticate to PROCESIO via our API and get the access token. For this, you can use the POST /auth/authenticate method. Specify the following parameters in your request:

  • realm: your tenant name (example: procesio01)

  • grant_type: password

  • username: your user name

  • password: your user’s password

  • client_id: procesio-ui

  • client_secret (can be left empty)

Execute the POST /auth/authenticate method. Copy the access token value from the POST /auth/authenticate method response.

Step 2: Get the process ID. One way to do this is from the url of the process page, by copying everything after the “designer/” part.

Or if you prefer, you can go on the Processes page, click on the context menu on the right of each process, and click “Copy process ID”. Paste this ID in a file editor.Step 3: Prepare the JSON body request if your process has any input variables defined. If not, skip to step 4.

To obtain the JSON body request, you can go on the Processes page, click on the context menu on the right of each process, and click “Copy input variables (JSON)”. Paste this in a file editor. Replace the empty values with the corresponding values for your input process variables.

Step 4: Configure the POST /api/Projects/{id}/run method request. The authorization value is “bearer <access_token>”, where the access_token is the value obtained from step 1.

Set the “id” parameter to the process ID obtained from step 2.

In the body part, paste the JSON request obtained from step 3.

Execute your request. You will get in return an instance ID which you can use to get the status of execution for your process, using the GET /api/Projects/instances/{id}/status method. You’ll just need to replace the {id} with the instance ID obtained from the run method.


Related links:
Using PROCESIO API Keys

Working with process variables

How to create a basic process

Did this answer your question?