Groups API
The Groups API provides programmatic access to Active Directory (AD) groups. It offers endpoints to update group attributes and retrieve group details using filters, sorting, and pagination, enabling administrators to automate and streamline group management. Group records typically include membership information, scope, and description fields, and the API ensures they can be accessed or modified in a consistent and secure format.
List AD groups
The List AD Groups endpoint returns information about AD groups. You can refine results by applying filters, selecting specific fields, sorting the output, and using pagination to manage large datasets. This makes it easy to work with groups across one or more domains.
Scope : Read group action, All group management actions
Delegated role : All Groups Report
Query Parameters
Example: domain1.com,domain2.com
Example: (SAM_ACCOUNT_NAME eq John) and (GROUP_NAME eq Doe)
Example: SAM_ACCOUNT_NAME,-GROUP_NAME
Headers
headers_data = Map();
headers_data.put("Accept", "application/json");
headers_data.put("X-Module", "External API");
headers_data.put("X-Date-Time-Format", "SOME_STRING_VALUE");
headers_data.put("Authorization", "REPLACE_KEY_VALUE");
response = invokeUrl
[
url: "http://admanagerplus:8080/api/v2/groups?domains=domain1.com"
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/groups?domains=domain1.com")
.get()
.addHeader("Accept", "application/json")
.addHeader("X-Module", "External API")
.addHeader("X-Date-Time-Format", "SOME_STRING_VALUE")
.addHeader("Authorization", "REPLACE_KEY_VALUE")
.build();
Response response = client.newCall(request).execute();
const options = {
method: 'GET',
headers: {
Accept: 'application/json',
'X-Module': 'External API',
'X-Date-Time-Format': 'SOME_STRING_VALUE',
Authorization: 'REPLACE_KEY_VALUE'
}
};
fetch('http://admanagerplus:8080/api/v2/groups?domains=domain1.com', 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",
'X-Date-Time-Format': "SOME_STRING_VALUE",
'Authorization': "REPLACE_KEY_VALUE"
}
conn.request("GET", "/api/v2/groups?domains=domain1.com", 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/groups?domains=domain1.com",
"headers": {
"Accept": "application/json",
"X-Module": "External API",
"X-Date-Time-Format": "SOME_STRING_VALUE",
"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/groups?domains=domain1.com' \
--header 'Accept: application/json' \
--header 'Authorization: REPLACE_KEY_VALUE' \
--header 'X-Date-Time-Format: SOME_STRING_VALUE' \
--header 'X-Module: External API'
Update AD Groups
The Update AD Groups endpoint allows you to modify the properties of existing AD groups in bulk or individually. You can update core group details such as name, description, type, and OU, as well as advanced attributes like Exchange settings, membership, and nested group associations.
By sending the required payload, administrators can streamline group management tasks without needing to manually update groups from the ADManager Plus console.
Scope : Modify group action, All group management actions
Delegated role : Modify Groups Using CSV, Bulk Group Modification
Arguments
Query Parameters
Example: domain1.com
Example: (SAM_ACCOUNT_NAME eq John) and (GROUP_NAME eq Doe)
Example: SAM_ACCOUNT_NAME,-GROUP_NAME
Headers
parameters_data='{"data":{"attributes":{"sAMAccountName":"TestGroup2","name":"TestGroup2","accountNameHistory":"st9v9;s9t3s;9st5","memberOf":"TestGroup3;TestGroup4","exchange":{"msExchAdminGroup":"/o=Test/ou=Exchange Administrative Group (FYKLBOHF23SPDLT)","mailNickname":"TestGroup2","proxyAddresses":"SMTP:TestGroup2@domain.com"}}}}';
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/groups?domain=domain1.com"
type: PATCH
headers: headers_data
content-type: application/json
parameters: parameters_data
connection: <connection_name>
];
info response;
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"attributes\":{\"sAMAccountName\":\"TestGroup2\",\"name\":\"TestGroup2\",\"accountNameHistory\":\"st9v9;s9t3s;9st5\",\"memberOf\":\"TestGroup3;TestGroup4\",\"exchange\":{\"msExchAdminGroup\":\"/o=Test/ou=Exchange Administrative Group (FYKLBOHF23SPDLT)\",\"mailNickname\":\"TestGroup2\",\"proxyAddresses\":\"SMTP:TestGroup2@domain.com\"}}}}");
Request request = new Request.Builder()
.url("http://admanagerplus:8080/api/v2/groups?domain=domain1.com")
.patch(body)
.addHeader("Accept", "application/json")
.addHeader("X-Module", "External API")
.addHeader("Authorization", "REPLACE_KEY_VALUE")
.addHeader("content-type", "application/json")
.build();
Response response = client.newCall(request).execute();
const options = {
method: 'PATCH',
headers: {
Accept: 'application/json',
'X-Module': 'External API',
Authorization: 'REPLACE_KEY_VALUE',
'content-type': 'application/json'
},
body: '{"data":{"attributes":{"sAMAccountName":"TestGroup2","name":"TestGroup2","accountNameHistory":"st9v9;s9t3s;9st5","memberOf":"TestGroup3;TestGroup4","exchange":{"msExchAdminGroup":"/o=Test/ou=Exchange Administrative Group (FYKLBOHF23SPDLT)","mailNickname":"TestGroup2","proxyAddresses":"SMTP:TestGroup2@domain.com"}}}}'
};
fetch('http://admanagerplus:8080/api/v2/groups?domain=domain1.com', options)
.then(response => response.json())
.then(response => console.log(response))
.catch(err => console.error(err));
import http.client
conn = http.client.HTTPConnection("admanagerplus:8080")
payload = "{\"data\":{\"attributes\":{\"sAMAccountName\":\"TestGroup2\",\"name\":\"TestGroup2\",\"accountNameHistory\":\"st9v9;s9t3s;9st5\",\"memberOf\":\"TestGroup3;TestGroup4\",\"exchange\":{\"msExchAdminGroup\":\"/o=Test/ou=Exchange Administrative Group (FYKLBOHF23SPDLT)\",\"mailNickname\":\"TestGroup2\",\"proxyAddresses\":\"SMTP:TestGroup2@domain.com\"}}}}"
headers = {
'Accept': "application/json",
'X-Module': "External API",
'Authorization': "REPLACE_KEY_VALUE",
'content-type': "application/json"
}
conn.request("PATCH", "/api/v2/groups?domain=domain1.com", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
const http = require("http");
const options = {
"method": "PATCH",
"hostname": "admanagerplus",
"port": "8080",
"path": "/api/v2/groups?domain=domain1.com",
"headers": {
"Accept": "application/json",
"X-Module": "External API",
"Authorization": "REPLACE_KEY_VALUE",
"content-type": "application/json"
}
};
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.write(JSON.stringify({
data: {
attributes: {
sAMAccountName: 'TestGroup2',
name: 'TestGroup2',
accountNameHistory: 'st9v9;s9t3s;9st5',
memberOf: 'TestGroup3;TestGroup4',
exchange: {
msExchAdminGroup: '/o=Test/ou=Exchange Administrative Group (FYKLBOHF23SPDLT)',
mailNickname: 'TestGroup2',
proxyAddresses: 'SMTP:TestGroup2@domain.com'
}
}
}
}));
req.end();
curl --request PATCH \
--url 'http://admanagerplus:8080/api/v2/groups?domain=domain1.com' \
--header 'Accept: application/json' \
--header 'Authorization: REPLACE_KEY_VALUE' \
--header 'X-Module: External API' \
--header 'content-type: application/json' \
--data '{"data":{"attributes":{"sAMAccountName":"TestGroup2","name":"TestGroup2","accountNameHistory":"st9v9;s9t3s;9st5","memberOf":"TestGroup3;TestGroup4","exchange":{"msExchAdminGroup":"/o=Test/ou=Exchange Administrative Group (FYKLBOHF23SPDLT)","mailNickname":"TestGroup2","proxyAddresses":"SMTP:TestGroup2@domain.com"}}}}'
{
"data": {
"attributes": {
"sAMAccountName": "TestGroup2",
"name": "TestGroup2",
"accountNameHistory": "st9v9;s9t3s;9st5",
"memberOf": "TestGroup3;TestGroup4",
"exchange": {
"msExchAdminGroup": "/o=Test/ou=Exchange Administrative Group (FYKLBOHF23SPDLT)",
"mailNickname": "TestGroup2",
"proxyAddresses": "SMTP:TestGroup2@domain.com"
}
}
}
}