Analyze Device Inventory with REST API (version 2.0)

Use DEVICE_INVENTORY to view all monitored devices which have the Agent for End User Devices locally deployed, and which reported data to Aternity over the past seven days, so you can keep an updated inventory of devices and their attributes.

Using this API, you can examine the list in ways not available in the Device Inventory dashboard. For example, you can create a list of all Windows 7 devices in your organization which have a specific version of the Agent for End User Devices.

Each entry from DEVICE_INVENTORY refers to a single monitored device, and provides details about that device.


About how long Aternity keeps this data (retention period) and how far back you can go, as well as about how many hours or days of data Aternity returns by default read here.


This article covers the latest REST API version. For older version 1.0, click here.

Before You Begin

To send a REST API query in Excel, PowerBI or a browser, enter the URL of the REST API, your Aternity username (must have the OData REST API role) and its password. You can find this by selecting User icon > REST API Access. SSO users must generate (once) and use a special password, as Aternity's REST API does not authenticate with your enterprise's identity provider. For LDAP users, enter the domain name, then a backslash ('\'), then your network username and password. For example domain_name\jsmith

To view Aternity REST API, enter the base URL from Aternity > User icon > REST API Access, followed by the name of the API into a browser, Excel or PowerBI (learn more). For VIEWING, use <base_url>/latest/API_NAME; for INTEGRATIONS, use <base_url>/<version number>/API_NAME (for example, <base_url>/v1/API_NAME, or <base_url>/v1.0/API_NAME, or <base_url>/v2/API_NAME, or <base_url>/v2.0/API_NAME).

Get the latest REST API version for analyzing in the external app
The <base_URL> is configured in the Aternity REST API Server as the external_url (learn more):

Wherever possible, use $select and $filter to narrow your query, to avoid receiving an error like Returned data is too large. Learn more.


To access this API from a browser, Excel or Power BI (learn more), enter <base_url>/latest/DEVICE_INVENTORY or <base_url>/v2/DEVICE_INVENTORY

To list all the model numbers of Lenovo laptops in the Miami Sales department, enter:

.../DEVICE_INVENTORY?$select=DEVICE_MODEL&$filter=DEVICE_MANUFACTURER eq 'Lenovo' and DEVICE_TYPE eq 'Laptop' and (LOCATION_CITY eq 'Miami' and USER_DEPARTMENT eq 'Sales')

To list the hostnames and location of all Mac laptops with less than 8GB RAM, enter:


To list all Windows 7 devices and their location in your organization which have Agent for End User Devices version 9.2.x, enter:


For example, to retrieve the inventory of devices located in Miami's Sales Department and Los Angeles' Marketing department, use: .../DEVICE_INVENTORY?$filter=(LOCATION_CITY eq 'Miami' and USER_DEPARTMENT eq 'Sales') or (LOCATION_CITY eq 'Los Angeles' and USER_DEPARTMENT eq 'Marketing')&...

Supported Parameters

You can view the data by entering the URL into Excel, into a browser, or into or any OData compatible application such as Power BI.

You can add parameters to the URL to filter the returned data, by adding a question mark (?) followed by a parameter and value, such as .../API_NAME?$filter=(USERNAME eq ''), or several parameter-value pairs each separated by an ampersand (&), like .../API_NAME?$format=xml&$top=5.

Query Options Description

Use $select to return only specific columns (attributes), to make queries more efficient: ...API_NAME?$select=COL1,COL2,COL3


Use $format to force the returned data to be either in XML or JSON format. This is only useful for testing the raw data in a web browser. For example: .../API_NAME?$format=xml


Use $orderby to sort the returned data according to the value you choose. For example, .../API_NAME?$orderby=LOCATION


Use $top (lower case only) when you are initially testing the response of the API by returning the first few entries.

For example, to return the first five entries (not sorted), use: ...API_NAME?$top=5


Use $filter to insert conditions that narrow down the data, to return only entries where those conditions are true..

Create conditions for filtering with any of the following operators:

Query Operators Description

Equal to

For example, COL4 eq 'val4'


Not equal to

For example, COL4 ne 'val4'


Greater than

For example, COL4 gt 'val4'


Greater than or equal

For example, COL4 ge 'val4'


Less than

For example, COL4 lt 'val4'


Less than or equal

For example, COL4 le 'val4'


Logical and

For example, COL1 eq 'value1' and COL2 ne 'value2'


Logical or

For example, COL1 eq 'value1' or COL2 ne 'value2'


Logical negation

Create conditions for filtering with any of the following functions:

Query Functions Description

For example, $filter=startswith(account_name,'Aternity')


For example, $filter=endswith(account_name,'Aternity')



For example, $filter=contains(account_name,'Aternity')

Use operators with parentheses to group conditions logically: .../API_NAME?$filter=(COLUMN1 eq 'value1' or COL2 neq 'val2') and (COL3 gt number) and not (COL4 eq 'val4' or contains(COL5,'val5'))
$search is NOT supported.

Do not use $search in Aternity's REST APIs.


Wherever possible, use $select and $filter to narrow your query, to avoid receiving an error like Returned data is too large. Learn more.


For this REST API Aternity returns the last 24 hours worth of data.

Each entry from DEVICE_INVENTORY refers to a single monitored device, and provides details about that device.

Sample output from this API

The returned columns are:

Type Returned columns




Account_ID,Account_Name,Action_Execution_Policy,Active_Subnet,Agent_Current_Status,Agent_Version,Antivirus_Vendor,Boot_Last_Timestamp,Business_Location,Corp_Channel,Corp_Line_Of_Business,Corp_Market,Corp_Store_ID,Corp_Store_Type,Custom_Attribute (1-6 or 1-9),Custom_Pilot_Group,Device_Battery_Capacity_Health,Device_BIOS_VersionDevice_Boot_Score,Device_CPU_Cores,Device_CPU_Physical_Cores,Device_CPU_Frequency,Device_CPU_Generation,Device_CPU_Model (a.k.a. CPU_Model),Device_CPU_Type,Device_Days_From_Last_Boot,Device_Domain,Device_Health_Score,Device_ID_Mobile_Or_Mac,Device_Image_Build_Number,Device_IP_Address,Device_ISP,Device_Manufacturer,Device_Memory,Device_Model,Device_Name,Device_Network_Type,Device_Overall_Score,Device_Performance_Score,Device_Physical_Memory,Device_Power_Plan,Device_RAM_Type,Device_Serial_Number,Device_Subnet,Device_Type,Enforce_Privacy,Health_Status,Location_City,Location_Country,Location_On_Site,Location_On_VPN,Location_Region,Location_State,Mobile_Carrier,MS_Office_License_Type,MS_Office_Version,MS_Stability_Index,OS_Architecture,OS_BITLocker_Protection_Status,OS_Disk_Type,OS_Family,OS_Free_Disk_Space,OS_Name,OS_Total_Disk_Space,OS_Version_Update_Date,OS_Version,Real_Time_Protection_Status,SCCM_Client_Version,Time_Last_Reporting,User_Department,User_Domain,User_Role,Username,Virtual_App_Server_Edition,Virtual_App_Server_Farm,Virtual_App_Server_Version,Virtual_App_Server_Zone,Wifi_BSSID,Wifi_Channel,Wifi_SSID