IBM webMethods Integration APIs

IBM® webMethods Integration APIs are categorized into the following domains:

Domain Description
Workflow APIs Creating, exporting, importing, deleting, enabling, disabling, and executing a workflow
Flow service APIs Exporting, importing, deleting, and executing a Flow service
Project APIs Creating, updating, deleting, and retrieving a project Retrieving a list of projects Retrieving a list of project assets Publishing and deploying a project Exporting and importing a projectCreating, deleting, updating, and retrieving a project parameter Listing project parameters
Role Management APIs Creating a role for a particular tenantUpdating an existing roleDeleting a roleRetrieving details of a particular roleListing a collection of roles associated with a particular tenant
User Management APIs Retrieving a list of users associated with a particular tenant Assigning roles to a user
Themes APIs Creating a theme Managing themes Retrieving theme details Listing themes Retrieving default values for the current theme
Webhook APIs Retrieving details of workflows that are webhook-enabled Regenerating webhook URL for an existing workflow in a particular tenant Adding an authentication mechanism to a webhook in a particular tenant
Recipes APIs Creating and deleting a recipe Retrieving recipe details Retrieving all recipes for a tenant
Trigger APIs Retrieving details of trigger-enabled workflow Deleting a trigger
Account APIs Allows you to retrieve, delete, switch accounts from the workflow connector and also allows you to retrieve the config data
Metrics APIs Allows you to retrieve the execution summary and logs
Reference APIs Allows you to retrieve, add, update, and delete the reference data

Key points to note

  • When providing public and private keys to the APIs, they must be encoded as JSON string. To encode the contents of a public or private keys PEM files,
    1. Open the PEM file in a text editor.
    2. Replace all newlines (\n) with the literal string \\r\\n.
    3. Save and copy the file contents.
    4. Use the copied string in the API payload.
    Tip: The Export configurations API already returns the public key in JSON format.
  • The passwords and secrets associated with the connections and variables in the payload are not stored for security reasons. You must manually re-enter to ensure proper functioning of the APIs.
  • All APIs support API v2. API v2 excludes the output and error keys from the response.

    Example

    API v1 API v2

    Endpoint: <domain>/apis/v1/rest/projects/:project/workflows

    Success response:
    {
    	output :{
    				uid: <workflow_uid>,
    				name: <workflow_name>,
    				description: <workflow_description>
    			}
    	}

    Endpoint: <domain>/apis/v2/rest/projects/:project/workflows

    Success response:
    {
    				uid: <workflow_uid>,
    				name: <workflow_name>,
    				description: <workflow_description>
    			} 

    Endpoint: <domain>/apis/v1/rest/projects/:project/workflows

    Error response:
    {
      "error": {
        "message": "No data found.",
        "code": 404,
        "errorSource": {
          "errorCode": "API_000",
          "requestID": "935d9c753d0897d07f2042cac0bf7577"
        }
      }
    }

    Endpoint: <domain>/apis/v2/rest/projects/:project/workflows

    Error response:
    {
      "message": "No data found.",
      "code": 404,
      "errorSource": {
        "errorCode": "API_000",
        "requestID": "b42240beb3f51a5f12af555fe793da83"
      }
    } 

Deprecated URLs

The URL syntax of all public APIs that were introduced in Release 10.11 are deprecated and will become obsolete in a later release. Currently, deprecated URLs are functional and supported only for backward compatibility.

Old URL Format (Deprecated): <domain>/enterprise/v1/rest/...

New URL Format: <domain>/apis/v1/rest/...

The APIs listed below have been deprecated:

APIs Deprecated URL New URL
Workflow API - Exporting a workflow <domain>/enterprise/v1/rest/projects/:project/workflows/:workflow/export <domain>/apis/v1/rest/projects/:project/workflows/:workflow/export
Workflow API - Importing a workflow <domain>/enterprise/v1/rest/projects/:project/workflow-import <domain>/apis/v1/rest/projects/:project/workflow-import
Workflow API - Deleting a workflow <domain>/enterprise/v1/rest/projects/:project/workflows/:workflow <domain>/apis/v1/rest/projects/:project/workflows/:workflow
Workflow API - Executing a workflow <domain>/enterprise/v1/rest/projects/:project/workflows/:workflow/run <domain>/apis/v1/rest/projects/:project/workflows/:workflow/run
Workflow API - Retrieving workflow execution status <domain>/enterprise/v1/rest/projects/:project/workflow-run/:run_id <domain>/apis/v1/rest/projects/:project/workflow-run/:run_id
Flow service API - Exporting a Flow service <domain>/enterprise/v1/rest/projects/:project/flows/:flow/export <domain>/apis/v1/rest/projects/:project/flows/:flow/export
Flow service API - Importing a Flow service <domain>/enterprise/v1/rest/projects/:project/flow-import <domain>/apis/v1/rest/projects/:project/flow-import
Flow service API - Deleting a Flow service <domain>/enterprise/v1/rest/projects/:project/flows/:flow <domain>/apis/v1/rest/projects/:project/flows/:flow
Flow service API - Executing a Flow service <domain>/enterprise/v1/rest/projects/:project/flows/:flow/run <domain>/apis/v1/rest/projects/:project/flows/:flow/run
Project API - Creating a project <domain>/enterprise/v1/rest/projects <domain>/apis/v1/rest/projects
Project API - Updating a project <domain>/enterprise/v1/rest/projects <domain>/apis/v1/rest/projects/:project
Project API - Deleting a project <domain>/enterprise/v1/rest/projects/project <domain>/apis/v1/rest/projects/:project
Project API - Retrieving a project <domain>/enterprise/v1/rest/projects/project <domain>/apis/v1/rest/projects/:project
Project API - Retrieving a list of projects <domain>/enterprise/v1/rest/projects <domain>/apis/v1/rest/projects
Note: Currently, both the deprecated URL and the new URL are supported for the listed public APIs. It is strongly recommended that you review the current deployment and change the implementation to utilize the new URL format provided.

Error Handling

When a request is successful, the API returns an HTTP 200 OK status, indicating that the operation was completed successfully.

If a request to any public API fails, the response includes the error source, providing more detailed information about the cause of the failure.

Workflow APIs

Create

Allows you to create a workflow.
Note:
  • To create workflows within a project, admin access is required. Only admins have the necessary permissions for this activity.

  • If you do not have admin access but hold a custom role, ensure that you have been granted write access specifically for the project where you intend to create workflows.

Steps:

  • In a REST client platform, add the authentication details of the tenant where you want to create a workflow.

    Headers: 
    {
    	Authorization: BasicAuth
    }
    Body: 
    {
    	name: <workflow_name>,
    	description: <description>
    }
  • Perform a POST request at the URL of the project.

    URL Syntax: <domain>/apis/v1/rest/projects/:project/workflows

    Method: POST

    Output:

    If the request is successful, you will receive the HTTP 200 OK success status response code.

    	{
    	output :{
    				uid: <workflow_uid>,
    				name: <workflow_name>,
    				description: <workflow_description>
    			}
    	}

Export

Allows you to export a workflow and all its dependencies. The exported data will be downloaded as a zip file to your local machine.
Note:
  • To export workflows from a project, admin access is required. Only admins have the necessary permissions for this activity.

  • If you do not have admin access but hold a custom role, ensure that you have been granted write access specifically for the project where you intend to export workflows.

Steps:

  • In a REST client platform, add the authentication details of the tenant from where you want to export a workflow.

    Headers: 
    	{
    		Authorization: BasicAuth
    }
    Body: 
    	{
    		description: <description>,
    		name: <workflow_name>
    }
  • Perform a POST request at the URL of the workflow that you want to export.

URL Syntax (Deprecated): <domain>/enterprise/v1/rest/projects/:project/workflows/:workflow/export

Use this instead,

URL Syntax: <domain>/apis/v1/rest/projects/:project/workflows/:workflow/export

In this URL request, /:project is the name of the project associated with the workflow you want to export and /:workflow is the UID or name of the workflow you want to export.
Note: If multiple workflows share the same name, a list of all matching workflows, including their UIDs and names, will be provided. You can then select the desired workflow UID from this list and use it in the URL path.

Method: POST

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{
output: 
	{
		download_link: <download_link>,
		valid_till: <valid_till>
	}
}
Note: The value in valid_till indicates the validity period for downloading the link.

Import

Allows you to import a workflow and all its dependencies into a specific project. Each time you make a request, a new workflow is created in the specified project. You can choose to overwrite an existing workflow present in the specified project by using a request body parameter in the endpoint URL.
Note:
  • To import workflows into a project, admin access is required. Only admins have the necessary permissions for this activity. If you do not have admin access but hold a custom role, ensure that you have been granted write access specifically for the project where you intend to import workflows.

  • If a workflow contains any custom actions and a user imports the workflow using Public API, then the custom actions are overwritten.

Steps:

  • In a REST client platform, add the required details of the tenant where you want to import a workflow.

    Headers: 
    	{             
    Authorization: BasicAuth
    }
    
    domain => https:/<tenant_name>.dev-int-aws-us.webmethods.io
    
    Body: 
    	{
    recipe: <zip_file_binary>
    }
  • Perform a POST request at the URL of the workflow.

URL Syntax (Deprecated): <domain>/enterprise/v1/rest/projects/:project/workflow-import

Use this instead,

URL Syntax: <domain>/apis/v1/rest/projects/:project/workflow-import

In this URL request, /:project is the name of the project where you want to import.

You can choose to overwrite an existing workflow present in the specified project by using the following request body parameter: overwrite=true
Note:
  • If the workflow already exists and the overwrite flag is not set, a new workflow is created in the specified project.

  • If the workflow already exists and the overwrite flag is set, the existing workflow is overwritten with the imported workflow.

  • If the workflow doesn’t exist and the overwrite flag is set, a new workflow is created with the same UID as the exported workflow. If the same workflow is imported again, the existing workflow is overwritten with an updated version number.

Method: POST

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{
output: 
	{
		name: <workflow_name>,
		description: <workflow_description>,
		refid: <workflow_refid>,
		sid: <workflow_sid>,
		uid: <workflow_uid>,
		project_uid: <workflow_project_uid>,
		tenant_uid: <workflow_tenant_uid>
	}
}

Delete

Allows you to delete a workflow and all its dependencies from a particular project.
Note:
  • To delete workflows within a project, admin access is required. Only admins have the necessary permissions for this activity.

  • If you do not have admin access but hold a custom role, ensure that you have been granted write access specifically for the project where you intend to delete workflows.

Steps:

  • In a REST client platform, add the authentication details of the tenant associated with the workflow that you want to delete.

     Headers: 
    	{             
         Authorization: BasicAuth
     }
  • Perform a DELETE request at the URL of the workflow.

    URL Syntax (Deprecated): <domain>/enterprise/v1/rest/projects/:project/workflows/:workflow

    Use this instead,

    URL Syntax: <domain>/apis/v1/rest/projects/:project/workflows/:workflow

    In this URL request, /:project is the name of the project associated with the workflow you want to delete and /:workflow is the UID of the workflow you want to delete.

    Method: DELETE

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{
 output: 
	{
	message: "Object deleted successfully."
	}
}

Execute

Allows you to execute a particular workflow.
Note: Ensure that you have been granted write/execute access specifically for the project where you intend to execute the workflow.

Steps:

  • In a REST client platform, add the authentication details of the tenant associated with the workflow you want to execute.
	Headers: 
	{             
	Authorization: BasicAuth
	}
  • Perform a POST request at the URL of the workflow you want to execute.

    URL Syntax (Deprecated): <domain>/enterprise/v1/rest/projects/:project/workflows/:workflow/run

    Use this instead,

    URL Syntax: <domain>/apis/v1/rest/projects/:project/workflows/:workflow/run

    In this URL request, /:project is the name of the project associated with the workflow you want to execute and /:workflow is the UID of the workflow you want to execute.

    Method: POST

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{
 output : 
	{
	run_id: <run_id>,
	response: "Workflow enqueue successfully.",
	status: "<current_stauts_of_workflow_run>",
	workflow_uid: <workflow_uid>,
	project_uid: <workflow_project_uid>,
	tenant_uid: <workflow_tenant_uid>
    }
}   

Get workflow execution status

Allows you to check the current status of the workflow execution.

Steps:

  • In a REST client platform, add the authentication details of the tenant associated with the workflow of which execution status you want to retrieve.
    Headers: 
	{             
		Authorization: BasicAuth
    }
  • Perform a GET request at the URL of the workflow.

    URL Syntax (Deprecated): <domain>/enterprise/v1/rest/projects/:project/workflow-run/:run_id

    Use this instead,

    URL Syntax: <domain>/apis/v1/rest/projects/:project/workflow-run/:run_id

    In this URL request, /:project is the name of the project associated with the workflow.

    Method: GET

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{
	output:
		{
		"objects":
				[{
				"run_id": <run_id>,
				"status": "<current_status_of_workflow_run>"
				},
				{
				.
				.
				}
				]
		}
}

Enable a workflow

Allows you to activate a workflow within the specified project.

Steps:

  • In a REST client platform, add the authentication details of the tenant associated with the workflow that you want to enable.
    Headers: 
	{             
		Authorization: BasicAuth
    }
  • Perform a PUT request at the URL of the workflow.

    URL Syntax: <domain>/apis/v1/rest/projects/<project_name>/workflows/<workflow_name>/activate

    Method: PUT

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{
     "name": "<workflow_name>",
     "uid": "<workflow_uid>",
     "active": true
}

Disable a workflow

Allows you to deactivate a workflow within the specified project.

Steps:

  • In a REST client platform, add the authentication details of the tenant associated with the workflow that you want to disable.
    Headers: 
	{             
		Authorization: BasicAuth
    }
  • Perform a PUT request at the URL of the workflow.

    URL Syntax: <domain>/apis/v1/rest/projects/<project_name>/workflows/<workflow_name>/deactivate

    Method: PUT

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{
     "name": "<workflow_name>",
     "uid": "<workflow_uid>",
     "active": false
}
Note:
  • If multiple workflows share the same name, the API will provide a list of all matching workflows, including their UIDs and names. You can then select the desired workflow UID from this list and use it in the URL path.

  • API calls are case-sensitive for project_name and workflow_name.

  • Only one state change (activation or deactivation) is allowed per request.

Get workflow details

Allows you to retrieve details of a workflow within a project.

Steps:

  • In a REST client platform, add the authentication details of the tenant associated with the workflow whose details you want to retrieve.
Headers: 
{             
    Authorization: BasicAuth
}
  • m
  • Perform a GET request at the URL of the workflow.

    URL Syntax: <domain>/apis/v1/rest/projects/<project_name>/workflows/<workflow_name>

    Method: GET

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{
         "name": "<workflow_name>",
         "description": "<workflow_description>",
         "refid": "<workflow_refid>",
         "sid": "<workflow_sid>",
         "uid": "<workflow_uid>",
         "project_uid": "<workflow_project_uid>",
         "tenant_uid": "<workflow_tenant_uid>"
       }
Note:
  • If multiple workflows share the same name, the API will provide a list of all matching workflows, including their UIDs and names. You can then select the desired workflow UID from this list and use it in the URL path.

  • API calls are case-sensitive for project_name and workflow_name.

Flow service APIs

Export

Allows you to export a Flow service and all its dependencies. The exported data will be downloaded as a zip file to your local machine.
Note:
  • To export Flow services from a project, admin access is required. Only admins have the necessary permissions for this activity.

  • If you do not have admin access but hold a custom role, ensure that you have been granted write access specifically for the project where you intend to export Flow services.

Steps:

  • In a REST client platform, add the authentication details of the tenant from where you want to export a Flow service.
	Headers: 
	{
		Authorization: BasicAuth
    }
  • Perform a POST request at the URL of the Flow service that you want to export.

URL Syntax (Deprecated): <domain>/enterprise/v1/rest/projects/:project/flows/:flow/export

Use this instead,

URL Syntax: <domain>/apis/v1/rest/projects/:project/flows/:flow/export

In this URL request, /:project is the name of the project associated with the Flow service you want to export and /:flow is the name of the Flow service you want to export.

Method: POST

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{
  output : 
	{
	download_link: <download_link>,
	valid_till: <valid_till>
    }
}
Note: The value in valid_till indicates the validity period for downloading the link.

Import

Allows you to import a Flow service and all its dependencies into a particular project. If you import a Flow service with the same name as an existing Flow service in the tenant, then IBM webMethods Integration overwrites the existing Flow service. If a Flow service with the same name does not exist, then a new Flow service is created.
Note:
  • To import Flow services into a project, admin access is required. Only admins have the necessary permissions for this activity.

  • If you do not have admin access but hold a custom role, ensure that you have been granted write access specifically for the project where you intend to import Flow services.

Steps:

  • In a REST client platform, add the required details of the tenant where you want to import a Flow service.
Headers: 
	{             
     Authorization: BasicAuth
    }
         
    domain => https:/<tenant_name>.dev-int-aws-us.webmethods.io
         
Body: 
	{
     recipe: <zip_file_binary>
	}
  • Perform a POST request at the URL of the Flow service.

URL Syntax (Deprecated): <domain>/enterprise/v1/rest/projects/:project/flow-import

Use this instead,

URL Syntax: <domain>/apis/v1/rest/projects/:project/flow-import

In this URL request, /:project is the name of the project where you want to import the Flow service.

Method: POST

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{
 output : {
			"name": "<flow_name>",
			"assemblyType": "<assembly_type>",
			"serviceFullName": "<service_FullName>",
			"project_uid": "<project_uid>",
			"tenant_uid": "<tenant_uid>"
			}
}

Delete

Allows users to delete a Flow service and all its dependencies from a particular project.
Note:
  • To delete Flow services within a project, admin access is required. Only admins have the necessary permissions for this activity.

  • If you do not have admin access but hold a custom role, ensure that you have been granted write access specifically for the project where you intend to delete Flow services.

Steps:

  • In a REST client platform, add the authentication details of the tenant associated with the Flow service you want to delete.

    Headers: 
    	{             
     Authorization: BasicAuth
    }
  • Perform a DELETE request at the URL of the Flow service.

URL Syntax (Deprecated): <domain>/enterprise/v1/rest/projects/:project/flows/:flow

Use this instead,

URL Syntax: <domain>/apis/v1/rest/projects/:project/flows/:flow

In this URL request, /:project is the name of the project associated with the Flow service you want to delete and /:flow is the name of the Flow service you want to delete.

Method: DELETE

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{
 output: 
	{
	message: "Object deleted successfully."
	}
}

Execute

Allows you to execute a particular Flow service.
Note: Ensure that you have been granted write/execute access specifically for the project where you intend to execute the Flow service.

Steps:

  • In a REST client platform, add the authentication details of the tenant associated with the Flow service you want to execute.

    	Headers: 
    	{             
    	Authorization: BasicAuth
    	}
  • Perform a POST request at the URL of the Flow service you want to execute.

URL Syntax: <domain>/enterprise/v1/rest/projects/:project/flows/:flow/run

Use this instead,

URL Syntax: <domain>/apis/v1/rest/projects/:project/flows/:flow/run

In this URL request, /:project is the name of the project associated with the Flow service you want to execute and /:flow is the name of the Flow service you want to execute.

Method: POST

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{
output : 
	{
	"contentStream": "<content_stream>",
    "date": "<datetime>"
    }
}

Project APIs

Create

Allows you to create a new project in a particular tenant.
Note:
  • To create a project, admin access is required. Only admins have the necessary permissions for this activity.

  • If you do not have admin access but have a custom role, ensure that you have been granted write access specifically for the project.

Steps:

  • In a REST client platform, add the authentication details of the tenant where you want to create a project.
  • Optional: You can provide a UID for the project. If not provided, a unique identifier is automatically generated.
  • Optional. Provide the externalGitDetails including gitAccountName, pathToRepository, and branch to link the project to an external Git.
    Note:
    • Project UID must be 24 characters long. It can start with any prefix, such as pr.
    • Project UID must be unique.
    • When same project UID is used in other environments, ensure that the project name is also the same.
	Headers: 
	{
		Authorization: BasicAuth
    }
    Body: 
	{
name: <project_name>
uid: <project_uid>,
externameGitDetails:
{
        		gitAccountName: <version_control_account_name>,
        		pathToRepository: <path_to_the_repository>,
        		branch: <branch_name>        
 }
}
 
  • Perform a POST request at the URL of the project.

URL Syntax (Deprecated): <domain>/enterprise/v1/rest/projects

Use this instead,

URL Syntax: <domain>/apis/v1/rest/projects

Method: POST

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.


 output : 
		{
		name: <project_name>,
		uid: <project_uid>,
		tenant_uid: <project_tenant_uid>,
		workflow_count: <workflow_count>,
		flowservice_count: <flowservice_count>
		}  

Update

Allows you to update an existing project.
Note:
  • To update an existing project, admin access is required. Only admins have the necessary permissions for this activity.

  • If you do not have admin access but have a custom role, ensure that you have been granted write access specifically for the project.

Steps:

  • In a REST client platform, add the authentication details of the tenant associated with the project you want to update.
    Headers: 
			{
			Authorization: BasicAuth
			}
    Body: 
			{
			name: <project_name>
			}
  • Perform a PUT request at the URL of the project.

URL Syntax (Deprecated): <domain>/enterprise/v1/rest/projects

Use this instead,

URL Syntax: <domain>/apis/v1/rest/projects/:project

In this URL request, /:project is the UID or name of the project you want to update.

Method: PUT

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{
 {
  output : 
		{
		name: <project_name>,
		uid: <project_uid>,
		tenant_uid: <project_tenant_uid>,
		workflow_count: <workflow_count>,
		flowservice_count: <flowservice_count>
		}
 }
}

Delete

Allows you to delete an existing project.
Note:
  • To delete a project, admin access is required. Only admins have the necessary permissions for this activity.

  • If you do not have admin access but have a custom role, ensure that you have been granted write access specifically for the project.

Steps:

  • In a REST client platform, add the authentication details of the tenant associated with the project you want to delete.
    Headers: 
	{
		Authorization: BasicAuth
	}
Alternatively, you can forcefully delete a project and all its assets by sending a request with the following body, along with the authentication details for the tenant linked to the project:
Important:

IMPORTANT The deletion is irreversible. Once deleted, the project and all its associated data, including workflows, flow services, and assets, are permanently removed.

	Headers: 
	{             
		Authorization: BasicAuth
	}
	Body: 
	{
		"force_delete": true,
		"confirm_project_name": "Delete <project_name>"
	}
Note: Ensure the value for the confirm_project_name key is exactly Delete <project_name>, including the correct case. The project name must match the original name exactly as it was created.
  • Perform a DELETE request at the URL of the project.

URL Syntax (Deprecated): <domain>/enterprise/v1/rest/projects/project

Use this instead,

URL Syntax: <domain>/apis/v1/rest/projects/:project

In this URL request, /:project is the UID or name of the project you want to delete.

Method: DELETE

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{
 output: 
		{
		message: "Project deleted successfully."
		}
}

Get a project

Allows you to retrieve a project.

Steps:

  • In a REST client platform, add the authentication details of the tenant associated with the project you want to retrieve.
    Headers: 
	{
	Authorization: BasicAuth
	}
  • Perform a GET request at the URL of the project.

URL Syntax (Deprecated): <domain>/enterprise/v1/rest/projects/project

Use this instead,

URL Syntax: <domain>/apis/v1/rest/projects/:project

In this URL request, /:project is the UID or name of the project you want to retrieve.

Method: GET

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{
 output : 
	{
		name: <project_name>,
		uid: <project_uid>,
		tenant_uid: <project_tenant_uid>,
		workflow_count: <workflow_count>,
		flowservice_count: <flowservice_count>
	}
}

Get a list of projects

Allows you to retrieve a list of accessible project.

Steps:

  • In a REST client platform, add the authentication details of the tenant from where you want to retrieve projects.
	Headers: 
			{
			Authorization: BasicAuth
			}
  • Perform a GET request at the URL of the project.

URL Syntax (Deprecated): <domain>/enterprise/v1/rest/projects

Use this instead,

URL Syntax: <domain>/apis/v1/rest/projects

Method: GET

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{
 output : 
		[{
		name: <project_name>,
		uid: <project_uid>,
		tenant_uid: <project_tenant_uid>,
		workflow_count: <workflow_count>,
		flowservice_count: <flowservice_count>
		}]
}

Get a list of project assets

Allows you to retrieve a list of all valid assets for a particular project.

Steps:

  • In a REST client platform, add the authentication details of the tenant from where you want to retrieve valid assets created in a particular project.
	Headers: 
			{
			Authorization: BasicAuth
			}
  • Perform a GET request at the URL of the project.

URL Syntax: <domain>/apis/v1/rest/projects/:project/assets

In this URL request, /:project is the name of the project from where you want to retrieve assets.

You can control and filter the output response by using a query parameter. To retrieve additional details of assets created in a specific project, append the query parameter ?complete=true to the end of the URL request. This is an optional parameter and its default value is false.

Method: GET

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{
output : {
"workflows": [
            "<workflow1_uid>",
            "<workflow2_uid>",
        ],
        "flows": [
            "<flowservice1_name>",
            "<flowservice2_name>",
        ],
        "rest_api": [
            "<rest_api1_name>",
            "<rest_api2_name>",
        ],
        "soap_api": [
            "<soap_api1_name>",
            "<soap_api2_name>",
        ],
        "messaging": [
            "<subscriber1_name>",
            "<subscriber2_name>"
        ]
}
}

Publish

Allows you to publish a particular project along with its valid assets to the target tenant.

Note:
  • Single sign-on is not supported.

  • To publish a project to the tenant, admin access is required. Only admins have the necessary permissions for this activity.

  • If you do not have admin access but hold a custom role, ensure that you have been granted write access specifically for the project you intend to publish.

Steps:

  • In a REST client platform, add the authentication details of the tenant where you want to publish a project.
	Headers: {
			Authorization: BasicAuth
			}
	Body: {
            "name":"<publish_name>", 
            "destination_tenant_detail":
			{
				"username":"<username>",
				"password":"<password>",
				"url":"<target_tenant_url>"
			},
			"workflows": 
				[
				"<workflow1_uid>",
				"<workflow2_uid>",
				],
			"flows": 
				[
				"<flowservice1_name>",
				"<flowservice2_name>",
				],
			"rest_api": 
				[
				"<rest_api1_name>",
				"<rest_api2_name>",
				],
			"soap_api": 
				[
				"<soap_api1_name>",
				"<soap_api2_name>",
				],
			"messaging": 
				[
				"<subscriber1_name>",
				"<subscriber2_name>"
				]
			}
  • Perform a POST request at the URL of the project.

URL Syntax: <domain>/apis/v1/rest/projects/:project/publish

In this URL request, /:project is the name of the project you want to publish.

Method: POST

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{
	output : 
	{
		"uid": "<deployment_uid>",        
		"name": "<deployment_name>",
		"description": "<deployment_description>",
		"version": "<deployment_version>",
		"project_name": "<project_name>",
		"project_uid": "<project_uid>",
		"tenant_uid": "<tenant_uid>",
		"to_tenant": "<target_tenant_name>"
		"from_tenant": "<source_tenant_name>",
		"contains_asset": 
			{
			"sap_assets": <true || false>,
			"messaging_assets": <true || false>
			}       
	}
}

Deploy

Allows you to deploy a project published by another tenant to your tenant.

Note:
  • To deploy a project into the tenant, admin access is required. Only admins have the necessary permissions for this activity.

  • If you do not have admin access but hold a custom role, ensure that you have been granted write access specifically for the project you intend to deploy.

Steps:

  • In a REST client platform, add the authentication details of the tenant where you want to deploy a project.
	Headers: 
	{
	Authorization: BasicAuth
	}
	Body:
	{
	"version":<version_number>*,
	"new_project_name":<new_project_name>$
	}

// A field with the asterisk (*) character in the body of the request is a required field. 
// The dollar ($) character appended to the project name in the body of the request indicates that you are deploying a project for the first time and you already have a project with the same name in the target tenant.
  • Perform a POST request at the URL of the project.

URL syntax: <domain>/apis/v1/rest/projects/:project/deploy

In this URL request, /:project is the name of the project you want to deploy.

Method: POST

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{
output: 
	{
        "status": "<deployment_status>",
        "messaging_issues": 
		{
		"issues": [<commaseparated_string_arr>],
		"description": "<messaging_issue_desc>"
		}
	}
}

If the request is unsuccessful, the error details are included in the output under the message key.

{
"error": 
	{
		"status": "<deployment_status>",
		"message": "Failed to fetch the deployment data.",
		"errorSource": 
			{
				"errorCode": "<code>",
				"requestID": "<request_id>"
			}
	}
}

Export

Allows you to export a project along with its valid assets into a zip file. The exported project is downloaded as a zip file to your local machine.

Note:
  • To export a project from the tenant, admin access is required. Only admins have the necessary permissions for this activity.

  • If you do not have admin access but hold a custom role, ensure that you have been granted write access specifically for the project you intend to export.

Steps:

  • In a REST client platform, add the authentication details of the tenant where you want to publish a project.

Case 1: Export project with specific assets only

This approach allows you to export a project while selecting and including only specific assets as per your requirements.

Headers: {
          Authorization: BasicAuth
		 }
Body: {               
   workflows": 
		[
            "<workflow1_uid>",
            "<workflow2_uid>",
        ],
        "flows": 
		[
            "<flowservice1_name>",
            "<flowservice2_name>",
        ],
        "rest_api": 
		[
            "<rest_api1_name>",
            "<rest_api2_name>",
        ],
        "soap_api": 
		[
            "<soap_api1_name>",
            "<soap_api2_name>",
        ],        
        "messaging": 
		[
            "<subscriber1_name>",
            "<subscriber2_name>"
        ]
}
Note: To retrieve a list of assets available within a project, use the Enable a workflow API call. Once you have access to the list of assets, you can choose the specific assets you want to export from the project.

Case 2: Export project with all assets

This approach enables you to export the entire project along with all assets.

Headers: {
          Authorization: BasicAuth
		 }
Body: { 
 
	  }
  • Perform a POST request at the URL of the project.

URL Syntax: <domain>/apis/v1/rest/projects/<project>/export

In this URL request, <project> is the name or UID of the project you want to publish.

Method: POST

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{
	output : {
		download_link: <download_link>,
		valid_till: <valid_till>
			 }
}
Note: The value in valid_till indicates the validity period for downloading the link.

Import

Allows you to import a project exported by another tenant to your tenant.

Note:
  • To import a project into the tenant, admin access is required. Only admins have the necessary permissions for this activity.

  • If you do not have admin access but hold a custom role, ensure that you have been granted write access specifically for the project you intend to import.

Steps:

  • In a REST client platform, add the authentication details of the tenant where you want to import a project.
Headers: {
		Authorization: BasicAuth
		 }
Body:
		{
		"project": <zip_file_binary>*
		"new_project_name":<new_project_name>$
        }

// A field with the asterisk (*) character in the body of the request is a required field. 
// The dollar ($) character appended to the project name in the body of the request indicates that you already have a project with the same name and different UID in the target tenant. 
  • Perform a POST request at the URL of the project.

URL syntax: <domain>/apis/v1/rest/project-import

Note: To import REST/SOAP and other assets without creating a new deployment version or generating deployment additional records, append the version=false query parameter to the URL path to skip the creation of a new version.

Method: POST

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{
output: {
        "status": "<deployment_status>",
        "messaging_issues": 
		{
            "issues": [<commaseparated_string_arr>],
            "description": "<issue_description>"
        }
		}
}

If the request is unsuccessful, the error details are included in the output under the message key.

{
"error": 
	{
		"status": "<deployment_status>",
		"message": "Failed to fetch the deployment data.",
		"errorSource": 
			{
				"errorCode": "<code>",
				"requestID": "<request_id>"
			}
	}
}
Note:
  • Importing a project to the source tenant or environment where the original version of the project exists is not supported.

  • When you make the Project Import API call, a deployment record is automatically created for the imported project. This deployment contains a unique version number, which is used to deploy the project with that specific version. In the Project Import API call, the deployment of the project happens automatically with the latest deployment version mentioned in the deployment record.

  • If you are importing the project into a tenant for the first time, the version=false parameter will be ignored. In this case, a deployment entry will be created.

Create a project parameter

Allows you to create a new project parameter.

Steps:

  • In a REST client platform, add the authentication details of the tenant where you want to create a project parameter.
Headers: 
	{
		Authorization: BasicAuth
	}
Body:
	{   
		"key": "<param_name>*^",  
		"value": "<param_value>*",
		"required": <true || false>*,
		"isPassword": <true || false>*    
	}
	
//A field with the asterisk (*) character in the body of the request is a required field. 
//A field with the caret (^) character in the body of the request indicates that the field can only have unique values.
  • Perform a POST request at the URL of the project.

URL syntax: <domain>/apis/v1/rest/projects/:project/params

In this URL request, /:project is the name of the project where you want to create a parameter.

Method: POST

Output:

If the request is successful, you will receive the HTTP 201 OK success status response code.

Case 1: If the project parameter is password-protected and you have set the value of the "isPassword" field to "true", the value field will not be displayed in the output. The output is as follows:

{
output: 
	{
		"uid": "<param_uid>",
		"param": 
		{
		"key": "<param_name>",
		"required": <true || false>,
		"isPassword": <true>            
		},
		"project_uid": "<project_uid>",
		"tenant_uid": "<tenant_uid>"
	}
}

Case 2: If the project parameter is not password-protected and you have set the value of the "isPassword" field to "false", the output you receive is as follows:

{
output: 
	{
		"uid": "<param_uid>",
		"param": 
		{
		"key": "<param_name>",
		"value": "<param_value>",
		"required": <true || false>,
		"isPassword": <false>            
		},
		"project_uid": "<project_uid>",
		"tenant_uid": "<tenant_uid>"
	}
}

Update a project parameter

Allows you to update an existing project parameter.

Steps:

  • In a REST client platform, add the authentication details of the tenant where you want to update a project parameter.
Headers: 
	{
	Authorization: BasicAuth
	}
Body:
	{   
	"key": "<param_name>*^",
	"value": "<param_value>*",
	"required": <true || false>*,
	"isPassword": <true || false>*    
	}
	 
// A field with the asterisk (*) character in the body of the request is a required field.
// A field with the caret (^) character in the body of the request indicates that the field can only have unique values.	 
  • Perform a PUT request at the URL of the project.

URL Syntax: <domain>/apis/v1/rest/projects/:project/params/param_uid

In this URL request, /:project is the name of the project where you want to update a parameter and param_uid is the ID of the parameter you want to update.

Method: PUT

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

Case 1: If the project parameter is password-protected and you have set the value of the "isPassword" field to "true", the value field will not be displayed in the output. The output is as follows:

{
output: 
	{
	"uid": "<param_uid>",
	"param": 
		{
		"key": "<param_name>",
		"required": <true || false>,
		"isPassword": <true>            
		},
		"project_uid": "<project_uid>",
		"tenant_uid": "<tenant_uid>"
		}
}

Case 2: If the project parameter is not password-protected and you have set the value of the "isPassword" field to "false", the output you receive is as follows:

{
output: 
	{
	"uid": "<param_uid>",
	"param": 
		{
		"key": "<param_name>",
		"value": "<param_value>",
		"required": <true || false>,
		"isPassword": <false>            
		},
		"project_uid": "<project_uid>",
		"tenant_uid": "<tenant_uid>"
		}
}

Case 3: If you want to update an existing project parameter that is not password-protected to secure its value and you have set the value of the "isPassword" field to "true" in the input, the output you receive is as follows:

{
output: 
	{
	"uid": "<param_uid>",
	"param": 
		{
		"key": "<param_name>",
		"required": <true || false>,
		"isPassword": <true>            
		},
		"project_uid": "<project_uid>",
		"tenant_uid": "<tenant_uid>"
		}
}

Case 4: If you want to update an existing password-protected project parameter to no longer be protected and you have set the value of the "isPassword" field to "false" in the input, the output you receive is as follows:

{
output: 
	{
	"uid": "<param_uid>",
	"param": 
		{
		"key": "<param_name>",
		"required": <true || false>,
		"isPassword": <false>            
		},
		"project_uid": "<project_uid>",
		"tenant_uid": "<tenant_uid>"
		}
}

Get a project parameter

Allows you to retrieve a project parameter.

Steps:

  • In a REST client platform, add the authentication details of the tenant from where you want to retrieve the details of a project parameter.
	Headers: 
	{
	Authorization: BasicAuth
	}
  • Perform a GET request at the URL of the project.

URL Syntax: <domain>/apis/v1/rest/projects/:project/params/param_uid

In this URL request, /:project is the name of the project associated with the parameter and the details you want to retrieve, and param_uid is the ID of the parameter and the details you want to retrieve.

Method: GET

Output:

Case 1: If the project parameter you want to retrieve is password-protected, the value field will not be displayed in the output. The output is as follows:

{
output: 
		{
		"uid": "<param_uid>",
		"param": 
		{
		"key": "<param_name>",
		"required": <true || false>,
		"isPassword": <true>            
		},
		"project_uid": "<project_uid>",
		"tenant_uid": "<tenant_uid>"
	}
}

Case 2: If the project parameter you want to retrieve is not password-protected, the output you receive is as follows:

{
output: 
		{
		"uid": "<param_uid>",
		"param": 
		{
		"key": "<param_name>",
		"value": "<param_value>",
		"required": <true || false>,
		"isPassword": <false>            
		},
		"project_uid": "<project_uid>",
		"tenant_uid": "<tenant_uid>"
	}
}

List project parameters

Allows you to retrieve a list of all the project parameters created in a particular project.

Steps:

  • In a REST client platform, add the authentication details of the tenant from where you want to list project parameters.
Headers: 
	{
	Authorization: BasicAuth
	}
  • Perform a GET request at the URL of the project.

URL syntax: <domain>/apis/v1/rest/projects/:project/params

In this URL request, /:project is the name of the project from where you want to fetch the list of all the parameters.

Method: GET

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

Case 1: When project parameters are password-protected, their corresponding values will not be displayed in the output array list. The output you receive is as follows:

{
output: 
	[{
		"uid": "<param_uid>",
		"param": 
		{
		"key": "<param_name>",
		"required": <true || false>,
		"isPassword": <true>            
		},
		"project_uid": "<project_uid>",
		"tenant_uid": "<tenant_uid>"
	}]
}

Case 2: When project parameters are not password-protected, their corresponding values will be shown in the output array list. The output you receive is as follows:

{
output: 
	[{
		"uid": "<param_uid>",
		"param": 
		{
		"key": "<param_name>",
		"value": "<param_value>",
		"required": <true || false>,
		"isPassword": <false>            
		},
		"project_uid": "<project_uid>",
		"tenant_uid": "<tenant_uid>"
	}]
}

Delete a project parameter

Allows you to delete a project parameter.

Steps:

  • In a REST client platform, add the authentication details of the tenant from where you want to delete a project parameter.
Headers: 
	{
	Authorization: BasicAuth
	}
  • Perform a DELETE request at the URL of the project.

URL syntax: <domain>/apis/v1/rest/projects/:project/params/param_uid

In this URL request, /:project is the name of the project from where you want to delete a project parameter and param_uid is the ID of the parameter you want to delete.

Method: DELETE

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

Case 1: If the parameter you want to delete is not being used in any workflow in the specified project, you will get the following output:

{
output:  
	{
	"message": "Param(s) deleted successfully."
	}
}

Case 2: If the parameter you want to delete is being used in any workflow in the specified project, you will get the following output:

{
	"output": 
		{
		"message": "This param is used in the below workflow(s). Please remove it from the workflow(s) before deleting this project param.",
		"workflows": 
			[
				{
				"uid": "<workflow_uid>",
				"name": "<workflow_name>",
				"activities": 
				[
				"<workflow_activity_id>"                                             
				],
				"flow_version": 
				[
				"<workflow_version>"  
				]
				}
			]
		}
}

Role Management APIs

Create

Allows you (the admin) to create a new role for a particular tenant.

Steps:

  • In a REST client platform, add the authentication details of the tenant where you want to create a new role.
Headers: 
	{
	Authorization: BasicAuth
	}
Body: 
	{
	"name": "<role_name>*^",
	"description": "<role_description>",
	"projects": 
	[{
	"<project_name>": ["r", "w", "e"]  
	}]
}

// A field with the asterisk (*) character in the body of the request is a required field. 
// A field with the caret (^) character in the body of the request indicates that the field  can only have unique values.
  • Perform a POST request at the URL of the project.

URL syntax: <domain>/apis/v1/rest/roles

Method: POST

Output:

If the request is successful, you will receive the HTTP 201 OK success status response code.

{
output : 
{
"name": <role_name>,
"uid": <role_uid>,
"tenant_uid": <project_tenant_uid>,
"permissions": 
		[
			{
			"project_uid": "<project_uid>",
			"access_list": 
			{
			"read": true,
			"write": true,
			"execute":true                  
			}
			}
		],
"created_at": "<role_created_at>",
"updated_at": "<role_updated_at>",
}
}

Update

Allows you (the admin) to update an existing role.

Steps:

  • In a REST client platform, add the authentication details of the tenant where you want to update an existing role.
Headers: 
	{
	Authorization: BasicAuth
	}
Body: 
	{
	"name": "<role_name>*^",
	"description": "<role_description>",
	"projects": 
	[{
	"<project_name>": ["r", "w", "e"]  
	}]
}

// A field with the asterisk (*) character in the body of the request is a required field. 
// A field with the caret (^) character in the body of the request indicates that the field can only have unique values.
  • Perform a PUT request at the URL of the project.

URL syntax: <domain>/apis/v1/rest/roles/:role_uid

In this URL request, /:role_uid is the ID of the role you want to update.

Method: PUT

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{
output : 
{
	"name": <role_name>,
	"uid": <role_uid>,
	"tenant_uid": <project_tenant_uid>,
	"permissions": 
		[
			{
			"project_uid": "<project_uid>",
			"access_list": 
			{
			"read": true,
			"write": true,
			"execute":true                  
			}
			}
		],
"created_at": "<role_created_at>",
"updated_at": "<role_updated_at>",
}
}

Delete

Allows you (the admin) to delete a particular role.

Steps:

  • In a REST client platform, add the authentication details of the tenant from where you want to delete a role.
Headers: 
	{
	Authorization: BasicAuth
	}
  • Perform a DELETE request at the URL of the project.

URL syntax: <domain>/apis/v1/rest/roles/:role_uid

In this URL request, /:role_uid is the ID of the role you want to delete.

Method: DELETE

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{
output : 
	{
	message: "Tenant role deleted."
	}
}

Get role details

Allows you to retrieve details of a particular role.

Steps:

  • In a REST client platform, add the authentication details of the tenant from where you want to retrieve details of a specific role.
Headers: 
	{
	Authorization: BasicAuth
	}
  • Perform a GET request at the URL of the project.

URL syntax: <domain>/apis/v1/rest/roles/:role_uid

In this URL request, /:role_uid is the ID of the role, the details of which you want to retrieve.

Method: GET

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{
output : 
{
"name": <role_name>,
"uid": <role_uid>,
"tenant_uid": <project_tenant_uid>,
"permissions": 
	[
		{
		"project_uid": "<project_uid>",
		"access_list": 
		{
		"read": true,
		"write": true,
		"execute":true                  
		}
		}
	],
"created_at": "<role_created_at>",
"updated_at": "<role_updated_at>",
}
}

You can alternatively add the query parameter ?edit=true to the URL request <domain>/apis/v1/rest/roles/:role to retrieve brief details of a particular role. On appending the specified query parameter to the URL request, you will receive the output in the following format:

Output:

{
output :  
{
	"name": "<role_name>",
	"description": "<role_description>",
	"projects": 
	[{
	"<project_name>": ["r", "w", "e"]  
	}]
}
}

Get a list of roles

Allows you to retrieve a collection of roles associated with a particular tenant.

Steps:

  • In a REST client platform, add the authentication details of the tenant from where you want to retrieve a list of roles.
Headers: 
	{
	Authorization: BasicAuth
	}
  • Perform a GET request at the URL of the project.

URL syntax: <domain>/apis/v1/rest/roles

You can control and filter the output response by using the URL query parameters. In this URL request,

  • If you want to skip a certain number of pages at the beginning of the collection in the response, append the query parameter ?skip=n to the URL request, where n is the number of pages you want to skip. The default value for n is 0.
  • If you want to define the maximum page size starting from the n-th one, append ?limit=m to the URL request, where m is the total number of records you want to include in the response. The default value for m is 1000.

Method: GET

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{
output:
{
	"count": <tenant_role_count>,
	"objects": 
	[{
	"name": <role_name>,
	"uid": <role_uid>,
	"tenant_uid": <project_tenant_uid>,
	"permissions": 
		[
			{
			"project_uid": "<project_uid>",
			"access_list":
				{
				"read": true,
				"write": true,
				"execute":true                  
				}
			}
		],
"created_at": "<role_created_at>",
"updated_at": "<role_updated_at>",
}]       
}    
}

User Management APIs

Get a list of users

Allows you to retrieve a list of users associated with a particular tenant.

Steps:

  • In a REST client platform, add the authentication details of the tenant to retrieve a list of tenant users.
Headers: 
	{
	Authorization: BasicAuth
	}
  • Perform a GET request at the URL of the project.

URL syntax: <domain>/apis/v1/rest/users

Method: GET

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{
output :
{
	"count": <tenant_user_count>,
	"objects": 
		[{
		"uid": "<user_uid>",
		"email": "<user_email>",
		"first_name": "<user_first_name>",
		"last_name": "<user_last_name>",
		"roles":
			[
			<role_data>
			],
		"wmic_username": "<user_uid>",
		"is_admin": true || false,
		"is_developer": true || false,                
		"is_owner": true || false
		}]
}      
}   

Assign roles to a user

Allows you (the admin) to assign roles to a tenant user.

Steps:

  • In a REST client platform, add the authentication details of the tenant to assign roles to a user.
Headers:
	{
	Authorization: BasicAuth
	}
Body:
	{
	"username":<tenant_username>
	"roles": ['role1','role2']
	}
  • Perform a PUT request at the URL of the project.

URL syntax: <domain>/apis/v1/rest/assign-roles

Method: PUT

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{
output:
{
	"uid": "<user_uid>",
	"email": "<user_email>",
	"first_name": "<user_first_name>",
	"last_name": "<user_last_name>",
	"roles":
		[
		<role_data>
		],
	"wmic_username": "<user_uid>",
	"is_admin": true || false,
	"is_developer": true || false,                
	"is_owner": true || false
}      
} 

Themes APIs

Create

Allows you (the admin) to create a new theme for a particular tenant.

Steps:

  • In a REST client platform, add the authentication details of the tenant where you want to create a new theme.
Headers: 
	{
	Authorization: BasicAuth
	}
Body:
	{
	"name": "<theme_name>*^",
	"description": "<theme_description>",
	"theme":<theme_values_obj>#,
	"footerContent":"<theme_footerContent>",
	"aboutPageContent":"<theme_aboutPageContent>" 
	}
	
// A field with the asterisk (*) character in the body of the request is a required field. 
// A field with the caret (^) character in the body of the request indicates that the field can only have unique values. 
// The hash (#) character in the body of the request indicates that the field contains the object of the applied theme in the specified tenant.
// You could get the theme object by performing a GET method request at the URL "<domain>/apis/v1/rest/themes/defaultvalues".
  • Perform a POST request at the URL of the project.

URL syntax: <domain>/apis/v1/rest/themes

Method: POST

Output:

If the request is successful, you will receive the HTTP 201 OK success status response code.

{
output: 
	{
	"name": "<theme_name>",
	"uid": "<theme_uid>",
	"settings": 
		{
		"description": "<theme_name>",
		"theme":<theme_values_obj>,
		"footerContent": "<theme_footerContent>",
		"aboutPageContent": "<theme_aboutPageContent>"
		},
	"active": <true || false>,
}
}

Update

Allows you (the admin) to update an existing theme in a particular tenant.

Steps:

  • In a REST client platform, add the authentication details of the tenant where you want to update an existing theme.
Headers: 
{
	Authorization: BasicAuth
}
Body: 
	{
	"name": "<theme_name>*^",
	"description": "<theme_description>",
	"footerContent":"<theme_footerContent>",
	"aboutPageContent":"<theme_aboutPageContent>" 
	}
	
// A field with the asterisk (*) character in the body of the request is a required field. 
// A field with the caret (^) character in the body of the request indicates that the field can only have unique values. 	
  • Perform a PUT request at the URL of the project.

URL syntax: <domain>/apis/v1/rest/themes/:theme_uid

In this URL request, /:theme_uid is the ID of the theme you want to update.

Method: PUT

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{
output: 
	{
	"name": "<theme_name>",
	"uid": "<theme_uid>",
	"settings": 
		{
		"description": "<theme_name>",
		"theme":<theme_values_obj>,
		"footerContent": "<theme_footerContent>",
		"aboutPageContent": "<theme_aboutPageContent>"
		},
	active": <true || false>,
	}
}

Delete

Allows you (the admin) to delete a theme for a particular tenant.

Steps:

  • In a REST client platform, add the authentication details of the tenant from where you want to delete a theme.
Headers: 
{
	Authorization: BasicAuth
}
  • Perform a DELETE request at the URL of the project.

URL syntax: <domain>/apis/v1/rest/themes/:theme_uid

In this URL request, /:theme_uid is the ID of the theme you want to delete.

Method: DELETE

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{
output: 
	{
	"message": "Object deleted successfully."
	}
}

List themes

Allows you to retrieve details of all themes for a particular tenant.

Steps:

  • In a REST client platform, add the authentication details of the tenant from where you want to retrieve details of all themes.
Headers: 
{
	Authorization: BasicAuth
}
  • Perform a GET request at the URL of the project.

URL syntax: <domain>/apis/v1/rest/themes

Method: GET

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{
output: 
	[{
	"name": "<theme_name>",
	"uid": "<theme_uid>",
	"settings": 
			{
			"description": "<theme_name>",
			"theme":<theme_values_obj>,
			"footerContent": "<theme_footerContent>",
			"aboutPageContent": "<theme_aboutPageContent>"
			},
	"active": <true || false>,
	}]
}

Activate a theme

Allows you (the admin) to activate a theme for a particular tenant.

Steps:

  • In a REST client platform, add the authentication details of the tenant where you want to activate a theme.
Headers: 
{
	Authorization: BasicAuth
}
  • Perform a PUT request at the URL of the project.

URL syntax: <domain>/apis/v1/rest/themes/:theme_uid/activate

In this URL request, /:theme_uid is the ID of the theme you want to activate.

Method: PUT

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{
output: 
	{
	"name": "<theme_name>",
	"uid": "<theme_uid>",
	"settings": 
		{
		"description": "<theme_name>",
		"theme":<theme_values_obj>,
		"footerContent": "<theme_footerContent>",
		"aboutPageContent": "<theme_aboutPageContent>"
		},
	"active": true,
	}	
}

Deactivate a theme

Allows you (the admin) to deactivate the specified theme from a particular tenant.

Steps:

  • In a REST client platform, add the authentication details of the tenant to deactivate the applied theme.
Headers: 
{
	Authorization: BasicAuth
}
  • Perform a PUT request at the URL of the project.

URL syntax: <domain>/apis/v1/rest/themes/:theme_uid/deactivate

In this URL request, /:theme_uid is the ID of the theme you want to deactivate.

Method: PUT

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{
output: 
	{
	"name": "<theme_name>",
	"uid": "<theme_uid>",
	"active": false,
	}
}

Retrieve a theme

Allows you to retrieve details of a specific theme from a particular tenant.

Steps:

  • In a REST client platform, add the authentication details of the tenant from where you want to retrieve a specific theme.
Headers: 
{
	Authorization: BasicAuth
}
  • Perform a GET request at the URL of the project.

URL syntax: <domain>/apis/v1/rest/themes/:theme_uid

In this URL request, /:theme_uid is the ID of the theme, the details you want to retrieve.

Method: GET

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{
output: 
	{
	"name": "<theme_name>",
	"uid": "<theme_uid>",
	"active": <true || false>,
	}
}

Retrieve default theme values

Allows you to retrieve default values for the current theme.

Steps:

  • In a REST client platform, add the authentication details of the tenant to retrieve default values of the current theme.
Headers: 
	{
	Authorization: BasicAuth
	}
  • Perform a GET request at the URL of the project.

URL syntax: <domain>/apis/v1/rest/themes/defaultvalues

Method: GET

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{
output: 
	{
	"primaryColor": "<primaryColor>",
	"primaryHeaderTextColor": "<primaryHeaderTextColor>",
	"primaryTextColor": "<primaryTextColor>",
	"linkColor": "<linkColor>",
	"primaryHoverColor": "<primaryHoverColor>",
	"backgroundImage": "<backgroundImage>",
	"logoFileName": "<logoFileName>",
	"primaryBtnBgColor": "<primaryBtnBgColor>",
	"primaryBtnColor": "<primaryBtnColor>",
	"primaryBtnBrbColor": "<primaryBtnBrbColor>",
	"secondaryBtnBgColor": "<secondaryBtnBgColor>",
	"secondaryBtnColor": "<secondaryBtnColor>",
	"secondaryBtnBrbColor": "<secondaryBtnBrbColor>",
	"favIconImage": "<favIconImage>",
	"favIconFileName": "<favIconFileName>",
	"footerContent": "",
	"aboutPageContent": ""
    }
}

Webhook APIs

Get webhook-enabled workflows

Allows you to retrieve details of workflows that are webhook-enabled.

Steps:

  • In a REST client platform, add the authentication details of the tenant from where you want to retrieve details of webhook-enabled workflows.
Headers: 
{
	Authorization: BasicAuth
}
  • Perform a GET request at the URL of the project.

URL syntax: <domain>/apis/v1/rest/projects/:project/webhook-flows

In this URL request, /:project is the name of the project from where you want to retrieve details of webhook-enabled workflows.

You can control and filter the output response by using the URL query parameters. In this URL request:

  • If you want to skip a certain number of pages at the beginning of the collection in the response, append the query parameter ?skip=n to the URL request, where n is the number of pages you want to skip. The default value for n is 0.
  • If you want to define the maximum page size starting from the n-th one, append ?limit=m to the URL request, where m is the total number of records you want to include in the response. The default value for m is 1000.

Method: GET

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{
output: 
	{
	"objects": 
		[
		{
		"uid": "<workflow_uid>",
		"sid": <workflow_sid>
		"name": "<workflow_name>",
		"tenant_uid": "<tenant_uid>",
		"project_uid": "<project_uid>",
		"webhook_settings": <workflow_webhook_settings>               
		}        
        ],
	"count": <webhook_workflow_count>
	}
}

Regenerate webhook URL

Allows you to regenerate webhook URL for an existing workflow in a particular tenant.

Steps:

  • In a REST client platform, add the authentication details of the tenant to regenerate webhook URL.
Headers: 
{
	Authorization: BasicAuth
}	
  • Perform a PUT request at the URL of the project.

URL syntax: <domain>/apis/v1/rest/projects/:project/webhook-flows/:workflow_uid/reset

In this URL request, /:project is the name of the project associated with the workflow, the webhook URL you want to reset, and /:workflow_uid is the ID of the workflow, the webhook URL you want to reset.

Method: PUT

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{
output: 
	{               
	"uid": "<workflow_uid>",
	"name": "<workflow_name>",
	"tenant_uid": "<tenant_uid>",
	"project_uid": "<project_uid>",
	"sid": <workflow_sid>,
	"webhook_url": <webhook_url>            
	}        
}

Set webhook authentication

Allows you to add an authentication mechanism to a webhook in a particular tenant.

Steps:

  • In a REST client platform, add the authentication details of the tenant to apply an authentication to a webhook.
Headers: 
	{
	Authorization: BasicAuth
	}
Body:
	{
	"auth*":"none" OR "login" OR "token"
	}

// The default value for the auth field is "login".
  • Perform a POST request at the URL of the project.

URL syntax: <domain>/apis/v1/rest/projects/:project/webhook-flows/:workflow_uid/auth

In this URL request, /:project is the name of the project associated with the workflow where you want to apply an authentication to a webhook and /:workflow_uid is the ID of the workflow where you want to apply an authentication to a webhook.

Method: POST

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{
output: 
		{               
		"uid": "<workflow_uid>",
		"name": "<workflow_name>",
		"tenant_uid": "<tenant_uid>",
		"project_uid": "<project_uid>",
		"sid": <workflow_sid>,
		"webhook_settings": <webhook_settings>            
		}        
}

Trigger APIs

Get trigger-enabled workflow

Allows you to retrieve the details of workflows that are trigger-enabled.

Steps:

  • In a REST client platform, add the authentication details of the tenant from where you want to get the details of the trigger-enabled workflow.

Headers: 
	{
	Authorization: BasicAuth
	}
  • Perform a GET request at the URL of the project.

    URL syntax: <domain>/apis/v1/rest/projects/:project/trigger-flows QueryParams: skip=number (default=0), limit=number (default=1000)

    In this URL request, :project is the name of the project or the UID of the project from where you want to get the details of the trigger-enabled workflow.

    Method: GET

Output:

If the request is successful, you will receive the HTTP 201 OK success status response code.

{
output: {
        "objects": [
            {
                "uid": "<workflow_uid>",
                "sid": <workflow_sid>
                "name": "<workflow_name>",
                "tenant_uid": "<tenant_uid>",
                "project_uid": "<project_uid>",
                "trigger": {
                                "provider": "<trigger_provider>",
                                "label": "<trigger_label>",
                                "title": "<trigger_title>",
                                "uid": "<trigger_uid>"      
                     }              
            }        
        ],
        "count": <trigger_workflow_count>
    }
}
Note: This operation will only get the workflows that have triggers attached to it in the current workflow version and the workflows that have no triggers attached are not shown in the output.

Delete trigger

Allows the user to delete the trigger.

Note: To delete a trigger, you must have admin access. Only admins have the necessary permissions to perform this activity. If you do not have admin access but hold a custom role, ensure that you have write access specifically assigned to the project where you intend to delete the trigger.

Steps:

  • In a REST client platform, add the authentication details of the tenant from where you want to delete the trigger.
Headers: 
{
	Authorization: BasicAuth
}
  • Perform a DELETE request at the URL of the project.

URL syntax: <domain>/apis/v1/rest/projects/:project/triggers/:trigger_uid

In this URL request, :project is the name of the project or the project UID from where you want to delete a trigger and :trigger_uid is the UID of the trigger you want to delete.

Method: DELETE

Output:

If the request is successful, you will receive the HTTP 201 OK success status response code.

{
output: {               
               "message": "Trigger deleted successfully"           
            }        
}
Note: If the Trigger is used in any of the workflow versions, then it will not allow you to delete it and the usage of that Trigger is shown in the output message.

Example:

{
    "output": {
        "message": "This trigger is used in below workflows. Please remove it from these workflows before deleting.",
        "workflows": [
            {
                "uid": "<Workflow_UId>",
                "name": "<Workflow_name>",
                "activities": [
                    "start"
                ],
                "flow_version": [
                    <Workflow_Versions>
                ]
            }
        ]
    }
}

Recipes APIs

Create

Allows you to create a new recipe in a particular tenant.

Steps:

  • In a REST client platform, add the authentication details of the tenant where you want to create a recipe.
Headers: 
{
	Authorization: BasicAuth
}
Body:
{
recipe: <zip_file_binary>
}
  • Perform a POST request at the URL of the project.

URL syntax: <domain>/apis/v1/rest/recipes

Method: POST

Output:

If the request is successful, you will receive the HTTP 201 OK success status response code.

{
output: 
	{        
	"uid": <recipe_uid>
	"name": "<recipe_name>",
	"description": "<description>"              	           
	}     
}

Get a recipe

Allows you to retrieve details of a particular recipe.

Steps:

  • In a REST client platform, add the authentication details of the tenant associated with the recipe, the details you want to retrieve.
Headers: 
	{
	Authorization: BasicAuth
	}
  • Perform a GET request at the URL of the project.

URL syntax: <domain>/apis/v1/rest/recipes/:uid

In this URL request, :uid is the ID of the recipe you want to retrieve.

Method: GET

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{
output: 
	{      	         
	"uid": <recipe_uid>
	"name": "<recipe_name>",
	"description": "<description>",
	"download": "<recipe_download_count>"                             
	}  
}

Get all recipes

Allows you to retrieve all recipes for a particular tenant.

Steps:

  • In a REST client platform, add the authentication details of the tenant from where you want to retrieve recipes.
Headers: 
	{
	Authorization: BasicAuth
	}
  • Perform a GET request at the URL of the project.

URL syntax: <domain>/apis/v1/rest/recipes

You can control and filter the output response by using the URL query parameters. In this URL request:

  • If you want to skip a certain number of pages at the beginning of the collection in the response, append the query parameter ?skip=n to the URL request, where n is the number of pages you want to skip. The default value for n is 0.
  • If you want to define the maximum page size starting from the n-th one, append ?limit=m to the URL request, where m is the total number of records you want to include in the response. The default value for m is 1000.
  • If you want to retrieve details of all unpublished recipes from a particular tenant, append ?my_recipe=true to the URL request.

Method: GET

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{
output: 
	{
	"count":<total_recipe_count>,
	"objects":
		[
		{               
		"uid": <recipe_uid>
		"name": "<recipe_name>",
		"description": "<description>",
		"download": "<recipe_download_count>"                             
		}        
        ]
	}
}

Delete

Allows you to delete a recipe from your tenant.

Steps:

  • In a REST client platform, add the authentication details of the tenant from where you want to delete a recipe.
Headers: 
	{
	Authorization: BasicAuth
	}
  • Perform a DELETE request at the URL of the project.

URL syntax: <domain>/apis/v1/rest/recipes/:uid

In this URL request, /:uid is the ID of the recipe you want to delete.

Method: DELETE

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{
output: 
	{
	"message": "Object deleted successfully."
	}
}

Account APIs

Get user accounts

Allows you to retrieve all the accounts the user has created under a particular project.

Steps:

  • In a REST client platform, add the authentication details of the tenant from where you want to get the details of the user accounts.
Headers: 
{
		Authorization: BasicAuth
}
  • Perform a GET request at the URL of the project.

URL Syntax: <domain>/apis/v1/rest/projects/:project/accounts

In this URL request, :project represents the name or the UID of the project from where you want to get the details of the user accounts.

Method: GET

Output:

If the request is successful, you will receive the following response code.

output:
	{
    "output": {
        "configs": {
            "provider_name": [
                {
                    "activity_id": "<activity_id>",                    
                    "service": "<service>",
                    "provider": "<provider>",
                    "action": "<action>",
                    "version": "<version>",
                    "auth": "<auth_UID>",
                    "type": "<account_type>",
                    "name": "<account_name>",
                    "flow_uid": "<workflow_uid>",
                    "flow_version": <workflow_version>,
                    "uid": "<config_UID>"
                },
            ]
        }
        "accounts": {
          "connections":{
            "provider_name": [
                {
                    "icon": "<icon>",
                    "label": "<label>",
                    "title": "<title>",
                    "uid": "<uid>"                    
                }
            ]
         },         
       "auths":{
            "provider_name": [
                {
                    "icon": "<icon>",
                    "label": "<label>",
                    "title": "<title>",
                    "uid": "<uid>"                    
                }
            ]
         }
        }
       }
	  }
    }
Note: This function will get all the accounts that are created whether they are used in connectors or not. The 'config' key contains account data used in any action or trigger, and the 'account' key contains all the accounts the user has created in that project till now.

Delete account

Allows you to delete the account.

Steps:

  • In a REST client platform, add the authentication details of the tenant from where you want to delete the account.
Headers: 
	{
	Authorization: BasicAuth
	}
  • Perform a DELETE request at the URL of the project.

URL Syntax: <domain>/apis/v1/rest/projects/:project/accounts/:account_uid

In this URL request, :project is the name of the project or the project UID from where you want to delete an account and :account_uid is the UID of the account you want to delete.

Method: DELETE

Output:

If the request is successful, you will receive the following response code.

{
output: {               
               "message": "Account deleted successfully." 
        }        
}

Update Configuration

Allows you to update the account configuration or switch to another account created for the same provider.

Steps:

  • In a REST client platform, add the authentication details of the tenant from where you want to update the account.
Headers: 
{ 
	Authorization: BasicAuth 
} 
Body:
{ 
	account:<auth_uid || connection_uid> 
} 
  • Perform an UPDATE request at the URL of the project.

URL Syntax: <domain>/apis/v1/rest/projects/:project/configs/:config_uid

In this URL request, :project is the name of the project or the project UID from where you want to update an account and :config_uid is the UID of the account you want to update.

Method: PUT

Output:

If the request is successful, you will receive the following response code.

{
output: {        
        "type": "<account_type>",
        "activity_id": "<activity_id>",
        "action": "<action>",
        "service": "<service>",
        "provider": "<provider>",
        "version": "<version>",
        "name": "<account_name>",
        "auth": "<account_UID>",
        "flow_version": <flow_version>,
        "flow_uid": "<flow_uid>",
        "tenant_uid": "<tenant_uid>",        
        "project_uid": "<project_uid>",        
        "uid": "<config_UID>"
    }   
}

Metrics APIs

Retrieve execution summaries and logs for detailed bill tracking.

Note: The metric APIs are supported only for workflows.

Execution summary

This allows you to retrieve the execution summary based on the provided search parameters.

Steps:

  • In a REST client platform, add the authentication details of the tenant from where you want to retrieve the execution summary.
Headers:  
	{
	Authorization: Basic Auth
	} 

Body: 
{
//Example 1: Without using skip and limit parameters

POST {{hostName}}/apis/v1/rest/monitor/summary
{
    "start_date": "<execution_start_timestamp>",
    "end_date": "<execution_stop_timestamp>",
    "projects": <list of project names/uids>,
    "workflows": <list of workflow uids>,
    "execution_status": <list of execution status>, // should be one of ['running', 'success', 'failed', 'timeout', 'pending'/'queued', 'hold', 'stopped']
	"context_id": "<context_id>" // must be a string
}

//Example 2: Using skip and limit parameters

POST {{hostName}}/apis/v1/rest/monitor/summary?skip=3800&limit=10
{
    "start_date": "2023-01-15T08:00:00.000Z",
    "end_date": "2023-01-20T08:00:00.000Z",
    "projects": [“fl9717db0ad1b50e2f585b49”],
    "workflows":[“ fl9579f2ec6f01678d0d1660”, “fl00a966d22c7f5be4ecf0e4”],
    "execution_status": [“success”, “failed”]
	"context_id": "abc123" 
}
}
Note: Only the start_date and end_date are mandatory fields. All other fields are optional. The start_date and end_date should be in ISO8691 format like 2023-12-20 or 2023-12-20T00:00:00Z. Only requested execution status(es) will be included in the response. If more than one execution status is requested, response will include a total field containing the sum of all selected execution statuses.
  • Perform a POST request at the URL of the project.

URL Syntax: <domain>/apis/v1/rest/monitor/summary

Method: POST

Output:

If the request is successful, you will receive the following response code.

{

//Example 1: Without using skip and limit parameters

    "output": {
        "summary": {
            "success": <success_log_count>,
            "running": <running_log_count>,
            "stopped": <stopped_log_count>,
            "failed": <failed_log_count>,
            "timeout": <timeout_log_count>,
            "queued": <queued_log_count>,
            "hold": <hold_log_count>,
            "total": <total_count_of_all_statuses>
        },
        "graph": {
            "count": <total_count_of_all_fetched_logs>,
            "logs": [
                {
                    "uid": <bill_uid>,
                    "execution_status": <execution_status>,
                    "flow_name": "<flow_name>",
                    "flow_uid": <flow_uid>,
                    "project_uid": "<project_uid>",
                    "restarted": <is_restarted>,
                    "requested_at": <requested_at>,
                    "project_name": <project_name>,
                    "execution_source": <exeuction_source>,
					"restarted_from": "<bill_uid>",
					"restart_history": [],
					"context_id": "<context_id>"
                },               
                {
                    "uid": <bill_uid>,
                    "execution_status": <execution_status>,
                    "flow_name": "<flow_name>",
                    "flow_uid": <flow_uid>,
                    "project_uid": "<project_uid>",
                    "restarted": <is_restarted>,
                    "requested_at": <requested_at>,
                    "project_name": <project_name>,
                    "execution_source": <exeuction_source>,
					"restarted_from": "<bill_uid>",
					"restart_history": [],
					"context_id": "<context_id>"
                },
            ]
        }
    }

//Example 2: Using skip and limit parameters

    "output": {
        "summary": {
            "success": 2357,
            "failed": 1446,
            "total": 3803
        },
        "graph": {
            "count": 3,
            "logs": [
                {
                    "uid": "vbid90cbea802097b667ee45da9729fe5bece65242aa3d86",
                    "execution_status": "failed",
                    "flow_name": "AutomatedPurchaseOrdertracking",
                    "flow_uid": "fl9579f2ec6f01678d0d1660",
                    "project_uid": "fl9717db0ad1b50e2f585b49",
                    "restarted": false,
                    "requested_at": "01/18/2023 11:42 AM UTC",
                    "project_name": "Default",
                    "execution_source": "manual",
					"restarted_from": "vbid4ef0744e5b50a94217753ac32a02857a6e21b916f7f2",
					"restart_history": [],
					"context_id": "abc123>"
                },
                {
                    "uid": "vbid15efb1f6c56e7ce45f191364fbe610ee6412f49673d6",
                    "execution_status": "failed",
                    "flow_name": "AutomatedPurchaseOrdertracking",
                    "flow_uid": "fl9579f2ec6f01678d0d1660",
                    "project_uid": "fl9717db0ad1b50e2f585b49",
                    "restarted": false,
                    "requested_at": "01/18/2023 11:37 AM UTC",
                    "project_name": "Default",
                    "execution_source": "manual",
					"restarted_from": "vbid4ef0744e5b50a94217753ac32a02857a6e21b916f7f2",
					"restart_history": [],
					"context_id": "abc123"
                },
                {
                    "uid": "vbid0fe28848137e3a20ec834ccbd2ce434509d837928e20",
                    "execution_status": "failed",
                    "flow_name": "Integration1",
                    "flow_uid": "fl00a966d22c7f5be4ecf0e4",
                    "project_uid": "fl9717db0ad1b50e2f585b49",
                    "restarted": false,
                    "requested_at": "01/18/2023 09:26 AM UTC",
                    "project_name": "Default",
                    "execution_source": "manual",
					"restarted_from": "vbid4ef0744e5b50a94217753ac32a02857a6e21b916f7f2",
					"restart_history": [],
					"context_id": "abc123"
                }
            ]
        }
    }
}
Note: 150 logs can be fetched at most in a single API call. For Metrics API, the inputs 'start_date' and 'end_date' will be considered in UTC time zone. Similarly, any timestamps in the response will be provided in UTC time zone.

Execution log

This allows you to retrieve the execution logs of a particular bill ID.

Steps:

  • In a REST client platform, add the authentication details of the tenant from where you want to retrieve the execution log.
Headers: 
{ 
	Authorization: BasicAuth 
} 
  • Perform a GET request at the URL of the project.

URL Syntax: <domain>/apis/v1/rest/monitor/workflow-execution/logs/<bill_uid>

Method: GET

Output:

If the request is successful, you will receive the following response code.

{
    "output": {
        "uid": "vbid3c0d929d3344af91c238a9ae0db97111eff7f96ef68b",
        "duration": "0.051 sec",
        "executed_by": "John Doe",
        "execution_status": "success",
        "flow_name": "Flow1",
        "manual_run": false,
        "project_uid": "fl3c85287675f092ff7cbe70",
        "trigger": "event",
        "start_time": "02/17/2023 02:02 AM UTC",
        "stop_time": "02/17/2023 02:02 AM UTC",
        "requested_at": "02/17/2023 02:02 AM UTC",
		"restarted_from": "vbid4ef0744e5b50a94217753ac32a02857a6e21b916f7f2",
		"restart_history": [],
        "queue": 256,
        "project_name": "Default"
		"context_id": "abc123"
    }
}

Reference Data APIs

Get Data List

Allows you to retrieve the reference data list.

Steps:

  • In a REST client platform, add the authentication details of the tenant from where you want to get the reference data list.

Headers: 
{
    Authorization: Basic Auth
}
  • Perform a GET request at the URL of the project.

URL Syntax: <domain>/apis/v1/rest/projects/<project_name>/referencedata

In this URL request, <project_name> is the name or UID of the project from where you want to get the data list.

Method: GET

Output:

If the request is successful, you will receive the HTTP 200 OK success status.

{
    "output": [
        {
           "name": "<name>",
           "description": "<description>",
           "columnDelimiter": "<columnDelimiter>",
           "releaseCharacter": "<releaseCharacter>",
           "columnNames": [<columnNames>],
           "dataRecords": [<dataRecords>],
           "revisionData": [<revisionData>],
           "encodingType": "<encodingType>",
           "version": "<version>"
        },
        .
        .
    ]
}

Get Data Detail

Allows you to retrieve the details of the reference data.

Steps:

  • In a REST client platform, add the authentication details of the tenant from where you want to get the details of the reference data.
Headers: 
{
	Authorization: Basic Auth
}	
Note: Accept is an optional field and the supported values are "", "application/json", and "plain/text". The default value is "application/json".
  • Perform a GET request at the URL of the project.

URL syntax: <domain>apis/v1/rest/projects/<project_name>/referencedata/<referencedata_name>

In this URL request, <project_name> is the name or UID of the project from where you want to get a reference data and <referencedata_name> is the name of the reference data you want to get the details of.

Method: GET

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

Output when the value of Accept is "application/json":

{
    "output": {
        "name": "<name>",
        "description": "<description>",
        "columnDelimiter": "<columnDelimiter>",
        "releaseCharacter": "<releaseCharacter>",
        "columnNames": [<columnNames>],
        "dataRecords": [<dataRecords>],
        "revisionData": "<revisionData>",
        "encodingType": "<encodingType>",
        "version": "<version>"
    }
}

Output when the value of Accept is "plain/text":

Raw CSV of reference data.

For example,

data11,data12,data13
data21,data22,data23
data31,data32,data33

Add

Allows you to add the reference data.

Note:
  • To add the reference data, admin access is required. Only admins have the necessary permissions for this activity.

  • If you do not have admin access but hold a custom role, ensure that you have been granted write access specifically for the project where you intend to create the reference data.

Steps:

  • In a REST client platform, add the authentication details of the tenant where you want to add the reference data.
Headers: 
{
	Authorization: Basic Auth
}
Body: 

	{    
        "name": "<name>"*,
        "description": "<description>",
        "file": "<file>*", //Select the file stored on your local machine.
        "file_encoding": "<file_encoding>*", //Only following file encoding formats are suppported: IBM437, windows-1252, IBM00858, IBM775, IBM850, IBM852, IBM855, IBM857, IBM862, IBM866, ISO-8859-1, ISO-8859-2, ISO-8859-4, ISO-8859-5, ISO-8859-7, ISO-8859-9, ISO-8859-13, ISO-8859-15, KOI8-R, KOI8-U, US-ASCII, UTF-8, UTF-16, UTF-16BE, UTF-16LE, UTF-32, UTF-32BE, UTF-32LE, x-UTF-32BE-BOM, x-UTF-32LE-BOM, windows-1250, windows-1251, windows-1253, windows-1254, windows-1257, x-IBM737, x-IBM874, and x-UTF-16LE-BOM
        "field_separator": "<field_separator>*",
        "text_qualifier": <text_qualifier> *        
    }

The fields marked as * are required.

  • Perform a POST request at the URL of the project.

URL syntax: <domain>apis/v1/rest/projects/<project_name>/referencedata

In this URL request, <project_name> is the name or UID of the project where you want to add the new reference data.

Method: POST

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{
    "output": {
        "response": "<create_success_message>"
    }
}

Update

Allows you to update the reference data.

Note:
  • To update the reference data, admin access is required. Only admins have the necessary permissions for this activity.

  • If you do not have admin access but hold a custom role, ensure that you have been granted write access specifically for the project where you intend to update the reference data.

Steps:

  • In a REST client platform, add the authentication details of the tenant where you want to update the reference data.
Headers: 
{
	Authorization: Basic Auth
}
Body: 
{    
        "name": "<name>*",
        "description": "<description>",
        "file": "<file>",
        "file_encoding": "<file_encoding>*", //Only following file encoding formats are suppported: IBM437, windows-1252, IBM00858, IBM775, IBM850, IBM852, IBM855, IBM857, IBM862, IBM866, ISO-8859-1, ISO-8859-2, ISO-8859-4, ISO-8859-5, ISO-8859-7, ISO-8859-9, ISO-8859-13, ISO-8859-15, KOI8-R, KOI8-U, US-ASCII, UTF-8, UTF-16, UTF-16BE, UTF-16LE, UTF-32, UTF-32BE, UTF-32LE, x-UTF-32BE-BOM, x-UTF-32LE-BOM, windows-1250, windows-1251, windows-1253, windows-1254, windows-1257, x-IBM737, x-IBM874, and x-UTF-16LE-BOM
        "field_separator": "<field_separator>*",
        "text_qualifier": <text_qualifier> *        
}

The fields marked as * are required.

  • Perform a PUT request at the URL of the project.

URL syntax: <domain>apis/v1/rest/projects/<project_name>/referencedata/<referencedata_name>

In this URL request, <project_name> is the name or UID of the project in which you want to update a reference data and <referencedata_name> is the name of the reference data you want to update.

Method: PUT

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{
    "output": {
        "response": "<update_success_message>"
    }
}

Delete

Allows you to delete the reference data.

Note:
  • To delete the reference data, admin access is required. Only admins have the necessary permissions for this activity.

  • If you do not have admin access but hold a custom role, ensure that you have been granted write access specifically for the project where you intend to delete the reference data.

Steps:

  • In a REST client platform, add the authentication details of the tenant from where you want to delete the reference data.
Headers: 
{
	Authorization: Basic Auth
}
  • Perform a DELETE request at the URL of the project.

URL syntax: <domain>/apis/v1/rest/projects/<project_name>/referencedata/<referencedata_name>

In this URL request, <project_name> is the name or UID of the project from where you want to delete the reference data and <referencedata_name> is the name of the reference data you want to delete.

Note: If the reference data you want to delete is used in a Flow service, it cannot be deleted directly. You must first remove the reference data from the relevant Flow service and then delete the reference data.

Method: DELETE

Output:

If the request is successful, you will receive the HTTP 200 OK success status response code.

{ 

    "output": 
	{ 
	"status": true, 
	"message": "ReferenceData ref1 deleted successfully." 
    } 
} 

Project variable APIs

Create project variables

Allows you to create project variables.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: /apis/v2/rest/projects/{project}/configurations/variables?type=projectVariable

Parameters

  • <project_name> - Name of the project.
  • type - Type projectVariable if you want to create a project variable. Otherwise, type projectParameter if you want to create a project parameter.

Method: POST

Request body

{
  "key": "testVar1",
  "value": "10",
  "isPassword": false,
  "isGlobal": false
}

Output:

If the request is successful, the HTTP 201 Created status response code is displayed.

{
  "message": "Project variable created successfully."
}

Update project variables

Allows you to update project variables.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: /apis/v2/rest/projects/{projectName}/configurations/variables/{variableName}?type=projectVariable

Parameters

  • <project_name> - Name of the project.
  • <variableName> - Name of the variable.
  • type - Type projectVariable if you want to create a project variable. Otherwise, type projectParameter if you want to create a project parameter.

Method: PUT

Request body

{
  "key": "testVar1",
  "value": "100",
  "isPassword": false,
  "isGlobal": false
}

Output:

If the request is successful, the HTTP 200 OK success status response code is displayed.

{
  "message": "Project variable updated successfully."
}

Delete project variables

Allows you to delete project variables.

Steps:

  • In a REST client platform, add the authentication details of the tenant.

Headers: 
{
	Authorization: Basic Auth
}

URL syntax: /apis/v2/rest/projects/{projectName}/configurations/variables/{variableName}?type=projectVariable

Parameters

  • <project_name> - Name of the project.
  • <variableName> - Name of the variable.
  • type - Type projectVariable if you want to create a project variable. Otherwise, type projectParameter if you want to create a project parameter.

Method: PUT

Request body

None

Output:

If the request is successful, the HTTP 204 No content status response code is displayed.

{
  "message": "Project variable deleted successfully."
}

Get project variables

Allows you to retrieve the project variables.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: /apis/v2/rest/projects/{projectName}/configurations/variables/{variableName}?type=projectVariable

Parameters

  • <project_name> - Name of the project.
  • <variableName> - Name of the variable.
  • type - Type projectVariable if you want to create a project variable. Otherwise, projectParameter if you want to create a project parameter.

Method: GET

Request body

None

Output:


 {
  "key": "testVar1",
  "value": "100",
  "isPassword": false,
  "isGlobal": false
}

List project variables

Allows you to retrieve all project variables.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: /apis/v2/rest/projects/{projectName}/configurations/variables?type=projectVariable

Parameters

  • <project_name> - Name of the project.
  • type - Type projectVariable if you want to create a project variable. Otherwise, type projectParameter if you want to create a project parameter.

Method: GET

Request body

None

Output:


  [
          {
                "key": "testVar1",
                "value": "100",
                "packageName": "Test3Project",
                "type": "projectVariable",
                "isPassword": false,
                "isGlobal": false
            },
            {
                "key": "testPass",
                "value": null,
                "packageName": "Test3Project",
                "type": "projectVariable",
                "isPassword": true,
                "isGlobal": false
            }
 ]

Sync project variables

Allows you to synchronize the project variables.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v1/rest/projects/{projectName}/configurations/variables/sync?keys={}&type=projectVariable

Parameters

  • <project_name> - Name of the project.
  • <keys> - List of keys in the project where it needs to be synced from vault. If the keys list is empty, then sync all the variables in the project with vault.
  • type - Type projectVariable if you want to create a project variable. Otherwise, type projectParameter if you want to create a project parameter.

Method: POST

Request body

None

Output:
  • If successful, the response code is as follows:
    
      {
        "output": {
            "code": 0,
              }
    }           
  • If an errors occurs, the response is as follows:
    
      {
        "output": {
            "code": -1,
            "description": "The list of variables that could not be synced with project test4.",
            "details": {
                "projectId": "fl8a553013f857e3c41a5fb7",
                "projectName": "test4",
                "VariablesFailedToSync": [
                    "rand",
                    "rand2"
                ]
            }
        }
    }           

Project parameter APIs

Create project parameters

Creates a project parameter.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: /apis/v2/rest/projects/{project}/configurations/variables?type=projectParameter

Parameters

None

Method: POST

Request body

{
  "key": "<parameter_key>",
  "value": "<parameter_value>",
  "isPassword": <type_of_parameter>,
  "isRequired": <can_value_of_parameter_be_empty>,
}
                

Output:

If the request is successful, the HTTP 201 Created status response code is displayed.

{
  "message": "Project parameter created successfully."
}

Update project parameters

Updates a project parameter.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: /apis/v2/rest/projects/{project}/configurations/variables/{variable_name}?type=projectParameter

Parameters

  • {variable_name} - Name of the variable.

Method: PUT

Request body

{
  "key": "<parameter_key>",
  "value": "<value_to_be_updated>",
  "isPassword": <type_of_parameter>,
  "isRequired": <can_value_of_parameter_be_empty>,
}
                

Output:

If the request is successful, the HTTP 201 Created status response code is displayed.

{
  "message": "Project parameter updated successfully."
}

Delete project parameters

Deletes a project parameter.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: /apis/v2/rest/projects/{project}/configurations/variables/{variable_name}?type=projectParameter

Parameters

  • {variable_name} - Name of the variable.

Method: DELETE

Request body

None

Output:

None

List project parameters

Retrieves the list of all project parameters.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: /apis/v2/rest/projects/{project}/configurations/variables?type=projectParameter

Parameters

  • {variable_name} - Name of the variable.

Method: GET

Request body

None

Output:

If the request is successful, the HTTP 201 Created status response code is displayed.

[
  {
    "key": "<parameter_key>",
    "value": "parameter_key",
    "isPassword": <type_of_parameter>,
    "isRequired": <can_value_of_parameter_be_empty>,
    "uid": "<unique_identifier_of_parameter>",
    "type": "projectParameter"
  }
]

Get project parameters

Retrieves the details of a specific project parameter.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: /apis/v2/rest/projects/{project}/configurations/variables/{variable_name}?type=projectParameter

Parameters

  • {variable_name} - Name of the variable.

Method: GET

Request body

None

Output:

If the request is successful, the HTTP 201 Created status response code is displayed.

{
  "key": "<parameter_key>",
  "value": "parameter_key",
  "isPassword": <type_of_parameter>,
  "isRequired": <can_value_of_parameter_be_empty>,
  "uid": "<unique_identifier_of_parameter>",
  "type": "projectParameter"
}

Connections APIs

Create connections

Allows you to create a connection.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v1/rest/projects/:project/configurations/connections

Parameters

  • <:project> - Name of the project.

Method: POST

Request body

{
            "name": "SMTP_1",
            "description": ""
            "deployAnywhere": false,
            "data": {
                "cn_host": "smtp.pepipost.com",
                "cn_port": "25",
                "cn_userName": "sabcpepipost",
                "cn_password": "",
                "cn_tls": "none",
                "cn_truststore": null,
                "cx_from": "sabc@pepisandbox.com",
                "cx_to": null,
                "cx_cc": null,
                "cn_connectionTimeout": "30000",
                "cn_readTimeout": "30000",
                "cn_writeTimeout": "30000",
                "name": "stage00"
            },
            "sourceMetadata": {
                "connectorID": "com.softwareag.smtp_v1",
                "providerName": "WmSMTPProvider",
                "version": "1",
                "connectionType": "sagcloud"
            }
        }

Output:

If the request is successful, the HTTP 201 Created status response code is displayed.

Update connections

Allows you to update a connection.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v1/rest/projects/:project/configurations/connections/{connectionName}

In this URL request, <:project> is the name of the project.

Parameters

  • <:project> - Name of the project.
  • {connectionName} - Name of the connection.

Method: PUT

Request body
{
            "name": "SMTP_1",
            "description": ""
            "deployAnywhere": false,
            "data": {
                "cn_host": "smtp.pepipost.com",
                "cn_port": "25",
                "cn_userName": "sabcpepipost",
                "cn_password": "",
                "cn_tls": "none",
                "cn_truststore": null,
                "cx_from": "sabc@pepisandbox.com",
                "cx_to": null,
                "cx_cc": null,
                "cn_connectionTimeout": "30000",
                "cn_readTimeout": "30000",
                "cn_writeTimeout": "30000",
                "name": "stage00"
            },
            "sourceMetadata": {
                "connectorID": "com.softwareag.smtp_v1",
                "providerName": "WmSMTPProvider",
                "version": "1",
                "connectionType": "sagcloud"
            }
        }

Output:

If the request is successful, the HTTP 200 OK status response code is displayed.

Delete connections

Allows you to delete a connection.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v1/rest/projects/:project/configurations/connections/:connection_name?connectionType=&connectorID=&providerName=

Parameters

  • :project - Name of the project.
  • :connectionName - Name of the connection.
  • connectorID - Unique identification of the connector.
  • providerName - Name of the connection provider.

Method: DELETE

Request body

None

Output:

If the request is successful, the HTTP 200 OK status response code is displayed.

Get connections

Allows you to retrieve the details of a connection.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v1/rest/projects/:project/configurations/connections/:connection_name?connectionType=&connectorID=&providerName=

Parameters

  • :project - Name of the project.
  • :connectionName - Name of the connection.
  • connectorId - Unique identification of the connector.
  • providerName - Name of the connection provider.

Method: GET

Request body

None

Output:

{
            "name": "SMTP_1",
            "description": "",
            "state": "disabled",
            "deployAnywhere": false,
            "data": {
                "cn_host": "smtp.pepipost.com",
                "cn_port": "25",
                "cn_userName": "abcpepipost",
                "cn_password": "",
                "cn_tls": "none",
                "cn_truststore": null,
                "cx_from": "abc@pepisandbox.com",
                "cx_to": null,
                "cx_cc": null,
                "cn_connectionTimeout": "30000",
                "cn_readTimeout": "30000",
                "cn_writeTimeout": "30000",
                "name": "stage00"
            },
            "sourceMetadata": {
                "connectorID": "com.softwareag.smtp_v1",
                "providerName": "WmSMTPProvider",
                "version": "1",
                "connectionType": "sagcloud"
            }
        }

List connections

Allows you to retrieve the details of all connections.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v1/rest/projects/:project/configurations/connections

Parameters

  • :project - Name of the project.

Method: GET

Request body

None

Output:
[
    {
        "name": "FTPS_2",
        "description": "",
        "state": "disabled",
        "deployAnywhere": false,
        "data": {
            "cn_host": "demo.wftpserver.com",
            "cn_port": "21",
            "cn_user": "demo",
            "cn_password": "",
            "cn_timeout": "3601",
            "cn_advancedFTPOptions": "false",
            "ssl_secureData": null,
            "ssl_keystoreAlias": null,
            "ssl_keyalias": null,
            "ssl_truststoreAlias": null,
            "name": "stage00"
        },
        "sourceMetadata": {
            "connectorID": "com.softwareag.ftp_v1",
            "providerName": "WmFTPProvider",
            "version": "1",
            "connectionType": "sagcloud"
        }
    },
    {
        "name": "SFTP_2",
        "description": "",
        "state": "disabled",
        "deployAnywhere": false,
        "data": {
            "authenticationType": "publicKey",
            "compression": "none",
            "compressionLevel": 6,
            "connectionTimeout": 63,
            "fingerprint": "83:73:ce:cc:97:48:f7:43:a5:cc:4c:c8:5e:93:bc:7c",
            "hostName": "demo.wftpserver.com",
            "isPassPhrasePresent": true,
            "isPrivateKeyFilePresent": true,
            "maximumRetries": 5,
            "port": 2222,
            "preferredCiphersC2S": [
                "aes128-ctr",
                "aes128-cbc",
                "3des-ctr",
                "3des-cbc",
                "blowfish-cbc",
                "aes192-ctr",
                "aes192-cbc",
                "aes256-ctr",
                "aes256-cbc",
                "arcfour",
                "arcfour128",
                "arcfour256"
            ],
            "preferredCiphersS2C": [
                "aes128-ctr",
                "aes128-cbc",
                "3des-ctr",
                "3des-cbc",
                "blowfish-cbc",
                "aes192-ctr",
                "aes192-cbc",
                "aes256-ctr",
                "aes256-cbc",
                "arcfour",
                "arcfour128",
                "arcfour256"
            ],
            "preferredKeyExchangeAlgorithm": [
                "diffie-hellman-group-exchange-sha256",
                "ecdh-sha2-nistp256",
                "diffie-hellman-group1-sha1",
                "diffie-hellman-group14-sha1",
                "ecdh-sha2-nistp521",
                "ecdh-sha2-nistp384",
                "diffie-hellman-group-exchange-sha1"
            ],
            "preferredMACC2S": [
                "hmac-md5",
                "hmac-sha1",
                "hmac-sha2-256",
                "hmac-sha1-96",
                "hmac-md5-96"
            ],
            "preferredMACS2C": [
                "hmac-md5",
                "hmac-sha1",
                "hmac-sha2-256",
                "hmac-sha1-96",
                "hmac-md5-96"
            ],
            "sessionTimeout": 30,
            "strictHostKeyChecking": "yes",
            "userName": "demo",
            "version": "v1",
            "password": ""
        },
        "sourceMetadata": {
            "connectorID": "com.softwareag.sftp_v1",
            "providerName": "WmSFTPProvider",
            "version": "1",
            "connectionType": "sagcloud"
        }
    },
    {
        "name": "SFTP_3",
        "description": "",
        "state": "disabled",
        "deployAnywhere": false,
        "data": {
            "authenticationType": "publicKey",
            "compression": "none",
            "compressionLevel": 6,
            "connectionTimeout": 60,
            "fingerprint": "a1:13:95:35:5d:d6:9c:5c:8e:6f:44:1e:87:19:43:b5",
            "hostName": "eu-central-1.sftpcloud.io",
            "isPassPhrasePresent": true,
            "isPrivateKeyFilePresent": true,
            "maximumRetries": 6,
            "port": 22,
            "preferredCiphersC2S": [
                "aes128-ctr",
                "aes128-cbc",
                "3des-ctr",
                "3des-cbc",
                "blowfish-cbc",
                "aes192-ctr",
                "aes192-cbc",
                "aes256-ctr",
                "aes256-cbc",
                "arcfour",
                "arcfour128",
                "arcfour256"
            ],
            "preferredCiphersS2C": [
                "aes128-ctr",
                "aes128-cbc",
                "3des-ctr",
                "3des-cbc",
                "blowfish-cbc",
                "aes192-ctr",
                "aes192-cbc",
                "aes256-ctr",
                "aes256-cbc",
                "arcfour",
                "arcfour128",
                "arcfour256"
            ],
            "preferredKeyExchangeAlgorithm": [
                "diffie-hellman-group-exchange-sha256",
                "ecdh-sha2-nistp256",
                "diffie-hellman-group1-sha1",
                "diffie-hellman-group14-sha1",
                "ecdh-sha2-nistp521",
                "ecdh-sha2-nistp384",
                "diffie-hellman-group-exchange-sha1"
            ],
            "preferredMACC2S": [
                "hmac-md5",
                "hmac-sha1",
                "hmac-sha2-256",
                "hmac-sha1-96",
                "hmac-md5-96"
            ],
            "preferredMACS2C": [
                "hmac-md5",
                "hmac-sha1",
                "hmac-sha2-256",
                "hmac-sha1-96",
                "hmac-md5-96"
            ],
            "sessionTimeout": 30,
            "strictHostKeyChecking": "yes",
            "userName": "9d3ea89ac9be4a578b20a61f85ced147",
            "version": "v1",
            "password": ""
        },
        "sourceMetadata": {
            "connectorID": "com.softwareag.sftp_v1",
            "providerName": "WmSFTPProvider",
            "version": "1",
            "connectionType": "sagcloud"
        }
    },
    {
        "name": "SFTP_4",
        "description": "",
        "state": "disabled",
        "deployAnywhere": false,
        "data": {
            "authenticationType": "publicKey",
            "compression": "none",
            "compressionLevel": 6,
            "connectionTimeout": 60,
            "fingerprint": "a1:13:95:35:5d:d6:9c:5c:8e:6f:44:1e:87:19:43:b5",
            "hostName": "eu-central-1.sftpcloud.io",
            "isPassPhrasePresent": true,
            "isPrivateKeyFilePresent": true,
            "maximumRetries": 6,
            "port": 22,
            "preferredCiphersC2S": [
                "aes128-ctr",
                "aes128-cbc",
                "3des-ctr",
                "3des-cbc",
                "blowfish-cbc",
                "aes192-ctr",
                "aes192-cbc",
                "aes256-ctr",
                "aes256-cbc",
                "arcfour",
                "arcfour128",
                "arcfour256"
            ],
            "preferredCiphersS2C": [
                "aes128-ctr",
                "aes128-cbc",
                "3des-ctr",
                "3des-cbc",
                "blowfish-cbc",
                "aes192-ctr",
                "aes192-cbc",
                "aes256-ctr",
                "aes256-cbc",
                "arcfour",
                "arcfour128",
                "arcfour256"
            ],
            "preferredKeyExchangeAlgorithm": [
                "diffie-hellman-group-exchange-sha256",
                "ecdh-sha2-nistp256",
                "diffie-hellman-group1-sha1",
                "diffie-hellman-group14-sha1",
                "ecdh-sha2-nistp521",
                "ecdh-sha2-nistp384",
                "diffie-hellman-group-exchange-sha1"
            ],
            "preferredMACC2S": [
                "hmac-md5",
                "hmac-sha1",
                "hmac-sha2-256",
                "hmac-sha1-96",
                "hmac-md5-96"
            ],
            "preferredMACS2C": [
                "hmac-md5",
                "hmac-sha1",
                "hmac-sha2-256",
                "hmac-sha1-96",
                "hmac-md5-96"
            ],
            "sessionTimeout": 30,
            "strictHostKeyChecking": "yes",
            "userName": "9d3ea89ac9be4a578b20a61f85ced147",
            "version": "v1",
            "password": ""
        },
        "sourceMetadata": {
            "connectorID": "com.softwareag.sftp_v1",
            "providerName": "WmSFTPProvider",
            "version": "1",
            "connectionType": "sagcloud"
        }
    },
    {
        "name": "SFTP_5",
        "description": "",
        "state": "disabled",
        "deployAnywhere": false,
        "data": {
            "authenticationType": "publicKey",
            "compression": "none",
            "compressionLevel": 6,
            "connectionTimeout": 60,
            "fingerprint": "83:73:ce:cc:97:48:f7:43:a5:cc:4c:c8:5e:93:bc:7c",
            "hostName": "demo.wftpserver.com",
            "isPassPhrasePresent": true,
            "isPrivateKeyFilePresent": true,
            "maximumRetries": 6,
            "port": 2222,
            "preferredCiphersC2S": [
                "aes128-ctr",
                "aes128-cbc",
                "3des-ctr",
                "3des-cbc",
                "blowfish-cbc",
                "aes192-ctr",
                "aes192-cbc",
                "aes256-ctr",
                "aes256-cbc",
                "arcfour",
                "arcfour128",
                "arcfour256"
            ],
            "preferredCiphersS2C": [
                "aes128-ctr",
                "aes128-cbc",
                "3des-ctr",
                "3des-cbc",
                "blowfish-cbc",
                "aes192-ctr",
                "aes192-cbc",
                "aes256-ctr",
                "aes256-cbc",
                "arcfour",
                "arcfour128",
                "arcfour256"
            ],
            "preferredKeyExchangeAlgorithm": [
                "diffie-hellman-group-exchange-sha256",
                "ecdh-sha2-nistp256",
                "diffie-hellman-group1-sha1",
                "diffie-hellman-group14-sha1",
                "ecdh-sha2-nistp521",
                "ecdh-sha2-nistp384",
                "diffie-hellman-group-exchange-sha1"
            ],
            "preferredMACC2S": [
                "hmac-md5",
                "hmac-sha1",
                "hmac-sha2-256",
                "hmac-sha1-96",
                "hmac-md5-96"
            ],
            "preferredMACS2C": [
                "hmac-md5",
                "hmac-sha1",
                "hmac-sha2-256",
                "hmac-sha1-96",
                "hmac-md5-96"
            ],
            "sessionTimeout": 30,
            "strictHostKeyChecking": "yes",
            "userName": "demo",
            "version": "v1",
            "password": ""
        },
        "sourceMetadata": {
            "connectorID": "com.softwareag.sftp_v1",
            "providerName": "WmSFTPProvider",
            "version": "1",
            "connectionType": "sagcloud"
        }
    },
    {
        "name": "SMTP_1",
        "description": "",
        "state": "disabled",
        "deployAnywhere": false,
        "data": {
            "cn_host": "smtp.pepipost.com",
            "cn_port": "25",
            "cn_userName": "sonipepipost",
            "cn_password": "",
            "cn_tls": "none",
            "cn_truststore": null,
            "cx_from": "abc@pepisandbox.com",
            "cx_to": null,
            "cx_cc": null,
            "cn_connectionTimeout": "30000",
            "cn_readTimeout": "30000",
            "cn_writeTimeout": "30000",
            "name": "stage00"
        },
        "sourceMetadata": {
            "connectorID": "com.softwareag.smtp_v1",
            "providerName": "WmSMTPProvider",
            "version": "1",
            "connectionType": "sagcloud"
        }
    },
    {
        "name": "testAlias",
        "deployAnywhere": true,
        "data": {
            "connectionmanagement.expireTimeout": 1000,
            "connectionconfiguration.cn.enableCompression": false,
            "connectionconfiguration.cn.sniServerName": "",
            "connectionconfiguration.pr.useExpectCont": false,
            "connectionmanagement.timeoutType": "fixed",
            "connectionmanagement.minimumPoolSize": 1,
            "connectionconfiguration.cr.securityRealm": "",
            "connectionconfiguration.cn.retryIfRequestSentOk": true,
            "connectionconfiguration.cn.readTimeout": 180000,
            "connectionconfiguration.cn.sockBuffSize": 8192,
            "connectionconfiguration.cn.clientKeyAlias": "",
            "connectionconfiguration.rh.requestHeaderValues": "text/xml,login",
            "connectionconfiguration.pr.followServerRedirects": true,
            "connectionconfiguration.cn.socketStaleCheck": true,
            "connectionmanagement.blockTimeout": 1000,
            "connectionconfiguration.cn.webproxyAlias": "",
            "connectionconfiguration.cn.truststoreAlias": "",
            "connectionconfiguration.pr.httpContentCharSet": "ISO-8859-1",
            "connectionconfiguration.pr.serverRedirectMax": 5,
            "connectionconfiguration.pr.useChunking": false,
            "connectionconfiguration.cn.validateAfterInactivity": 1000,
            "connectionconfiguration.cn.connectTimeout": 180000,
            "connectionmanagement.sessionExpiry": 14,
            "connectionconfiguration.pr.allowCircularRedirects": true,
            "connectionconfiguration.cn.tcpNoDelay": false,
            "connectionconfiguration.cn.idleTimeout": -1,
            "connectionconfiguration.cr.preemptiveAuthEnabled": false,
            "connectionconfiguration.rh.requestHeaderNames": "Content-Type,SOAPAction",
            "connectionmanagement.poolIncrementSize": 1,
            "connectionmanagement.startupRetryCount": 0,
            "connectionconfiguration.cn.socketLinger": -1,
            "connectionmanagement.poolable": true,
            "connectionconfiguration.cr.username": "abc@live.in",
            "connectionconfiguration.pr.protocolVersion": "HTTP/1.1",
            "connectionmanagement.startupBackoffSecs": 10,
            "connectionconfiguration.cn.providerUrl": "https://login.salesforce.com/services/Soap/u/53.0",
            "connectionconfiguration.cn.keystoreAlias": "",
            "connectionconfiguration.pr.userAgent": "Cloudstreams",
            "connectionconfiguration.cn.retryCount": 3,
            "connectionconfiguration.cn.keepAliveInterval": 300000,
            "connectionconfiguration.cr.authSchemeType": "none",
            "connectionmanagement.maximumPoolSize": 10,
            "connectionconfiguration.cn.enableSNI": true,
            "connectionconfiguration.cn.reuseAddr": false,
            "connectionconfiguration.cn.hostnameVerifier": "org.apache.http.conn.ssl.DefaultHostnameVerifier"
        },
        "sourceMetadata": {
            "connectorID": "com.softwareag.cloudstreams.salesforce_v53",
            "providerName": "WmSalesforceProvider",
            "version": "53",
            "packageName": "Test3Project",
            "connectionType": "sagcloud"
        }
    },
    {
        "name": "testConn21",
        "deployAnywhere": true,
        "data": {
            "connectionmanagement.expireTimeout": 1000,
            "connectionconfiguration.cn.enableCompression": false,
            "connectionconfiguration.cn.sniServerName": "",
            "connectionconfiguration.pr.useExpectCont": false,
            "connectionmanagement.timeoutType": "fixed",
            "connectionmanagement.minimumPoolSize": 1,
            "connectionconfiguration.cr.securityRealm": "",
            "connectionconfiguration.cn.retryIfRequestSentOk": true,
            "connectionconfiguration.cn.readTimeout": 180000,
            "connectionconfiguration.cn.sockBuffSize": 8192,
            "connectionconfiguration.cn.clientKeyAlias": "",
            "connectionconfiguration.rh.requestHeaderValues": "text/xml,login",
            "connectionconfiguration.pr.followServerRedirects": true,
            "connectionconfiguration.cn.socketStaleCheck": true,
            "connectionmanagement.blockTimeout": 1000,
            "connectionconfiguration.cn.webproxyAlias": "",
            "connectionconfiguration.cn.truststoreAlias": "",
            "connectionconfiguration.pr.httpContentCharSet": "ISO-8859-1",
            "connectionconfiguration.pr.serverRedirectMax": 5,
            "connectionconfiguration.pr.useChunking": false,
            "connectionconfiguration.cn.validateAfterInactivity": 1000,
            "connectionconfiguration.cn.connectTimeout": 180000,
            "connectionmanagement.sessionExpiry": 14,
            "connectionconfiguration.pr.allowCircularRedirects": true,
            "connectionconfiguration.cn.tcpNoDelay": false,
            "connectionconfiguration.cn.idleTimeout": -1,
            "connectionconfiguration.cr.preemptiveAuthEnabled": false,
            "connectionconfiguration.rh.requestHeaderNames": "Content-Type,SOAPAction",
            "connectionmanagement.poolIncrementSize": 1,
            "connectionmanagement.startupRetryCount": 0,
            "connectionconfiguration.cn.socketLinger": -1,
            "connectionmanagement.poolable": true,
            "connectionconfiguration.cr.username": "abc@gmail.com",
            "connectionconfiguration.pr.protocolVersion": "HTTP/1.1",
            "connectionmanagement.startupBackoffSecs": 10,
            "connectionconfiguration.cn.providerUrl": "https://login.salesforce.com/services/Soap/u/53.0",
            "connectionconfiguration.cn.keystoreAlias": "",
            "connectionconfiguration.pr.userAgent": "Cloudstreams",
            "connectionconfiguration.cn.retryCount": 3,
            "connectionconfiguration.cn.keepAliveInterval": 300000,
            "connectionconfiguration.cr.authSchemeType": "none",
            "connectionmanagement.maximumPoolSize": 10,
            "connectionconfiguration.cn.enableSNI": true,
            "connectionconfiguration.cn.reuseAddr": false,
            "connectionconfiguration.cn.hostnameVerifier": "org.apache.http.conn.ssl.DefaultHostnameVerifier"
        },
        "sourceMetadata": {
            "connectorID": "com.softwareag.cloudstreams.salesforce_v53",
            "providerName": "WmSalesforceProvider",
            "version": "53",
            "packageName": "Test3Project",
            "connectionType": "sagcloud"
        }
    },
    {
        "name": "testConn22",
        "deployAnywhere": true,
        "data": {
            "connectionmanagement.expireTimeout": 1000,
            "connectionconfiguration.cn.enableCompression": false,
            "connectionconfiguration.cn.sniServerName": "",
            "connectionconfiguration.pr.useExpectCont": false,
            "connectionmanagement.timeoutType": "fixed",
            "connectionmanagement.minimumPoolSize": 1,
            "connectionconfiguration.cr.securityRealm": "",
            "connectionconfiguration.cn.retryIfRequestSentOk": true,
            "connectionconfiguration.cn.readTimeout": 180000,
            "connectionconfiguration.cn.sockBuffSize": 8192,
            "connectionconfiguration.cn.clientKeyAlias": "",
            "connectionconfiguration.rh.requestHeaderValues": "text/xml,login",
            "connectionconfiguration.pr.followServerRedirects": true,
            "connectionconfiguration.cn.socketStaleCheck": true,
            "connectionmanagement.blockTimeout": 1000,
            "connectionconfiguration.cn.webproxyAlias": "",
            "connectionconfiguration.cn.truststoreAlias": "",
            "connectionconfiguration.pr.httpContentCharSet": "ISO-8859-1",
            "connectionconfiguration.pr.serverRedirectMax": 5,
            "connectionconfiguration.pr.useChunking": false,
            "connectionconfiguration.cn.validateAfterInactivity": 1000,
            "connectionconfiguration.cn.connectTimeout": 180000,
            "connectionmanagement.sessionExpiry": 14,
            "connectionconfiguration.pr.allowCircularRedirects": true,
            "connectionconfiguration.cn.tcpNoDelay": false,
            "connectionconfiguration.cn.idleTimeout": -1,
            "connectionconfiguration.cr.preemptiveAuthEnabled": false,
            "connectionconfiguration.rh.requestHeaderNames": "Content-Type,SOAPAction",
            "connectionmanagement.poolIncrementSize": 1,
            "connectionmanagement.startupRetryCount": 0,
            "connectionconfiguration.cn.socketLinger": -1,
            "connectionmanagement.poolable": true,
            "connectionconfiguration.cr.username": "abc@gmail.com",
            "connectionconfiguration.pr.protocolVersion": "HTTP/1.1",
            "connectionmanagement.startupBackoffSecs": 10,
            "connectionconfiguration.cn.providerUrl": "https://login.salesforce.com/services/Soap/u/53.0",
            "connectionconfiguration.cn.keystoreAlias": "",
            "connectionconfiguration.pr.userAgent": "Cloudstreams",
            "connectionconfiguration.cn.retryCount": 3,
            "connectionconfiguration.cn.keepAliveInterval": 300000,
            "connectionconfiguration.cr.authSchemeType": "none",
            "connectionmanagement.maximumPoolSize": 10,
            "connectionconfiguration.cn.enableSNI": true,
            "connectionconfiguration.cn.reuseAddr": false,
            "connectionconfiguration.cn.hostnameVerifier": "org.apache.http.conn.ssl.DefaultHostnameVerifier"
        },
        "sourceMetadata": {
            "connectorID": "com.softwareag.cloudstreams.salesforce_v53",
            "providerName": "WmSalesforceProvider",
            "version": "53",
            "packageName": "Test3Project",
            "connectionType": "sagcloud"
        }
    }
]

Certificate APIs

List certificates

Retrieves the list of all certificates configured in an environment.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v1/rest/projects/{projectAlias}/configurations/certificates

Parameters

  • {projectAlias} - Name of the project.

Method: GET

Request body

None

Output:

{
    "output": [
        {
            "keyStoreName": "ks",
            "keyStoreType": "PKCS12",
            "keyStoreLocation": "tempcertificate.crt",
            "keyStoreProvider": "SUN",
            "keyStoreDescription": "helloksdesc",
            "acl": null,
            "handle": "wm.security.keystore.ks",
            "nullKSPassword": "false",
            "isLoaded": "true",
            "isHsm": false,
            "configuredKeyAliases": [
                {
                    "keyAlias": "mykey",
                    "nullPassword": "false",
                    "handle": "wm.security.keystore.ks.mykey"
                }
            ],
            "nonConfiguredKeyAliases": [],
            "certficateAliases": [],
            "certificateType": "KEY_STORE"
        }
    ]
}

Get certificates

Retrieves the details about a specific certificate.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v1/rest/projects/{projectAlias}/configurations/certificates/{certificateName}?certificateType=KEY_STORE

Parameters

  • {projectAlias} - Name of the project.
  • {certificateName} - Name of the certificate.
  • {certificateType} - Type as KEY_STORE for key stores, Type as TRUST_STORE for trust stores, types as PARTNER_CERTIFICATE for partner certificate .

Method: GET

Request body

None

Output:

{
    "output": {
        "keyStoreName": "ks",
        "keyStoreType": "PKCS12",
        "keyStoreLocation": "tempcertificate.crt",
        "keyStoreProvider": "SUN",
        "keyStoreDescription": "helloksdesc",
        "acl": null,
        "handle": "wm.security.keystore.ks",
        "nullKSPassword": "false",
        "isLoaded": "true",
        "isHsm": false,
        "configuredKeyAliases": [
            {
                "keyAlias": "mykey",
                "nullPassword": "false",
                "handle": "wm.security.keystore.ks.mykey"
            }
        ],
        "nonConfiguredKeyAliases": [],
        "certficateAliases": [],
        "certificateType": "KEY_STORE"
    }
}

Get certificate providers

Retrieves the details about the certificate providers.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v1/rest/projects/{projectAlias}/configurations/certificates/providers

Parameters

  • {projectAlias} - Name of the project.

Method: GET

Request body

None

Output:

{
  "output": {
    "type": "key",
    "keyProviderList": [
      {
        "keyStoreType": "JKS",
        "providerList": [
          {
            "provider": "SUN"
          }
        ]
      },
      {
        "keyStoreType": "PKCS12",
        "providerList": [
          {
            "provider": "BC"
          },
          {
            "provider": "SUN"
          },
          {
            "provider": "SunJSSE"
          }
        ]
      }
    ]
  }
}

Create certificates

Creates a certificate.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v1/rest/projects/{projectAlias}/configurations/certificates

Parameters

  • {projectAlias} - Name of the project.

Method: POST

Request body

  • For keystores:
    Content-Type: form-data
    
    certificateProperty: {"certificateType":"KEY_STORE","certificateConfig":{"name":"helloks","description":"helloksdesc","type":"JKS","provider":"SUN","password":"changeit","projectName":"fl469be6366e5bd0290b8c6f","keyAliases":[{"alias":"mykey","password":"changeit"}]}}
    file: <certificate file>
    
    
  • For Truststores:
    Content-Type: form-data
    
    certificateProperty: {"certificateType":"TRUST_STORE","certificateConfig":{"name":"mytruststore","description":"mytruststore desc","type":"JKS","provider":"SUN","password":"changeit","projectName":"fl469be6366e5bd0290b8c6f","keyAliases":[{"alias":"mykey","password":"changeit"}]}}
    file: <certificate file> 
    
    
  • For PartnerCertificate:
    Content-Type: form-data
    
    certificateProperty: {"certificateType":"PARTNER_CERTIFICATE","certificateConfig":{"name":"hips","description":"hello partner","projectName":"fld94a70b8cca9a208928d73"}}
    file: <certificate file> 
    
    

Output:

{
  "output": {
    "code": 0,
    "description": "Success",
    "details": {
      "status": "SUCCESS",
      "message": "Keystore ks added successfully."
    }
  }
}

Update certificates

Updates a certificate.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v1/rest/projects/{projectAlias}/configurations/certificates/{certificateName}

Parameters

  • {projectAlias} - Name of the project.
  • {certificateName} - Name of the certificate.

Method: POST

Request body

  • For keystores:
    Content-Type: form-data
    
    certificateProperty: {"certificateType":"KEY_STORE","certificateConfig":{"name":"helloks","description":"helloksdesc","type":"JKS","provider":"SUN","password":"changeit","projectName":"fl469be6366e5bd0290b8c6f","keyAliases":[{"alias":"mykey","password":"changeit"}]}}
    file: <certificate file>
    
    
  • For Truststores:
    Content-Type: form-data
    
    certificateProperty: {"certificateType":"TRUST_STORE","certificateConfig":{"name":"mytruststore","description":"mytruststore desc","type":"JKS","provider":"SUN","password":"changeit","projectName":"fl469be6366e5bd0290b8c6f","keyAliases":[{"alias":"mykey","password":"changeit"}]}}
    file: <certificate file> 
    
    
  • For PartnerCertificate:
    Content-Type: form-data
    
    certificateProperty: {"certificateType":"PARTNER_CERTIFICATE","certificateConfig":{"name":"hips","description":"hello partner","projectName":"fld94a70b8cca9a208928d73"}}
    file: <certificate file> 
    
    

Output:

{
  "output": {
    "code": 0,
    "description": "Success",
    "details": {
      "status": "SUCCESS",
      "message": "Keystore ks added successfully."
    }
  }
}

Delete certificates

Deletes a certificate.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v1/rest/projects/{projectAlias}/configurations/certificates/{certificateName}?certificateType=KEY_STORE

Parameters

  • {projectAlias} - Name of the project.
  • {certificateName} - Name of the certificate.
  • {certificateType} - Type as KEY_STORE for key stores, Type as TRUST_STORE for trust stores, types as PARTNER_CERTIFICATE for partner certificate .

Method: POST

Request body

None

Output:

If successful, the HTTP Status: 204 No Content message is displayed.

Schedule APIs

List schedules

List all schedules configured for the services in a project.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v1/rest/projects/{projectAlias}/configurations/schedulers

Parameters

  • {projectAlias} - Name of the project.
None

Method: GET

Request body

None

Output:

{
  "output": [
    {
      "runOnceType": "scheduledAt",
      "scheduleType": "runOnce",
      "recurrenceInterval": 0,
      "startDate": 1751092920000,
      "endDate": 0,
      "dayOfTheMonth": 0,
      "lastRunTime": 0,
      "nextRunTime": 1751092920000,
      "serviceName": "hellofs",
      "status": "ACTIVE",
      "isRepeatExecutionOnlyAfterCompletion": false
    },
    {
      "runOnceType": "scheduledAt",
      "scheduleType": "runRecurrent",
      "executionTime": [1750834200000],
      "recurrenceType": "monthly",
      "recurrenceInterval": 0,
      "startDate": 1750834800000,
      "endDate": 1758870000000,
      "dayOfTheMonth": 1,
      "daysOfTheWeek": [],
      "lastRunTime": 0,
      "nextRunTime": 1751439000000,
      "serviceName": "myfs",
      "status": "ACTIVE",
      "isRepeatExecutionOnlyAfterCompletion": false
    },
    {
      "runOnceType": "scheduledAt",
      "scheduleType": "runRecurrent",
      "pipeline": {
        "a": "1"
      },
      "executionTime": [1750748700000],
      "recurrenceType": "Minute",
      "recurrenceInterval": 300,
      "startDate": 1750920060000,
      "endDate": 1751352660000,
      "dayOfTheMonth": 0,
      "lastRunTime": 0,
      "nextRunTime": 1750920060000,
      "serviceName": "add",
      "status": "ACTIVE",
      "isRepeatExecutionOnlyAfterCompletion": true
    },
    {
      "runOnceType": "scheduledAt",
      "scheduleType": "runRecurrent",
      "executionTime": [1750834140000],
      "recurrenceType": "daily",
      "recurrenceInterval": 2,
      "startDate": 1750921200000,
      "endDate": 0,
      "dayOfTheMonth": 0,
      "lastRunTime": 0,
      "nextRunTime": 1751006940000,
      "serviceName": "yfs",
      "status": "ACTIVE",
      "isRepeatExecutionOnlyAfterCompletion": true
    },
    {
      "runOnceType": "scheduledAt",
      "scheduleType": "runRecurrent",
      "executionTime": [1750834200000],
      "recurrenceType": "weekly",
      "recurrenceInterval": 1,
      "startDate": 1750834800000,
      "endDate": 0,
      "dayOfTheMonth": 0,
      "daysOfTheWeek": [2, 5],
      "lastRunTime": 0,
      "nextRunTime": 1751007000000,
      "serviceName": "testfs",
      "status": "ACTIVE",
      "isRepeatExecutionOnlyAfterCompletion": true
    }
  ]
}

Get schedules

Get the details of a specific schedule.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v1/rest/projects/{projectAlias}/configurations/schedulers/{flowServiceName}

Parameters

  • {projectAlias} - Name of the project.
  • {flowServiceName} - Name of the flow service.

Method: GET

Request body

None

Output:

{
  "output": {
    "runOnceType": "scheduledAt",
    "scheduleType": "runRecurrent",
    "executionTime": [],
    "recurrenceType": "weekly",
    "recurrenceInterval": 1,
    "startDate": 1750834800000,
    "endDate": 0,
    "dayOfTheMonth": 0,
    "daysOfTheWeek": [],
    "isRepeatExecutionOnlyAfterCompletion": true
  }
}

Create schedules

Create a schedule to run a flow service.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v1/rest/projects/{projectAlais}/configurations/schedulers/{flowServiceName}

Parameters

  • {projectAlias} - Name of the project.
  • {flowServiceName} - Name of the flow service.

Method: POST

Request body

{
  "runOnceType": "scheduledAt",
  "pipeline": null,
  "scheduleType": "runRecurrent",
  "executionTime": [1748583216000],
  "recurrenceType": "Minute",
  "recurrenceInterval": 600,
  "startDate": 1748583216000,
  "endDate": 1761802339000
}

Output:

{
  "output": {
    "code": 0,
    "description": "Success"
  }
}

Status of schedules

Get the status of a specific schedule.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v1/rest/projects/{projectAlias}/configurations/schedulers/{flowServiceName}/status

Parameters

  • {projectAlias} - Name of the project.
  • {flowServiceName} - Name of the flow service.

Method: POST

Request body

None

Output:

{
  "output": [
    {
      "lastRunTime": 1750830510000,
      "nextRunTime": 1750920060000,
      "status": "ACTIVE"
    }
  ]
}

Delete schedules

Delete a schedule.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v1/rest/projects/{projectAlias}/configurations/schedulers/{flowServiceName}

Parameters

  • {projectAlias} - Name of the project.
  • {flowServiceName} - Name of the flow service.

Method: DELETE

Request body

{
  "runOnceType": "scheduledAt",
  "pipeline": null,
  "scheduleType": "runRecurrent",
  "executionTime": [1748583216000],
  "recurrenceType": "Minute",
  "recurrenceInterval": 600,
  "startDate": 1748583216000,
  "endDate": 1761802339000
}

Output:

If the request is successful, the HTTP Status: 204 (No Content) status code is displayed.

Pause schedules

Pause a schedule for a specific duration.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v1/rest/projects/{projectAlais}/configurations/schedulers/{flowServiceName}/pause

Parameters

  • {projectAlias} - Name of the project.
  • {flowServiceName} - Name of the flow service.

Method: POST

Request body

None

Output:

{
  "output": {
    "code": 0,
    "description": "Success"
  }
}

Resume schedules

Resume a schedule after a specific duration.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v1/rest/projects/{projectAlias}/configurations/schedulers/{flowServiceName}/resume

Parameters

  • {projectAlias} - Name of the project.
  • {flowServiceName} - Name of the flow service.

Method: POST

Request body

None

Output:

{
  "output": {
    "code": 0,
    "description": "Success"
  }
}

Import schedules

Import schedules defined to a project from another project.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v1/rest/projects/{projectAlias}/configurations/schedulers

Parameters

  • {projectAlias} - Name of the project.

Method: POST

Request body

[
  {
    "runOnceType": "scheduledAt",
    "pipeline": null,
    "scheduleType": "runRecurrent",
    "executionTime": [1748583216000],
    "recurrenceType": "Minute",
    "recurrenceInterval": 600,
    "startDate": 1748583216000,
    "endDate": 1761802339000
  },
  {
    "runOnceType": "scheduledAt",
    "pipeline": null,
    "scheduleType": "runRecurrent",
    "executionTime": [1748583216000],
    "recurrenceType": "Minute",
    "recurrenceInterval": 600,
    "startDate": 1748583216000,
    "endDate": 1761802339000
  },
  {
    "runOnceType": "scheduledAt",
    "pipeline": null,
    "scheduleType": "runRecurrent",
    "executionTime": [1748583216000],
    "recurrenceType": "Minute",
    "recurrenceInterval": 600,
    "startDate": 1748583216000,
    "endDate": 1761802339000,
    "serviceName": "testfs",
    "override": false
  },
  {
    "runOnceType": "scheduledAt",
    "pipeline": null,
    "scheduleType": "runRecurrent",
    "executionTime": [1748583216000],
    "recurrenceType": "Minute",
    "recurrenceInterval": 600,
    "startDate": 1748583216000,
    "endDate": 1761802339000,
    "serviceName": "hellofs"
    // "override": false
  }
]

Output:

{
  "output": [
    {
      "name": "testfs",
      "status": "failed",
      "details": {
        "error": "Another schedule already exists for flow service: testfs"
      }
    },
    {
      "name": "invalid_service_names",
      "status": "failed",
      "details": {
        "error": "2 schedule(s) skipped: serviceName is null or empty"
      }
    },
    {
      "name": "hellofs",
      "status": "success"
    }
  ]
}

Alert rule APIs

The same set of APIs can be used to manage both workflows and flow service alert rules by specifying either WorkflowAlertRule or FlowAlertRule as the type in the query parameters. However, there are some key differences in behavior and usage between the two, which are as follows:

  1. The name of a FlowAlertRule cannot be updated.
  2. FlowAlertRule does not support the timeout event.
  3. WorkflowAlertRule does not support the Validate alert rule name and Get alert frequency APIs.

List alert rules

Retrieves the list of all alert rules created for flow services.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v1/rest/configurations/alert-rules

Parameters

None

Method: GET

Request body

None

Output:

{
    "output": [
        {
            "name": "togglealert",
            "type": "FlowAlertRule",
            "description": "",
            "enabled": false,
            "events": {
                "success": true,
                "failed": true
            },
            "users": [
                "abc@ibm.com"
            ],
            "integrations": [
                {
                    "name": "add",
                    "type": "FlowService",
                    "project": "proj"
                }
            ]
        }
    ]
}

Get alert rules

Retrieves the details about a specific alert rule.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v1/rest/configurations/alert-rules/{flowAlertRuleName}?type=FlowAlertRule

Parameters

  • {flowAlertRuleName} - Name of the alert rule.

Method: GET

Request body

None

Output:

{
    "output": {
        "name": "togglealert",
        "type": "FlowAlertRule",
        "description": "",
        "enabled": false,
        "events": {
            "success": true,
            "failed": true
        },
        "users": [
            "abc@ibm.com"
        ],
        "integrations": [
            {
                "name": "add",
                "type": "FlowService",
                "project": "fl8e01070721c04186210365"
            }
        ]
    }
}

Update alert rules

Update the details about a specific alert rule.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v1/rest/configurations/alert-rules/togglealert?type=FlowAlertRule

Parameters

None

Method: PUT

Request body

{
    "name": "togglealert",
    "type": "FlowAlertRule",
    "description": "my description",
    "enabled": false,
    "events": {
        "success": false,
        "failed": true
    },
    "users": [
        "abc@ibm.com"
    ],
    "integrations": [
        {
            "name": "add",
            "type": "FlowService",
            "project": "fl8e01070721c04186210365"
        }
    ]
}

Output:

{
    "output": {
        "code": 0,
        "description": "Success"
    }
}

Create alert rules

Create an alert rule.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v1/rest/configurations/alert-rules?type=FlowAlertRule

Parameters

None

Method: POST

Request body

{
    "name": "togglealert",
    "type": "FlowAlertRule",
    "description": "hello description",
    "enabled": false,
    "events": {
        "success": false,
        "failed": true
    },
    "users": [
        "abc@ibm.com"
    ],
    "integrations": [
        {
            "name": "add",
            "type": "FlowService",
            "project": "fl8e01070721c04186210365"
        }
    ]
}

Output:

  • If the request is successful:
    {
        "output": {
            "code": 0,
            "description": "Success"
        }
    }
  • If an error occurs:
    {
        "error": {
            "message": "AlertRule with name togglealert already exists.",
            "code": 400,
            "errorSource": {
                "errorCode": "IC_1118",
                "statusCode": 400,
                "requestID": "API-d5dc2963-a2d5-46a2-a1fb-67d1a31f0b20"
            }
        }
    }

Delete alert rules

Delete an alert rule.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v1/rest/configurations/alert-rules/testfsalert?type=FlowAlertRule

Parameters

None

Method: DELETE

Request body

None

Output:

  • If the request is successful, the HTTP Status Code: 204 Not Content is displayed.
  • If an error occurs:
    {
        "error": {
            "message": "Alert name testfsalert does not exist",
            "code": 400,
            "errorSource": {
                "errorCode": "IC_1119",
                "statusCode": 400,
                "requestID": "API-4398c5e3-3ee6-40b7-8fa0-8ef1b2e5c2b8"
            }
        }
    }

Enable alert rules

Enable an alert rule.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v1/rest/configurations/alert-rules/togglealert/activate?type=FlowAlertRule

Parameters

None

Method: POST

Request body

None

Output:

{
    "output": {
        "message": "togglealert's state is updated to activate"
    }
}

Disable alert rules

Disable an alert rule.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v1/rest/configurations/alert-rules/togglealert/deactivate?type=FlowAlertRule

Parameters

None

Method: POST

Request body

None

Output:

{
    "output": {
        "message": "togglealert's state is updated to deactivate"
    }
}

Validate alert rule name

Validate an alert rule.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v1/rest/configurations/alert-rules/{flowAlertRuleName}/validate

Parameters

  • {flowAlertRuleName} - Name of the flow service.
None

Method: GET

Request body

None

Output:

  • If response is successful:
    {
        "output": {
            "code": 0,
            "description": "Success"
        }
    }
  • If response fails:
    {
        "error": {
            "message": "AlertRule with name togglealert already exists.",
            "code": 400,
            "errorSource": {
                "errorCode": "IC_1120",
                "statusCode": 400,
                "requestID": "API-5ea23287-c33e-47e7-8929-97541232418a"
            }
        }
    }

Get alert frequency

Retrieves the frequency details of the alerts.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v1/rest/configurations/alert-rules/frequency?type=FlowAlertRule

Parameters

None

Method: GET

Request body

None

Output:

{
    "output": 15
}

Import alert rules

Retrieves the frequency details of the alerts.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v1/rest/configurations/alert-rules

Parameters

None

Method: PUT

Request body

[
    {
        "name": "fsalert",
        "type": "FlowAlertRule",
        "description": "hello desc",
        "enabled": true,
        "events": {
            "success": true,
            "failed": true
        },
        "users": [
            "abc@ibm.com"
        ],
        "integrations": [
            {
                "name": "hellofs",
                "type": "FlowService",
                "project": "proj"
            }
        ]
    }
]

Output:

{
    "output": [
        {
            "name": "fsalert",
            "status": "success"
        }
    ]
}

Workflow alert rules

Create workflow alert rule

Creates a workflow alert rule.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v2/rest/configurations/alert-rules?type=WorkflowAlertRule

Parameters

None

Method: POST

Request body

{
  "name": "<alert_rule_name>",
  "description": "<alert_rule_description>",
  "enabled": <alert_rule_state>,
  "type": "WorkflowAlertRule|FlowAlertRule",
  "users": [
    "array_of_user_mailIDs"
  ],
  "events": {
    "failed": <false|true>,
    "timeout": <false|true,
    "success": <false|true
  },
  "integrations": [
    {
      "name": "<workflow_name>",
      "uid": "<workflow_uid>",
      "project": "<project>"
    }
  ]
}

Output:

If successful, the response code is as follows:

  {
  "name": "<alert_rule_name>",
  "description": "<alert_rule_description>",
  "enabled": <alert_rule_state>,
  "type": "WorkflowAlertRule|FlowAlertRule",
  "users": [
    "array_of_user_mailIDs"
  ],
  "events": {
    "failed": <false|true>,
    "timeout": <false|true,
    "success": <false|true
  },
  "integrations": [
    {
      "name": "<workflow_name>",
      "uid": "<workflow_uid>",
      "project": "<project>"
    }
  ]
}    

Update workflow alert rule

Updates a workflow alert rule.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v2/rest/configurations/alert-rules/{alertRuleName}?type=WorkflowAlertRule

Parameters

  • {alertRuleName} - Name of the alert rule.

Method: PUT

Request body

{
  "name": "<alert_rule_name>",
  "description": "<alert_rule_description>",
  "enabled": <alert_rule_state>,
  "type": "WorkflowAlertRule|FlowAlertRule",
  "users": [
    "array_of_user_mailIDs"
  ],
  "events": {
    "failed": <false|true>,
    "timeout": <false|true,
    "success": <false|true
  },
  "integrations": [
    {
      "name": "<workflow_name>",
      "uid": "<workflow_uid>",
      "project": "<project>"
    }
  ]
}

Output:

If successful, the response code is as follows:

  {
  "name": "<alert_rule_name>",
  "description": "<alert_rule_description>",
  "enabled": <alert_rule_state>,
  "type": "WorkflowAlertRule|FlowAlertRule",
  "users": [
    "array_of_user_mailIDs"
  ],
  "events": {
    "failed": <false|true>,
    "timeout": <false|true,
    "success": <false|true
  },
  "integrations": [
    {
      "name": "<workflow_name>",
      "uid": "<workflow_uid>",
      "project": "<project>"
    }
  ]
}   

Delete workflow alert rule

Deletes a workflow alert rule.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v2/rest/configurations/alert-rules/{alertRuleName}?type=WorkflowAlertRule

Parameters

  • {alertRuleName} - Name of the alert rule.

Method: PUT

Request body

None

Output:

None

List workflow alert rules

Retrieves the list of all workflow alert rules.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v2/rest/configurations/alert-rules

Parameters

None

Method: PUT

Request body

None

Output:

[
  {
    "name": "<alert_rule_name>",
    "description": "<alert_rule_description>",
    "enabled": <alert_rule_state>,
    "type": "WorkflowAlertRule|FlowAlertRule"
  }
]

Get workflow alert rule

Retrieves the details about a specific alert rule.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v2/rest/configurations/alert-rules/{alertRuleName}?type=WorkflowAlertRule

Parameters

  • {alertRuleName} - Name of the alert rule.

Method: GET

Request body

None

Output:

[
  {
    "name": "<alert_rule_name>",
    "description": "<alert_rule_description>",
    "enabled": <alert_rule_state>,
    "type": "WorkflowAlertRule|FlowAlertRule",
    "users": [
        "array_of_user_mailIDs"
    ],
    "events": {
        "failed": <false|true>,
        "timeout": <false|true,
        "success": <false|true
    },
    "integrations": [
        {
            "name": "<workflow_name>",
            "uid": "<workflow_uid>",
            "project": "<project>"
        }
    ]
  }
]

Enable workflow alert rule

Enables a specific alert rule.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v2/rest/configurations/alert-rules/{alertRuleName}/activate?type=WorkflowAlertRule

Parameters

  • {alertRuleName} - Name of the alert rule.

Method: POST

Request body

None

Output:

{
  "message": "<alert_rule_name>'s state is updated to activate"
}

Disable workflow alert rule

Disables a specific alert rule.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v2/rest/configurations/alert-rules/{alertRuleName}/deactivate?type=WorkflowAlertRule

Parameters

  • {alertRuleName} - Name of the alert rule.

Method: POST

Request body

None

Output:

{
  "message": "<alert_rule_name>'s state is updated to deactivate"
}

Vault APIs

List vault variables

Retrieves the list of all vault variables.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v2/rest/configurations/variables

Parameters

None

Method: GET

Request body

None

Output:

If successful, the response code is as follows:

  [
  {
    "key": "<vault_variable_key>",
    "value": "vault_variable_key",
    "isPassword": <type_of_vault_variable>
  }
]    

Get vault variables

Retrieves the details of a specific vault variable.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v2/rest/configurations/variables/{variable_name}

Parameters

  • {variable_name} - Name of the variable.

Method: GET

Request body

None

Output:

If successful, the response code is as follows:

  [
  {
    "key": "<vault_variable_key>",
    "value": "<vault_variable_value>",
    "isPassword": <type_of_vault_variable>,
    "references": {
      "<projectName>": {
        "value": "<value_of_variable_in_project>",
        "isSync": <sync_status>
      }
    }
  }
]  

Create vault variables

Create a vault variable.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v2/rest/configurations/variables

Parameters

None

Method: GET

Request body

{
  "key": "<vault_variable_key>",
  "value": "<vault_variable_value>",
  "isPassword": <type_of_vault_variable>
}

Output:

If successful, the response code is as follows:

  {
  "key": "<vault_variable_key>",
  "value": "<vault_variable_value>",
  "isPassword": <type_of_vault_variable>
} 

Update vault variables

Create a vault variable.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v2/rest/configurations/variables/{variable_name}

Parameters

  • {variable_name} - Name of the variable.

Method: GET

Request body

{
  "value": "<value_to_be_updated>"
}

Output:

If successful, the response code is as follows:

  {
  "key": "<vault_variable_key>",
  "value": "<vault_variable_updated_value>",
  "isPassword": <type_of_vault_variable>
}

Delete vault variables

Delete a vault variable.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v2/rest/configurations/variables/{variable_name}

Parameters

  • {variable_name} - Name of the variable.

Method: GET

Request body

None

Output:

None

Sync vault variables

Allows you to synchronize the vault variables to the linked project’s variables.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v2/rest/configurations/variables/{variable_name}/sync?projects={list_of_projects}

Parameters

  • <projects> - List of projects to sync the value in specific projects. If the variable is present in the given project, then it syncs. Else, it creates a new variable in the given project. If the project list is empty, then it syncs in the projects where the given vault variable is already linked. You can enter multiple project names separated by a comma.
    Note:
    • Do not pass projects query parameter to sync the value in all the linked projects.
    • If unlinked projects are passed, the variable will be created in those projects.
  • <variableName> - Name of the variable.

Method: PUT

Request body

None

Output:

If successful, the response code is as follows:

  {
  "code": <status_of_sync>
}  
If an error occurs, the response is as follows:

  {
    "output": {
        "code": -1,
        "description": "The variable testVar1 could not be updated in the listed projects.",
        "details": {
            "key": "testVar1",
            "UnknownProjects": ["a"]
        }
    }
}           

Project configuration APIs

Export project configurations

Allows you to export all configurations defined in a project.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v2/rest/projects/{project}/configurations

Parameters

  • {project} - Name of the project.

Method: GET

Request body

None

Output:

{
  "apiVersion": "1.0",
  "metadata": {
    "source": "<source_env_name>",
    "project": "<project>",
    "generatedOn": <timestamp>
  },
  "configurations": {
    "packages": [<an_array_of_packages>],
    "variables": [<an_array_of_project_variables_and_paramters>],
    "connections": [<an_array_of_connections>],
    "certificates": [<an_array_of_certificates>],
    "servicesSchedule": [<an_array_of_schedules_of_flowservices>]
  },
  "globals": {
    "alertRules": [<an_array_of_workflow_and_flowservice_alertrules>],
    "versionControlAccounts": [<an_array_of_version_control_accounts>]
  }
}
Sample response:
{
  "apiVersion": "1.0",
  "metadata": {
    "source": "webmdev",
    "project": "fl813755c19900196cbd599b",
    "generatedOn": 1750854252087
  },
  "configurations": {
    "packages": [
      {
        "packageName": "WmSalesforceProvider",
        "wpmServer": "https://packages.webmethods.io",
        "wpmRegistry": "supported",
        "wpmVersion": "latest"
      }
    ],
    "variables": [
      {
        "key": "username",
        "value": "webMInt",
        "packageName": "DemoConfigurationsExportImport",
        "type": "projectVariable",
        "typeProjectVariable": true,
        "isPassword": false,
        "isGlobal": false
      },
      {
        "key": "password",
        "value": null,
        "packageName": "DemoConfigurationsExportImport",
        "type": "projectVariable",
        "typeProjectVariable": true,
        "isPassword": true,
        "isGlobal": false
      },
      {
        "key": "username",
        "value": "webMInt",
        "isPassword": false,
        "isRequired": false,
        "uid": "flf63403e2b015652e888f80",
        "type": "projectParameter"
      },
      {
        "key": "password",
        "value": null,
        "isPassword": true,
        "isRequired": true,
        "uid": "fl8291f7551ff4af0b2fd1e2",
        "type": "projectParameter"
      }
    ],
    "connections": [
      {
        "name": "DefaultAccount",
        "type": "connection",
        "source": "cloudstream",
        "sourceMetadata": {
          "connectorID": "com.softwareag.messaging_v1",
          "connectionType": "sagcloud",
          "authenticationScheme": "credentials",
          "providerName": "WmMessagingProvider"
        },
        "uid": "uconna2036507698deb50af9e5b2c38ef15c972c357ec",
        "data": {}
      },
      {
        "name": "SoapConnector_1",
        "type": "connection",
        "source": "cloudstream",
        "sourceMetadata": {
          "connectorID": "SoapConnector",
          "connectionType": "sagcloud",
          "authenticationScheme": "credentials",
          "providerName": "WmSOAPProvider",
          "connectorType": "CustomSOAP"
        },
        "uid": "uconn26cb90808f72c97610da30ac29663231930e77e0",
        "data": {
          "cn_url": "http://webservices.daehosting.com/services/TemperatureConversions.wso",
          "cn_portBinding": "TemperatureConversionsSoap",
          "cn_timeout": 300000,
          "wss_timestampTTL": null,
          "wss_timestampMaxSkew": null,
          "cr_keystoreAlias": "",
          "cr_keyAlias": "",
          "wss_truststoreAlias": "",
          "wss_partnerCert": ""
        }
      }
    ],
    "certificates": [],
    "servicesSchedule": [
      {
        "runOnceType": "scheduledAt",
        "scheduleType": "runRecurrent",
        "pipeline": null,
        "executionTime": [
          1750756080000
        ],
        "recurrenceType": "daily",
        "recurrenceInterval": 1,
        "startDate": 1750748400000,
        "endDate": 0,
        "lastRunTime": 0,
        "nextRunTime": 1750928880000,
        "serviceName": "getReports",
        "status": "ACTIVE"
      }
    ]
  },
  "globals": {
    "alertRules": [
      {
        "name": "FailedExecutions",
        "type": "FlowAlertRule",
        "description": "Alert users if any of the selected flow, rest, or soap service invocation fails.",
        "enabled": true,
        "events": {
          "failed": true,
          "success": false
        },
        "users": [
          "john@doe.com"
        ],
        "integrations": [
          {
            "name": "getReports",
            "type": "FlowService",
            "project": "DemoConfigurationsExportImport"
          },
          {
            "name": "calculator",
            "type": "SoapApi",
            "project": "DemoConfigurationsExportImport"
          },
          {
            "name": "petStore",
            "type": "RestApi",
            "project": "DemoConfigurationsExportImport"
          }
        ]
      },
      {
        "name": "TimedOutTransactions",
        "description": "Alert users if any of the selected workflows timeout.",
        "enabled": true,
        "type": "WorkflowAlertRule",
        "users": [
          "john@doe.com"
        ],
        "events": {
          "failed": false,
          "timeout": true,
          "success": false
        },
        "integrations": [
          {
            "name": "placeOrder",
            "uid": "fl76508663b4198997de4d3e",
            "project": "DemoConfigurationsExportImport"
          }
        ]
      }
    ],
    "versionControlAccounts": [
      {
        "type": "github",
        "hostname": "github.com",
        "credentials": {
          "username": "john-doe"
        },
        "displayName": "JohnD",
        "owner": "john@doe.com",
        "expiryDate": "2029-07-22T17:48:50.000Z"
      }
    ]
  }
}

Import project configurations

Allows you to import all configurations to a project.
Note: When a project is imported, triggers and any custom connectors used in workflows are not configured automatically. After the import is complete, you must manually configure these components. To configure a trigger,
  1. Open the workflow in the user interface.
  2. Select the appropriate account for the trigger.
  3. Save the workflow to apply the changes.
This step ensures that the workflow functions as intended within the new environment.

Steps:

  • In a REST client platform, add the authentication details of the tenant.
Headers: 
{
	Authorization: Basic Auth
}

URL syntax: ../apis/v2/rest/projects/{project}/configurations

Parameters

  • {project} - Name of the project.

Method: GET

Request body

When using the Export project configurations API, the response payload contains the configuration data for your environment, including connections and variables.

Important: Before importing this payload into another environment, you must update all passwords and secrets associated with the connections and variables. These sensitive values are not included in the export for security reasons and must be manually re-entered to ensure proper functionality after import.
{
  "apiVersion": "1.0",
  "metadata": {
    "source": "<source_env_name>",
    "project": "<project>",
    "generatedOn": <timestamp>
  },
  "configurations": {
    "packages": [<an_array_of_packages>],
    "variables": [<an_array_of_project_variables_and_paramters>],
    "connections": [<an_array_of_connections>],
    "certificates": [<an_array_of_certificates>],
    "servicesSchedule": [<an_array_of_schedules_of_flowservices>]
  },
  "globals": {
    "alertRules": [<an_array_of_workflow_and_flowservice_alertrules>],
    "versionControlAccounts": [<an_array_of_version_control_accounts>]
  }
}
Sample request:
{
  "apiVersion": "1.0",
  "metadata": {
    "source": "webmdev",
    "project": "fl813755c19900196cbd599b",
    "generatedOn": 1750854252087
  },
  "configurations": {
    "packages": [
      {
        "packageName": "WmSalesforceProvider",
        "wpmServer": "https://packages.webmethods.io",
        "wpmRegistry": "supported",
        "wpmVersion": "latest"
      }
    ],
    "variables": [
      {
        "key": "username",
        "value": "webMInt",
        "packageName": "DemoConfigurationsExportImport",
        "type": "projectVariable",
        "typeProjectVariable": true,
        "isPassword": false,
        "isGlobal": false
      },
      {
        "key": "password",
        "value": "secret",
        "packageName": "DemoConfigurationsExportImport",
        "type": "projectVariable",
        "typeProjectVariable": true,
        "isPassword": true,
        "isGlobal": false
      },
      {
        "key": "username",
        "value": "webMInt",
        "isPassword": false,
        "isRequired": false,
        "uid": "flf63403e2b015652e888f80",
        "type": "projectParameter"
      },
      {
        "key": "password",
        "value": "secret",
        "isPassword": true,
        "isRequired": true,
        "uid": "fl8291f7551ff4af0b2fd1e2",
        "type": "projectParameter"
      }
    ],
    "connections": [
      {
        "name": "DefaultAccount",
        "type": "connection",
        "source": "cloudstream",
        "sourceMetadata": {
          "connectorID": "com.softwareag.messaging_v1",
          "connectionType": "sagcloud",
          "authenticationScheme": "credentials",
          "providerName": "WmMessagingProvider"
        },
        "uid": "uconna2036507698deb50af9e5b2c38ef15c972c357ec",
        "data": {}
      },
      {
        "name": "SoapConnector_1",
        "type": "connection",
        "source": "cloudstream",
        "sourceMetadata": {
          "connectorID": "SoapConnector",
          "connectionType": "sagcloud",
          "authenticationScheme": "credentials",
          "providerName": "WmSOAPProvider",
          "connectorType": "CustomSOAP"
        },
        "uid": "uconn26cb90808f72c97610da30ac29663231930e77e0",
        "data": {
          "cn_url": "http://webservices.daehosting.com/services/TemperatureConversions.wso",
          "cn_portBinding": "TemperatureConversionsSoap",
          "cn_timeout": 300000,
          "wss_timestampTTL": null,
          "wss_timestampMaxSkew": null,
          "cr_keystoreAlias": "cr_keystoreAlias",
          "cr_keyAlias": "cr_keyAlias",
          "wss_truststoreAlias": "wss_truststoreAlias",
          "wss_partnerCert": "wss_partnerCert"
        }
      }
    ],
    "certificates": [],
    "servicesSchedule": [
      {
        "runOnceType": "scheduledAt",
        "scheduleType": "runRecurrent",
        "pipeline": null,
        "executionTime": [
          1750756080000
        ],
        "recurrenceType": "daily",
        "recurrenceInterval": 1,
        "startDate": 1750748400000,
        "endDate": 0,
        "lastRunTime": 0,
        "nextRunTime": 1750928880000,
        "serviceName": "getReports",
        "status": "ACTIVE"
      }
    ]
  },
  "globals": {
    "alertRules": [
      {
        "name": "FailedExecutions",
        "type": "FlowAlertRule",
        "description": "Alert users if any of the selected flow, rest, or soap service invocation fails.",
        "enabled": true,
        "events": {
          "failed": true,
          "success": false
        },
        "users": [
          "john@doe.com"
        ],
        "integrations": [
          {
            "name": "getReports",
            "type": "FlowService",
            "project": "DemoConfigurationsExportImport"
          },
          {
            "name": "calculator",
            "type": "SoapApi",
            "project": "DemoConfigurationsExportImport"
          },
          {
            "name": "petStore",
            "type": "RestApi",
            "project": "DemoConfigurationsExportImport"
          }
        ]
      },
      {
        "name": "TimedOutTransactions",
        "description": "Alert users if any of the selected workflows timeout.",
        "enabled": true,
        "type": "WorkflowAlertRule",
        "users": [
          "john@doe.com",
          "random@user.com"
        ],
        "events": {
          "failed": false,
          "timeout": true,
          "success": false
        },
        "integrations": [
          {
            "name": "placeOrder",
            "uid": "fl76508663b4198997de4d3e",
            "project": "DemoConfigurationsExportImport"
          }
        ]
      }
    ],
    "versionControlAccounts": [
      {
        "type": "github",
        "hostname": "github.com",
        "credentials": {
          "username": "john-doe"
        },
        "displayName": "JohnD",
        "owner": "john@doe.com",
        "expiryDate": "2029-07-22T17:48:50.000Z"
      }
    ]
  }
}

Output:

If successful, configurations are added to your project. If any configurations are not updated, you can see the error messages in the response payload.
{
  "apiVersion": "1.0",
  "metadata": {
    "source": "<source_env_name>",
    "project": "<project>",
    "generatedOn": <timestamp>
  },
  "configurations": {
    "packages": [<summary_of_import>],
    "variables": [<summary_of_import>],
    "connections": [<summary_of_import>],
    "certificates": [<summary_of_import>],
    "servicesSchedule": [<summary_of_import>]
  },
  "globals": {
    "alertRules": [<summary_of_import>],
    "versionControlAccounts": [<summary_of_import>]
  }
}
Sample response:
{
  "apiVersion": "1.0",
  "metadata": {
    "source": "webmdev",
    "project": "fl813755c19900196cbd599b",
    "generatedOn": 1750854252087
  },
  "configurations": {
    "packages": [
      {
        "name": "WmSalesforceProvider",
        "status": "success"
      }
    ],
    "variables": [
      {
        "name": "username",
        "status": "success",
        "type": "projectVariable"
      },
      {
        "key": "password",
        "status": "success",
        "type": "projectVariable"
      },
      {
        "key": "username",
        "status": "success",
        "type": "projectParameter"
      },
      {
        "key": "password",
        "status": "success",
        "type": "projectParameter"
      }
    ],
    "connections": [
      {
        "name": "DefaultAccount",
        "status": "success"
      },
      {
        "name": "SoapConnector_1",
        "status": "success"
      }
    ],
    "certificates": [],
    "servicesSchedule": [
      {
        "name": "getReports",
        "status": "success"
      }
    ]
  },
  "globals": {
    "alertRules": [
      {
        "name": "FailedExecutions",
        "type": "FlowAlertRule",
        "status": "success"
      },
      {
        "name": "TimedOutTransactions",
        "status": "failed",
        "type": "WorkflowAlertRule",
        "details": {
          "reason": "john@doe.com is not a valid user."
        }
      }
    ],
    "versionControlAccounts": [
      {
        "name": "JohnD",
        "status": "success"
      }
    ]
  }
}