Dates: April 9, 2026
Esper Agent Version: 10.0.3256
Updated: April 14, 2026
New Features
- Updated pagination params for API: We've added new parameters for our APIs. You can now pass the new cursor=start param to return the first page of results. This change improves performance for tenants with very high device counts (5000+), returning results 75% faster.
-
Lifecycle labels for API Documentation: We've begun adding lifecycle labels to the API docs. These labels show where each endpoint is in its development, helping you choose the right ones for your workflows. The API documentation is updated a few days after the release, so check back to see the labels.
-
Current tags:
- Stable: the latest endpoint. Production ready.
- Beta: Public facing but may evolve.
- Legacy: Supported, but newer alternatives exist.
- Deprecated: Removal planned and migration required.
Note: We originally included the legacy label note in DevRel 186. It has been officially released as of DevRel 187.
-
Current tags:
-
API Change log:
View change log
✏️ Updated
PUT /authz2/v1/roles/{role_id}/scopes
- added the new 'create:device_command:UPDATE_WIFI_AP' enum value to the request property 'scope_names/items/'
- added the new 'create:group_command:UPDATE_WIFI_AP' enum value to the request property 'scope_names/items/'
-
GET /commands/v0/commands/
- ⚠️ added the new 'OS_UPDATE_STATUS' enum value to the 'content/results/items/command' response property for the response status '200'
- ⚠️ added the new 'SCAN_OS_UPDATES' enum value to the 'content/results/items/command' response property for the response status '200'
- ⚠️ added the new 'SCHEDULE_OS_UPDATE' enum value to the 'content/results/items/command' response property for the response status '200'
- ⚠️ added the new 'UPDATE_WIFI_AP' enum value to the 'content/results/items/command' response property for the response status '200'
- added the optional property 'content/results/items/command_args/anonymous_identity' to the response with the '200' status
- added the optional property 'content/results/items/command_args/certificate_file_password' to the response with the '200' status
- added the optional property 'content/results/items/command_args/certificate_file_path' to the response with the '200' status
- added the optional property 'content/results/items/command_args/domain' to the response with the '200' status
- added the optional property 'content/results/items/command_args/hidden' to the response with the '200' status
- added the optional property 'content/results/items/command_args/identity' to the response with the '200' status
- added the optional property 'content/results/items/command_args/install_action' to the response with the '200' status
- added the optional property 'content/results/items/command_args/product_version' to the response with the '200' status
- added the optional property 'content/results/items/command_args/wifi_eap_method' to the response with the '200' status
- added the optional property 'content/results/items/command_args/wifi_password' to the response with the '200' status
- added the optional property 'content/results/items/command_args/wifi_phase2_auth' to the response with the '200' status
- added the optional property 'content/results/items/command_args/wifi_security_type' to the response with the '200' status
- added the optional property 'content/results/items/command_args/wifi_ssid' to the response with the '200' status
-
POST /commands/v0/commands/
- ⚠️ added the new 'OS_UPDATE_STATUS' enum value to the 'content/command' response property for the response status '201'
- ⚠️ added the new 'SCAN_OS_UPDATES' enum value to the 'content/command' response property for the response status '201'
- ⚠️ added the new 'SCHEDULE_OS_UPDATE' enum value to the 'content/command' response property for the response status '201'
- ⚠️ added the new 'UPDATE_WIFI_AP' enum value to the 'content/command' response property for the response status '201'
- added the new optional request property 'command_args/anonymous_identity'
- added the new optional request property 'command_args/certificate_file_password'
- added the new optional request property 'command_args/certificate_file_path'
- added the new optional request property 'command_args/domain'
- added the new optional request property 'command_args/hidden'
- added the new optional request property 'command_args/identity'
- added the new optional request property 'command_args/install_action'
- added the new optional request property 'command_args/product_version'
- added the new optional request property 'command_args/wifi_eap_method'
- added the new optional request property 'command_args/wifi_password'
- added the new optional request property 'command_args/wifi_phase2_auth'
- added the new optional request property 'command_args/wifi_security_type'
- added the new optional request property 'command_args/wifi_ssid'
- added the new 'OS_UPDATE_STATUS' enum value to the request property 'command'
- added the new 'SCAN_OS_UPDATES' enum value to the request property 'command'
- added the new 'SCHEDULE_OS_UPDATE' enum value to the request property 'command'
- added the new 'UPDATE_WIFI_AP' enum value to the request property 'command'
- added the optional property 'content/command_args/anonymous_identity' to the response with the '201' status
- added the optional property 'content/command_args/certificate_file_password' to the response with the '201' status
- added the optional property 'content/command_args/certificate_file_path' to the response with the '201' status
- added the optional property 'content/command_args/domain' to the response with the '201' status
- added the optional property 'content/command_args/hidden' to the response with the '201' status
- added the optional property 'content/command_args/identity' to the response with the '201' status
- added the optional property 'content/command_args/install_action' to the response with the '201' status
- added the optional property 'content/command_args/product_version' to the response with the '201' status
- added the optional property 'content/command_args/wifi_eap_method' to the response with the '201' status
- added the optional property 'content/command_args/wifi_password' to the response with the '201' status
- added the optional property 'content/command_args/wifi_phase2_auth' to the response with the '201' status
- added the optional property 'content/command_args/wifi_security_type' to the response with the '201' status
- added the optional property 'content/command_args/wifi_ssid' to the response with the '201' status
-
GET /commands/v0/commands/{id}/
- ⚠️ added the new 'OS_UPDATE_STATUS' enum value to the 'content/command' response property for the response status '200'
- ⚠️ added the new 'SCAN_OS_UPDATES' enum value to the 'content/command' response property for the response status '200'
- ⚠️ added the new 'SCHEDULE_OS_UPDATE' enum value to the 'content/command' response property for the response status '200'
- ⚠️ added the new 'UPDATE_WIFI_AP' enum value to the 'content/command' response property for the response status '200'
- added the optional property 'content/command_args/anonymous_identity' to the response with the '200' status
- added the optional property 'content/command_args/certificate_file_password' to the response with the '200' status
- added the optional property 'content/command_args/certificate_file_path' to the response with the '200' status
- added the optional property 'content/command_args/domain' to the response with the '200' status
- added the optional property 'content/command_args/hidden' to the response with the '200' status
- added the optional property 'content/command_args/identity' to the response with the '200' status
- added the optional property 'content/command_args/install_action' to the response with the '200' status
- added the optional property 'content/command_args/product_version' to the response with the '200' status
- added the optional property 'content/command_args/wifi_eap_method' to the response with the '200' status
- added the optional property 'content/command_args/wifi_password' to the response with the '200' status
- added the optional property 'content/command_args/wifi_phase2_auth' to the response with the '200' status
- added the optional property 'content/command_args/wifi_security_type' to the response with the '200' status
- added the optional property 'content/command_args/wifi_ssid' to the response with the '200' status
- GET /commands/v0/status/ - added the optional property 'content/results/items/command_meta' to the response with the '200' status
- GET /commands/v0/status/{id}/ - added the optional property 'content/command_meta' to the response with the '200' status
- PUT /commands/v0/status/{id}/ - added the optional property 'content/command_meta' to the response with the '200' status
- GET /enterprise/{enterprise_id}/group/{group_id}/download/eventfeed/ - ⚠️ added the new 'UPDATE_WIFI_AP' enum value to the 'results/items/command' response property for the response status '200'
- POST /pipelines/v0/operationlists/{operationlist_id}/operations/ - added the new 'UPDATE_WIFI_AP' enum value to the request property 'operation_type'
- GET /v0/enterprise/{enterprise_id}/command/ - ⚠️ added the new 'UPDATE_WIFI_AP' enum value to the 'results/items/command' response property for the response status '200'
-
POST /v0/enterprise/{enterprise_id}/command/
- ⚠️ added the new 'UPDATE_WIFI_AP' enum value to the 'command' response property for the response status '201'
- added the new 'UPDATE_WIFI_AP' enum value to the request property 'command'
- POST /v0/operations/ - added the new 'UPDATE_WIFI_AP' enum value to the request property 'operation_type'
-
GET /v2/devices/
- ⚠️ for the 'query' request parameter 'limit', default value '10.00' was added
- ⚠️ added '#/components/schemas/OffsetPaginatedDeviceList, #/components/schemas/CursorPaginatedDeviceList' to the 'content' response property 'oneOf' list for the response status '200'
- ⚠️ the 'content' response's property type/format changed from 'object'/'' to ''/'' for status '200'
- ⚠️ for the 'query' request parameter 'limit', the max was set to '1000.00'
- ⚠️ removed the optional property 'content/count' from the response with the '200' status
- ⚠️ removed the optional property 'content/next' from the response with the '200' status
- ⚠️ removed the optional property 'content/previous' from the response with the '200' status
- ⚠️ removed the optional property 'content/results' from the response with the '200' status
- added the new optional 'query' request parameter 'cursor'
-
Esper Android Agent release notes:
- SET_DEVICE_LOCKDOWN_STATE now returns failure when the device is already in the requested state.
Bug Fixes and Improvements
- Fixed an issue where the Esper installer would restrict access to system binaries if the logged in user was named esper on Fedora. When creating a user, use a name other than esper to avoid unexpected behavior.
- We now support Linux reprovisioning workflows. Similar to the Android behavior, if a device was already provisioned, we will now allow provisioning with the new configuration. Previously, provisioning would fail if the device was already part of a tenant. You can now move devices between tenants with ease by provisioning it to a new tenant.
- Fixed an issue where successive successful lock state commands, with the same state, could cause the console to report the wrong lock state.
- Updated the workflow for Wayland displays where for permission prompts appeared at the start of every Remote Viewer session. Permission is now requested once and persisted for future sessions.
- Geofence updates:
- We fixed an issue where iOS devices had a Geofence assigned to them on their overview page despite not supporting Geofence. The Overview page will now correctly display Geofence assignments.
- We fixed an issue where, after editing or creating a geofence in a blueprint, the edit button appeared to be disabled after navigating to and back to the page. The button will now remain in the active state.
- Fixed an issue where the search bar size and alignment weren't consistent or properly aligned on the Geofence page.
We're excited to launch DevRel 187 over the coming days, and the Esper team is hard at work on the next release. Please contact Esper Support to share your thoughts on how Esper can improve future releases.