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.
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
eg: (TEMPLATE_NAME eq Template1)
eg: TEMPLATE_NAME
Headers
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'
{
"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
Query Parameters
eg: xcross.com
eg: (TEMPLATE_NAME eq Template1)
eg: TEMPLATE_NAME
Headers
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'
{
"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
Headers
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'
{
"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."
}