API Documentation
/
No Results Found
Computers API

Computers API

This Computers API provides programmatic access to Active Directory computer accounts. The ADManager Plus API offers endpoints to create, update, list, and disable computers using structured requests with support for filtering, sorting, and pagination. Computer records typically include host names, operating system details, organizational placement, and group memberships, and the API enables these attributes to be managed consistently across environments.

Download Computers API OpenAPI Document
End Points
List AD Computers
Create AD Computers
Update AD Computers
Disable AD Computers

List AD Computers

This endpoint retrieves AD computer objects based on filters, sorting, and pagination. It allows you to fetch only the required attributes, making queries efficient and tailored to your reporting needs. It is especially useful for generating inventories, auditing systems, or identifying computers that meet specific conditions.

Scope : Read computer action, All computer management actions
Delegated role : All Computers Report

Query Parameters

from
integer
The starting index for pagination. Enables pagination through large result sets.
limit
integer
The maximum number of computers records to return per request.
domains
string
(Required)
A comma-separated list of domains from which to fetch computers.
Example: domain1.com,domain2.com
fields
string
The attributes to be returned in the response.
filter
string
A SCIM filter query to refine which objects are returned. See Filter section for details.
Example: (SAM_ACCOUNT_NAME eq PC01) and (OPERATING_SYSTEM eq Windows 11)
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).
Example: SAM_ACCOUNT_NAME,-OPERATING_SYSTEM
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 response format that the client accepts. This value is passed in the Accept header of the API request.
X-Date-Time-Format
string
The date-time format to be used for parsing date values returned in the response. If not provided, the default ISO format is used (yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]).

Request Example

Click to copy
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/computers?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/computers?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/computers?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/computers?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/computers?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/computers?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'

Response Example

{ "data": [ { "COMPUTER_NAME": "APIComputer1", "DISTINGUISHED_NAME": "CN=APIComputer1,OU=APIComputers,DC=test,DC=com", "OU_NAME": "APIComputers", "VERSION": "-", "SID_STRING": "S-1-5-21-823222356-1721523957-3165990102-24870", "OBJECT_GUID": "{BD96FD3L-7010-40CD-8F28-DFFD8F11D227}", "MANAGER": "Manager 1", "OPERATING_SYSTEM": "Windows", "DEPARTMENT": "IT", "SAM_ACCOUNT_NAME": "APIComputer1$" }, { "COMPUTER_NAME": "APIComputer2", "DISTINGUISHED_NAME": "CN=APIComputer2,OU=APIComputers,DC=test,DC=com", "OU_NAME": "APIComputers", "VERSION": "-", "SID_STRING": "S-1-5-21-823222356-1721523957-3165990102-24871", "OBJECT_GUID": "{BD96FD3L-7010-40CD-8F28-DFFD8F11D228}", "MANAGER": "Manager 2", "OPERATING_SYSTEM": "Windows Server", "DEPARTMENT": "IT" }, { "COMPUTER_NAME": "APIComputer3", "DISTINGUISHED_NAME": "CN=APIComputer3,OU=APIComputers,DC=test,DC=com", "OU_NAME": "APIComputers", "VERSION": "-", "SID_STRING": "S-1-5-21-823222356-1721523957-3165990102-24872", "OBJECT_GUID": "{BD96FD3L-7010-40CD-8F28-DFFD8F11D229}", "MANAGER": "Manager 3", "OPERATING_SYSTEM": "Linux", "DEPARTMENT": "IT" }, { "COMPUTER_NAME": "APIComputer4", "DISTINGUISHED_NAME": "CN=APIComputer4,OU=APIComputers,DC=test,DC=com", "OU_NAME": "APIComputers", "VERSION": "-", "SID_STRING": "S-1-5-21-823222356-1721523957-3165990102-24873", "OBJECT_GUID": "{BD96FD3L-7010-40CD-8F28-DFFD8F11D230}", "MANAGER": "Manager 4", "OPERATING_SYSTEM": "macOS", "DEPARTMENT": "IT" } ], "meta": { "start_index": 1, "limit": 4, "total_no_of_objects": 200 } }
{ "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." }

Create AD Computers

This endpoint creates new AD computer objects, either individually or in bulk. You can apply a default or custom template to ensure consistency in attributes such as OU placement, or naming conventions. It is typically used when onboarding new machines into the domain or automating bulk computer account creation.

Scope : Create computer action, All computer management actions
Delegated role : Create Bulk Computers

Arguments

template
object
The template to be used when creating the computer. If not specified, the default system template is applied.
Show Sub-Attributes arrow
template_name
string
The name of the template used to create the computer.
template_id
integer
The ID of the template used to create the computer.
data
array
The data and attributes used for computer creation.
Show Sub-Attributes arrow
attributes
object
The attributes of the computer object to be created.
Show Sub-Attributes arrow
name
string
The name of the computer.
description
string
The description of the computer.
sAMAccountName
string
The SAM account name of the computer.
displayName
string
The display name of the computer.
dNSHostName
string
The DNS host name of the computer.
operatingSystem
string
The OS installed on the computer.
operatingSystemServicePack
string
The service pack level of the OS.
operatingSystemVersion
string
The version of the OS.
userAccountControl
integer
The user account control settings for the computer.
memberOf
string
The groups that the computer belongs to
managedBy
string
The manager responsible for the computer.
department
string
The department associated with the computer.
OUName
string
The OU where the computer resides.
preventDeletion
boolean
Specifies whether the computer object is protected from accidental deletion.

Query Parameters

domain
string
(Required)
The AD domain where the requested operation is performed.
Example: domain1.com

Request Example

Click to copy
parameters_data='{"field1":"value1","field2":"value2"}'; headers_data = Map(); headers_data.put("Authorization", "REPLACE_KEY_VALUE"); response = invokeUrl [ url: "http://admanagerplus:8080/api/v2/computers?domain=domain1.com" type: POST 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, "{\"field1\":\"value1\",\"field2\":\"value2\"}"); Request request = new Request.Builder() .url("http://admanagerplus:8080/api/v2/computers?domain=domain1.com") .post(body) .addHeader("Authorization", "REPLACE_KEY_VALUE") .addHeader("content-type", "application/json") .build(); Response response = client.newCall(request).execute();
const options = { method: 'POST', headers: {Authorization: 'REPLACE_KEY_VALUE', 'content-type': 'application/json'}, body: '{"field1":"value1","field2":"value2"}' }; fetch('http://admanagerplus:8080/api/v2/computers?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 = "{\"field1\":\"value1\",\"field2\":\"value2\"}" headers = { 'Authorization': "REPLACE_KEY_VALUE", 'content-type': "application/json" } conn.request("POST", "/api/v2/computers?domain=domain1.com", payload, 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/computers?domain=domain1.com", "headers": { "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({field1: 'value1', field2: 'value2'})); req.end();
curl --request POST \ --url 'http://admanagerplus:8080/api/v2/computers?domain=domain1.com' \ --header 'Authorization: REPLACE_KEY_VALUE' \ --header 'content-type: application/json' \ --data '{"field1":"value1","field2":"value2"}'

Body Parameters

Click to copy
{ "template": { "template_name": "Computer Creation Template" }, "data": [ { "attributes": { "sAMAccountName": "APIComputer1$", "name": "APIComputer1", "OUName": "OU=Computers,DC=test,DC=com", "description": "Computer created via API", "memberOf": "Test Group1;Test Group2" } }, { "attributes": { "sAMAccountName": "APIComputer2$", "name": "APIComputer2", "OUName": "OU=Computers,DC=test,DC=com", "description": "Computer created via API", "memberOf": "Test Group3;Test Group4", "managedBy": "Manager2", "extensionAttribute1": "Test Attribute 2" } } ] }

Response Example

{ "data": [ { "object": { "Name": "APIComputer1", "Manager(AD)": "Manager 1", "Description": "Computer created via API" }, "status": { "status_code": 1, "status_message": "Successfully created the computer." } }, { "object": { "Computer Name": "APIComputer2", "SAM Account Name": "APIComputer2$" }, "status": { "status_code": 0, "status_message": "Value for managedBy attribute could not be found in AD. Value for the managedBy attribute must be specified in DN format or mail or displayName" } } ], "meta": { "start_index": 1, "limit": 2, "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." }

Update AD Computers

This endpoint updates existing AD computer objects with the specified payload. You can modify core properties like name, description, and OU, or update advanced details such as operating system, account control, or membership. It is commonly used during upgrades, reorganizations, or when reassigning management responsibilities.

Scope : Modify computer action, All computer management actions
Delegated role : Modify Computers using CSV, Bulk Computer Modification

Arguments

data
object
Data and attributes to be used for the computer modification.
Show Sub-Attributes arrow
attributes
object
The attributes of the computer object to be updated.
Show Sub-Attributes arrow
name
string
The name of the computer.
description
string
The description of the computer.
sAMAccountName
string
The SAM account name of the computer.
displayName
string
The display name of the computer.
dNSHostName
string
The DNS host name of the computer.
operatingSystem
string
The OS installed on the computer.
operatingSystemServicePack
string
The service pack level of the OS.
operatingSystemVersion
string
The version of the OS.
userAccountControl
integer
The user account control settings for the computer.
memberOf
string
The groups that the computer belongs to
managedBy
string
The manager responsible for the computer.
department
string
The department associated with the computer.
OUName
string
The OU where the computer resides.
preventDeletion
boolean
Specifies whether the computer object is protected from accidental deletion.

Query Parameters

from
integer
The starting index for pagination. Enables pagination through large result sets.
limit
integer
The maximum number of computers records to return per request.
domain
string
(Required)
The AD domain where the requested operation is performed.
Example: domain1.com
filter
string
A SCIM filter query to refine which objects are returned. See Filter section for details.
Example: (SAM_ACCOUNT_NAME eq PC01) and (OPERATING_SYSTEM eq Windows 11)
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).
Example: SAM_ACCOUNT_NAME,-OPERATING_SYSTEM
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 response format that the client accepts. This value is passed in the Accept header of the API request.

Request Example

Click to copy
parameters_data='{"data":{"attributes":{"name":"UpdatedComputerName","OUName":"OU=UpdatedComputers,DC=test,DC=com","description":"Updated description for the computer","memberOf":"Updated Group1;Updated Group2","managedBy":"Updated Manager","extensionAttribute1":"Updated Attribute"}}}'; 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/computers?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\":{\"name\":\"UpdatedComputerName\",\"OUName\":\"OU=UpdatedComputers,DC=test,DC=com\",\"description\":\"Updated description for the computer\",\"memberOf\":\"Updated Group1;Updated Group2\",\"managedBy\":\"Updated Manager\",\"extensionAttribute1\":\"Updated Attribute\"}}}"); Request request = new Request.Builder() .url("http://admanagerplus:8080/api/v2/computers?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":{"name":"UpdatedComputerName","OUName":"OU=UpdatedComputers,DC=test,DC=com","description":"Updated description for the computer","memberOf":"Updated Group1;Updated Group2","managedBy":"Updated Manager","extensionAttribute1":"Updated Attribute"}}}' }; fetch('http://admanagerplus:8080/api/v2/computers?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\":{\"name\":\"UpdatedComputerName\",\"OUName\":\"OU=UpdatedComputers,DC=test,DC=com\",\"description\":\"Updated description for the computer\",\"memberOf\":\"Updated Group1;Updated Group2\",\"managedBy\":\"Updated Manager\",\"extensionAttribute1\":\"Updated Attribute\"}}}" headers = { 'Accept': "application/json", 'X-Module': "External API", 'Authorization': "REPLACE_KEY_VALUE", 'content-type': "application/json" } conn.request("PATCH", "/api/v2/computers?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/computers?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: { name: 'UpdatedComputerName', OUName: 'OU=UpdatedComputers,DC=test,DC=com', description: 'Updated description for the computer', memberOf: 'Updated Group1;Updated Group2', managedBy: 'Updated Manager', extensionAttribute1: 'Updated Attribute' } } })); req.end();
curl --request PATCH \ --url 'http://admanagerplus:8080/api/v2/computers?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":{"name":"UpdatedComputerName","OUName":"OU=UpdatedComputers,DC=test,DC=com","description":"Updated description for the computer","memberOf":"Updated Group1;Updated Group2","managedBy":"Updated Manager","extensionAttribute1":"Updated Attribute"}}}'

Body Parameters

Click to copy
{ "data": { "attributes": { "name": "UpdatedComputerName", "OUName": "OU=UpdatedComputers,DC=test,DC=com", "description": "Updated description for the computer", "memberOf": "Updated Group1;Updated Group2", "managedBy": "Updated Manager", "extensionAttribute1": "Updated Attribute" } } }

Response Example

{ "data": [ { "object": { "Distinguished Name": "CN=UpdatedComputer1,OU=Computers,DC=test,DC=com", "Description": "Updated description for the computer", "Member of": "Updated Group1;Updated Group2" }, "status": { "status_code": 1, "status_message": "Successfully updated the computer." } }, { "object": { "Distinguished Name": "CN=UpdatedComputer2,OU=Computers,DC=test,DC=com", "Description": "Updated description for the computer" }, "status": { "status_code": 0, "status_message": "Value for managedBy attribute could not be found in AD. Value for the managedBy attribute must be specified in DN format or mail or displayName" } } ], "meta": { "start_index": 1, "limit": 2, "total_no_of_objects": 20 } }
{ "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." }

Disable AD Computers

This endpoint disables one or more AD computers that match the provided filters. A disabled computer cannot authenticate to the domain but remains in AD for record-keeping and auditing. It is often used to secure decommissioned, inactive, or non-compliant machines in bulk.

Scope : Modify computer action, All computer management actions
Delegated role : Enable/Disable Computers

Query Parameters

from
integer
The starting index for pagination. Enables pagination through large result sets.
limit
integer
The maximum number of computers records to return per request.
domain
string
(Required)
The AD domain where the requested operation is performed.
Example: domain1.com
filter
string
A SCIM filter query to refine which objects are returned. See Filter section for details.
Example: (SAM_ACCOUNT_NAME eq PC01) and (OPERATING_SYSTEM eq Windows 11)
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).
Example: SAM_ACCOUNT_NAME,-OPERATING_SYSTEM
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 response format that the client accepts. This value is passed in the Accept header of the API request.

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/computers/disable?domain=domain1.com" 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/computers/disable?domain=domain1.com") .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/computers/disable?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") headers = { 'Accept': "application/json", 'X-Module': "External API", 'Authorization': "REPLACE_KEY_VALUE" } conn.request("POST", "/api/v2/computers/disable?domain=domain1.com", 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/computers/disable?domain=domain1.com", "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/computers/disable?domain=domain1.com' \ --header 'Accept: application/json' \ --header 'Authorization: REPLACE_KEY_VALUE' \ --header 'X-Module: External API'

Response Example

{ "data": [ { "object": { "Computer Name": "APIC4", "SAM Account Name": "APIC4$", "Distinguished Name": "CN=APIC4,OU=Computers,DC=test,DC=com", "Managed by": "Manager", "OU Name": "OU=Computers,DC=test,DC=com" }, "status": { "status_code": 1, "status_message": "Successfully Disabled." } } ], "meta": { "start_index": 1, "limit": 1, "total_no_of_objects": 10 } }
{ "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." }