Retrieves a paginated list of all devices enrolled in the tenant across every supported platform.
Returns Android, Apple, Linux, and Windows devices in a single unified list, with extensive filtering by platform, OS version, group, blueprint assignment, connectivity, and more.
About Get All Devices
This is the multi-platform device list, returning an AndroidDevice, AppleDevice, LinuxDevice, or WindowsDevice object depending on each device's platform. It's the standard starting point for fleet-wide device inventory, auditing, and for finding device IDs to use in commands, operations, and Converge actions.
Key Fields / Query Parameters
platform — filters by ANDROID, APPLE, LINUX, or WINDOWS
group_multi — filters by one or more group IDs, including their subgroups
assigned_blueprint_id / current_blueprint_id — filters by the blueprint a device is assigned to versus the one it's currently converged to, useful for finding devices that haven't yet converged to a newly assigned blueprint
search — free-text search that covers name, serial, IMEI, and model across platforms, plus platform-specific fields such as udid for Apple devices
state — filters by device enrollment state
Common Use Cases
Building a fleet inventory view across all platforms
Finding every device that hasn't yet converged to a newly assigned blueprint by comparing assigned_blueprint_id and current_blueprint_id
Scoping a bulk operation to a specific group before issuing a Converge or command request
Best Practices
Use group_multi or platform filters to scope results before paging through very large fleets
Compare assigned_blueprint_id against current_blueprint_version_id_net to catch devices that are out of sync with their intended configuration
Paginate with limit and offset rather than fetching the full fleet in one call for enterprises with large device counts
Workflow
Call this endpoint with the filters that scope the device set you need
Page through results using limit and offset
Use the returned device id values as targets for commands, operations, or Converge actions
- Mock serverhttps://api.esper.io/_mock/openapi/device/v0/devices/
- https://develop-api.esper.cloud/apihttps://develop-api.esper.cloud/api/device/v0/devices/
curl -i -X GET \
'https://api.esper.io/_mock/openapi/device/v0/devices/?limit=0&offset=0&ordering=alias&serial=string&udid=string&android_version=string&ios_version=string&ipados_version=string&tvos_version=string&windows_version=string&state=0&battery_level_gte=string&battery_level_lte=string&is_gms=true&active_connection=string&group_multi=497f6eca-6276-4993-bfeb-53cbbbba6f08&group_multi_immediate=497f6eca-6276-4993-bfeb-53cbbbba6f08&assigned_blueprint_id=497f6eca-6276-4993-bfeb-53cbbbba6f08¤t_blueprint_id=497f6eca-6276-4993-bfeb-53cbbbba6f08¤t_blueprint_version_id=497f6eca-6276-4993-bfeb-53cbbbba6f08¤t_blueprint_version_id_net=497f6eca-6276-4993-bfeb-53cbbbba6f08&platform=ANDROID&os=iOS&device_source=string&tags=string&search=string&foundation_device_model_id=497f6eca-6276-4993-bfeb-53cbbbba6f08&android_version_exact=string&foundation_major_version=0&foundation_minor_version=0&foundation_build_number=0&airwave_tenant_model_id=string&airwave_build_id=string&airwave_build_number=0&is_seamless=true&global_device_id=string' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'{ "code": 0, "message": "string", "content": { "count": 0, "previous": "string", "next": "string", "results": [ … ] } }