Query the Reporting Data API
This page lists the endpoints, query parameters, and every GraphQL query the OpenLM Reporting Data API exposes. Authentication is covered in Authenticate to the Reporting Data API. For the fields each query returns, see the field reference.
All requests require a valid Authorization: Bearer <token> header. The Reporting Data API is a GraphQL API. You read all data through a single endpoint.
Endpoints
| Endpoint | Method | Purpose |
|---|---|---|
{API_BASE_URL}/graphql | POST | All data queries (and the in-browser GraphQL explorer on GET). |
{API_BASE_URL}/health | GET | Health check. |
Field naming: the schema is camelCase (licenseUsage, pageInfo, totalCount, orderBy). The groupBy and orderBy argument values are raw column names in snake_case (for example, "feature_name").
Query parameters
The following table is a quick primer on the parameter types your developers use across these queries:
| Parameter | Type | What it does |
|---|---|---|
first | Int | (Cursor paging) How many records to retrieve from the start, for example first: 25. |
after | String | (Cursor paging) A cursor string from a previous response that retrieves the next page after it. |
last / before | Int / String | (Cursor paging) Same idea but paging backwards from the end. |
skip | Int | (Offset paging) How many records to skip before reading. |
take | Int | (Offset paging) How many records to read after skipping. |
searchTerm | String | (Filter lists) Optional text to narrow the dropdown values. Leave empty to get all distinct values. |
limit | Int | (Widgets only) How many rows the widget returns. See notes per query. |
where | (filter object) | Optional filter on any field of the result (autogenerated by the server). |
order | (sort object) | Optional sort on any field of the result (autogenerated by the server). |
The available queries depend on the deployment mode. Queries marked (On-premises only) exist only in the self-hosted version. Queries marked (Cloud only) exist only in the cloud version. Everything else is in both.
Main report queries
These return paged data. Use cursor-paging parameters: first, after, last, before. They also accept where (filter) and order (sort) on any field.
| Query | Parameters | Notes |
|---|---|---|
licenseUsage | first, after, last, before, where, order | License usage records. |
licenseDenials | first, after, last, before, where, order | License denial records. |
sessionDetails | first, after, last, before, where, order | Application/session records. |
projectData | first, after, last, before, where, order | Project records. |
devices (On-premises only) | first, after, last, before, where, order | Tenant-scoped device records. |
How to use: Start with, for example, licenseUsage(first: 25). The response includes pageInfo.hasNextPage and an endCursor. Pass that cursor as after to get the next page: licenseUsage(first: 25, after: "<endCursor>"). totalCount gives the full record count.
Count queries
These return a single number and take no parameters.
| Query | Returns | Meaning |
|---|---|---|
licenseUsageActiveLicenseCount | Int | Count of currently active licenses. |
licenseUsageHostRunningCount | Int | Count of hosts currently running. |
licenseDenialsDenialCountInLast24Hours | Int | Denials in the last 24 hours. |
licenseDenialsNewAlertsCountIn24Hours | Int | Distinct new denial alerts in the last 24 hours. |
How to use: Call them directly, for example { licenseUsageActiveLicenseCount }.
Filter-value lookup queries
These return a paged list of distinct, sorted values for a single field, for building filter dropdowns. Every query takes an optional searchTerm plus the offset-paging parameters skip (Int) and take (Int). Each table lists the searchTerm type for that query.
License Usage
| Query | searchTerm |
|---|---|
licenseUsageLicenseTypeFilterValues | String |
licenseUsageVersionFilterValues | String |
licenseUsageUserNameFilterValues | String |
licenseUsageWorkstationFilterValues | String |
licenseUsageVendorFilterValues | String |
licenseUsageFeaturePackageFilterValues | String |
licenseUsageFeatureProductFilterValues | String |
licenseUsageFeaturePackageItemFilterValues | String |
licenseUsageIsTokenBasedFilterValues | String |
License Denials
| Query | searchTerm |
|---|---|
licenseDenialsUserNameFilterValues | String |
licenseDenialsWorkstationFilterValues | String |
licenseDenialsMinorErrorFilterValues | String |
licenseDenialsMajorErrorFilterValues | String |
licenseDenialsErrorTextFilterValues | String |
licenseDenialsFeatureNameFilterValues | String |
licenseDenialsStatusFilterValues | String |
licenseDenialsGroupIdFilterValues | String |
licenseDenialsGroupNameFilterValues | String |
licenseDenialsCategoryFilterValues | String |
licenseDenialsVendorFilterValues | String |
licenseDenialsFeatureVersionFilterValues | String |
licenseDenialsLicenseTypeFilterValues | String |
licenseDenialsAdditionalKeyFilterValues | String |
licenseDenialsHostnameFilterValues | String |
licenseDenialsLicenseServerFilterValues | String |
Session Details
| Query | searchTerm |
|---|---|
sessionDetailsUserFilterValues | String |
sessionDetailsWorkstationFilterValues | String |
sessionDetailsIdleTimeFilterValues | Float |
sessionDetailsSessionEndTimeHolidaysFilterValues | DateTime |
sessionDetailsSessionEndTimeWeekdaysFilterValues | DateTime |
sessionDetailsSessionFilterValues | Float |
sessionDetailsProcessFilterValues | String |
sessionDetailsDependencyFilterValues | String |
sessionDetailsCustomerFilterValues | String |
sessionDetailsReasonFilterValues | String |
sessionDetailsAgentStatusFilterValues | Int |
sessionDetailsVersionFilterValues | String |
Touchpoint Details
| Query | searchTerm |
|---|---|
touchpointDetailsUsernameFilterValues | String |
touchpointDetailsWorkstationFilterValues | String |
touchpointDetailsEventDateTimeFilterValues | DateTime |
Dongle Monitoring
| Query | searchTerm |
|---|---|
dongleMonitoringDeviceNameFilterValues | String |
dongleMonitoringDeviceDescriptionFilterValues | String |
dongleMonitoringManufacturerFilterValues | String |
dongleMonitoringUserNameFilterValues | String |
dongleMonitoringHostNameFilterValues | String |
dongleMonitoringBlacklistedFilterValues | String |
dongleMonitoringAgentStatusFilterValues | Int |
Project Data
| Query | searchTerm |
|---|---|
projectDataProjectNameFilterValues | String |
projectDataUserNameFilterValues | String |
projectDataPriorityFilterValues | String |
projectDataSourceFilterValues | String |
Device filters (On-premises only)
| Query | searchTerm | Notes |
|---|---|---|
deviceNameFilterValues | String | |
deviceManufacturersFilterValues | String | |
deviceHostNameFilterValues | String | Accepts an optional deviceId (String) to restrict results to a single device. |
deviceUserNameFilterValues | String | Accepts an optional deviceId (String) to restrict results to a single device. |
How to use: licenseUsageVendorFilterValues(searchTerm: "auto", take: 20) returns up to 20 distinct vendors containing "auto". Omit searchTerm to list all values.
Dashboard widget queries
These return a simple list (not paged). The key parameter is limit.
The limit parameter explained:
- Top-N widgets:
limitis clamped to 5 or 10 only. Any other value (or omitting it) defaults to 10. Solimit: 5returns 5 rows, and any other value returns 10 rows. - Full-list widgets (
activeUsersReport,licenseServerStatus,hostAvailability):limitaccepts 1 to 100. Out-of-range or omitted values default to 100 (a safety cap).
| Query | Parameter | Notes (what it returns / ordering) |
|---|---|---|
topDeniedFeatures | limit: Int (5/10) | Most-denied features, highest first. |
topDeniedUsers | limit: Int (5/10) | Users with the most denials, highest first. |
topMostUsedFeatures | limit: Int (5/10) | Most-used features, highest usage first. |
topLeastUsedFeatures | limit: Int (5/10) | Least-used features, lowest usage first. |
topLongestSessions | limit: Int (5/10) | Longest sessions, longest first. |
topIdleSessions | limit: Int (5/10) | Most idle sessions, highest idle time first. |
topProductNames | limit: Int (5/10) | Top products by usage. |
topVendorNames | limit: Int (5/10) | Top vendors by usage. |
topMostActiveUsers | limit: Int (5/10) | Most-active users (only users with ≥1 session). |
topLeastActiveUsers | limit: Int (5/10) | Least-active users (only users with ≥1 session). |
activeUsersReport | limit: Int (1 to 100, default 100) | Currently active sessions. |
licenseServerStatus | limit: Int (1 to 100, default 100) | License server status list. |
hostAvailability | limit: Int (1 to 100, default 100) | Host availability list. |
How to use: topDeniedFeatures(limit: 5) returns the top 5. activeUsersReport(limit: 50) returns up to 50 active sessions.
Related pages
- Authenticate to the Reporting Data API: get a Bearer token before calling these queries.
- Reporting Data API field reference: the fields each query returns.