API Documentation
/
No Results Found
Orchestration API

Orchestration API

The Orchestration API provides programmatic access to execute orchestrations on Active Directory objects. The ADManager Plus API offers endpoints to list orchestration templates, run them against selected objects, and retrieve execution status. It enables orchestration execution to be triggered externally without requiring manual intervention from the ADManager Plus console.

Download Orchestration API OpenAPI Document

List orchestration templates

This endpoint retrieves orchestration templates configured in ADManager Plus. Results can be refined using filters, sorting, pagination, and field selection, making it easier to identify and reuse the right templates for automated tasks.

Scope : Read orchestration template action, All orchestration template actions
Delegated role : Orchestration Template

Query Parameters

from
integer
The starting index for pagination. Enables pagination through large result sets.
limit
integer
The maximum number of orchestration template records to return per request.
fields
string
The attributes to be returned in the response.
filter
string
A SCIM filter query to refine which resources or objects are returned. See Filter section for details.
eg: (TEMPLATE_NAME eq Template1)
sort
string
This field is used to sort results. The default sort order is ascending. To sort in descending order, prefix the field with a hyphen (-).
eg: TEMPLATE_NAME

Headers

Accept
string
The response format that the client accepts.
X-Module
string
The module name to be recorded in the audit logs. If not provided, the default module is recorded as Rest API.

Request Example

Click to copy
headers_data = Map(); headers_data.put("Accept", "application/json"); headers_data.put("X-Module", "External API"); headers_data.put("Authorization", "REPLACE_KEY_VALUE"); response = invokeUrl [ url: "http://admanagerplus:8080/api/v2/orchestrations" type: GET headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("http://admanagerplus:8080/api/v2/orchestrations") .get() .addHeader("Accept", "application/json") .addHeader("X-Module", "External API") .addHeader("Authorization", "REPLACE_KEY_VALUE") .build(); Response response = client.newCall(request).execute();
const options = { method: 'GET', headers: { Accept: 'application/json', 'X-Module': 'External API', Authorization: 'REPLACE_KEY_VALUE' } }; fetch('http://admanagerplus:8080/api/v2/orchestrations', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPConnection("admanagerplus:8080") headers = { 'Accept': "application/json", 'X-Module': "External API", 'Authorization': "REPLACE_KEY_VALUE" } conn.request("GET", "/api/v2/orchestrations", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("http"); const options = { "method": "GET", "hostname": "admanagerplus", "port": "8080", "path": "/api/v2/orchestrations", "headers": { "Accept": "application/json", "X-Module": "External API", "Authorization": "REPLACE_KEY_VALUE" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
curl --request GET \ --url http://admanagerplus:8080/api/v2/orchestrations \ --header 'Accept: application/json' \ --header 'Authorization: REPLACE_KEY_VALUE' \ --header 'X-Module: External API'

Response Example

{ "data": [ { "TEMPLATE_NAME": "Enable enterprise apps and notify onboarding employees", "TEMPLATE_DESCRIPTION": "Enable Zoho CRM and send a onboarding notification", "TEMPLATE_ID": 1 }, { "TEMPLATE_NAME": "Disable enterprise apps and notify offboarding employees", "TEMPLATE_DESCRIPTION": "Disable Zoho CRM and send a offboarding notification", "TEMPLATE_ID": 2 } ], "meta": { "start_index": 1, "limit": 10, "total_no_of_objects": 2 } }
{ "code": "00000100", "detail": "Some columns given in fields parameter are invalid", "title": "Bad Request." }
{ "code": "00000101", "detail": "The given Authtoken is invalid.", "title": "Unauthorized." }
{ "code": "00000000", "detail": "An internal server error occurred.", "title": "Internal Server Error." }

Execute orchestration

This endpoint executes a selected orchestration template on AD objects. It allows administrators to run predefined workflows such as user provisioning, group updates, or deprovisioning in bulk with minimal effort.

Scope : Run orchestration template action, All orchestration template actions
Delegated role : Advanced Management > Orchestration

Path Parameters

template_id
integer
(Required)
The ID of the orchestration template that has to be executed.

Query Parameters

from
integer
The starting index for pagination. Enables pagination through large result sets.
limit
integer
The maximum number of orchestration template records to return per request.
domain
string
(Required)
The AD domain where the requested operation is performed.
eg: xcross.com
filter
string
A SCIM filter query to refine which resources or objects are returned. See Filter section for details.
eg: (TEMPLATE_NAME eq Template1)
sort
string
This field is used to sort results. The default sort order is ascending. To sort in descending order, prefix the field with a hyphen (-).
eg: TEMPLATE_NAME
object_type
string
(Required)
The type of AD object on which the orchestration template should be executed. Currently, only the user object type is supported.
refresh
boolean
If set to true, triggers a sync before fetching results, ensuring that the data reflects the latest state of AD.

Headers

Accept
string
The response format that the client accepts.
X-Module
string
The module name to be recorded in the audit logs. If not provided, the default module is recorded as Rest API.

Request Example

Click to copy
headers_data = Map(); headers_data.put("Accept", "application/json"); headers_data.put("X-Module", "External API"); headers_data.put("Authorization", "REPLACE_KEY_VALUE"); response = invokeUrl [ url: "http://admanagerplus:8080/api/v2/orchestrations/101/execute?domain=domain1.com&object_type=user" type: POST headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("http://admanagerplus:8080/api/v2/orchestrations/101/execute?domain=domain1.com&object_type=user") .post(null) .addHeader("Accept", "application/json") .addHeader("X-Module", "External API") .addHeader("Authorization", "REPLACE_KEY_VALUE") .build(); Response response = client.newCall(request).execute();
const options = { method: 'POST', headers: { Accept: 'application/json', 'X-Module': 'External API', Authorization: 'REPLACE_KEY_VALUE' } }; fetch('http://admanagerplus:8080/api/v2/orchestrations/101/execute?domain=domain1.com&object_type=user', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPConnection("admanagerplus:8080") headers = { 'Accept': "application/json", 'X-Module': "External API", 'Authorization': "REPLACE_KEY_VALUE" } conn.request("POST", "/api/v2/orchestrations/101/execute?domain=domain1.com&object_type=user", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("http"); const options = { "method": "POST", "hostname": "admanagerplus", "port": "8080", "path": "/api/v2/orchestrations/101/execute?domain=domain1.com&object_type=user", "headers": { "Accept": "application/json", "X-Module": "External API", "Authorization": "REPLACE_KEY_VALUE" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
curl --request POST \ --url 'http://admanagerplus:8080/api/v2/orchestrations/101/execute?domain=domain1.com&object_type=user' \ --header 'Accept: application/json' \ --header 'Authorization: REPLACE_KEY_VALUE' \ --header 'X-Module: External API'

Response Example

{ "data": [ { "object": { "SAM Account Name": "TestUser1", "Logon Name": "TestUser1@domain.com", "Distinguished Name": "CN=TestUser1,OU=Testing OU,DC=domain,DC=com" }, "status": { "status_code": 1, "status_message": "Executing.", "execution_id": "189" } } ], "meta": { "start_index": 1, "limit": 10, "total_no_of_objects": 1 } }
{ "code": "00000100", "detail": "Some columns given in fields parameter are invalid", "title": "Bad Request." }
{ "code": "00000101", "detail": "The given Authtoken is invalid.", "title": "Unauthorized." }
{ "code": "00000000", "detail": "An internal server error occurred.", "title": "Internal Server Error." }

Get Execution status

This endpoint retrieves the status of a previously executed orchestration task using its execution ID. The response includes whether the task is in progress, completed, or failed, along with error details if applicable.

Scope : Run orchestration template action, All orchestration template actions
Delegated role : Advanced Management > Orchestration

Path Parameters

execution_id
integer
(Required)
The execution ID for which the status is to be retrieved.

Headers

Accept
string
The response format that the client accepts.
X-Module
string
The module name to be recorded in the audit logs. If not provided, the default module is recorded as Rest API.

Request Example

Click to copy
headers_data = Map(); headers_data.put("Accept", "application/json"); headers_data.put("X-Module", "External API"); headers_data.put("Authorization", "REPLACE_KEY_VALUE"); response = invokeUrl [ url: "http://admanagerplus:8080/api/v2/orchestrations/execution_status/101" type: GET headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("http://admanagerplus:8080/api/v2/orchestrations/execution_status/101") .get() .addHeader("Accept", "application/json") .addHeader("X-Module", "External API") .addHeader("Authorization", "REPLACE_KEY_VALUE") .build(); Response response = client.newCall(request).execute();
const options = { method: 'GET', headers: { Accept: 'application/json', 'X-Module': 'External API', Authorization: 'REPLACE_KEY_VALUE' } }; fetch('http://admanagerplus:8080/api/v2/orchestrations/execution_status/101', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPConnection("admanagerplus:8080") headers = { 'Accept': "application/json", 'X-Module': "External API", 'Authorization': "REPLACE_KEY_VALUE" } conn.request("GET", "/api/v2/orchestrations/execution_status/101", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("http"); const options = { "method": "GET", "hostname": "admanagerplus", "port": "8080", "path": "/api/v2/orchestrations/execution_status/101", "headers": { "Accept": "application/json", "X-Module": "External API", "Authorization": "REPLACE_KEY_VALUE" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
curl --request GET \ --url http://admanagerplus:8080/api/v2/orchestrations/execution_status/101 \ --header 'Accept: application/json' \ --header 'Authorization: REPLACE_KEY_VALUE' \ --header 'X-Module: External API'

Response Example

{ "data": { "status": { "status_code": 1, "status_message": "Completed Successfully." } } }
{ "code": "00000100", "detail": "Some columns given in fields parameter are invalid", "title": "Bad Request." }
{ "code": "00000101", "detail": "The given Authtoken is invalid.", "title": "Unauthorized." }
{ "code": "00000000", "detail": "An internal server error occurred.", "title": "Internal Server Error." }