Once the GraphQL schema is successfully loaded and an API connection is established, you can execute various queries to retrieve data from your environment. One practical use case is retrieving a full list of installed applications across all managed systems. This list includes applications installed via XOAP or by other means.
Get a list of all applications installed on your nodes #
The following GraphQL query returns a list of all applications installed across all nodes (systems) in your environment:
query NodesWithSoftware($skip: Int = 0, $take: Int = 500) {
configMngt_Nodes(skip: $skip, take: $take) {
totalCount
pageInfo { hasNextPage }
items {
id
nodeName
lastSystem {
software {
displayName
displayVersion
publisher
}
}
}
}}

Notes:
If you are managing more than 500 nodes, increase the value of $take accordingly.
Pagination is supported using skip and hasNextPage.
Get a list of all applications available in XOAP’s Application Management module #
This is useful for reporting, validation, or automation tasks involving application definitions. You can use the following GraphQL query for this:
query ListAllApplications($skip: Int = 0, $take: Int = 100) {
appMngt_Applications(skip: $skip, take: $take) {
totalCount
pageInfo { hasNextPage }
items {
id
name
vendor
version
packageName
operatingSystem
architecture
language
createdAt
updatedAt
}
}
}
This query also returns the metadata for all applications, including details like vendor, version, target OS, and architecture.

Notes:
You can increase the $take value if more than 100 applications are expected.
Use the hasNextPage field to implement pagination if needed.
Get a list of all systems from a specific hardware manufacturer #
This query allows you to retrieve all nodes from a specific manufacturer (e.g., Lenovo) registered within your XOAP workspace. This can be useful for inventory audits, hardware lifecycle management, or vendor-specific patching and compliance activities. Use the following GraphQL query:
query LenovoFlatNodes($skip: Int = 0, $take: Int = 5) {
configMngt_FlatNodes(
skip: $skip
take: $take
where: { csManufacturer: { eq: "LENOVO" } }
order: [{ nodeName: ASC }]
) {
totalCount
pageInfo { hasNextPage }
items {
id
nodeName
csManufacturer
csModel
osName
osVersion
}
}
}

Notes:
Manufacturer Name is case-sensitive.
To filter for a different vendor (e.g., HP, DELL), change the value of csManufacturer: { eq: "..." } accordingly.
Increase the $take value to retrieve more records or implement pagination using the hasNextPage field.
This example sorts results by nodeName in ascending order.
How to know what you can query #
XOAP collects a vast amount of data from your nodes, along with additional metadata from your workspace. With such a large data set, it can be difficult to determine which fields are available for querying.
The most effective way to explore available query options is by reviewing the SDL (Schema Definition Language). The SDL provides a complete overview of all objects, fields, and types that can be queried via GraphQL.
By inspecting the SDL, you can:
- Discover all available data structures
- Identify relationships between entities
- Understand the full potential of GraphQL queries within XOAP
This approach ensures you’re not limited by predefined queries and can fully leverage the data collected in your environment.

Need more queries or want to add your own? #
The github.com/xoap-io/queries repository is your go‑to collection of reusable GraphQL queries tailored for hardware and application management within XOAP and related platforms.
How to use it:
1. Navigate to the applications/ or hardware/ folders.
2. Copy the relevant .graphql file into your API or GraphQL client.
3. Adjust parameters as needed to fit your environment.
Under the MIT License and with zero stars or forks so far, this project is still blossoming. We highly welcome your contributions—whether it’s by submitting issues, enhancing queries, or opening pull requests to enrich this shared resource. Let’s grow together! ⭐