Skip to content

Fetch device details by ID
Legacy

Request

⚠️ Android only. This endpoint applies exclusively to Android-managed devices enrolled in Esper.

Alternative Available

Use the v2 endpoint /v2/devices/{id} for an updated and forward-compatible device model, especially in multi-OS environments.

Retrieves the full DeviceInfo record for a single enrolled device by its UUID. Returns comprehensive device metadata including hardware identifiers, enrollment state, group membership, applied and assigned blueprint versions, and status information. Use when you already have a device_id and need complete, authoritative device detail.

About Get Device

The DeviceInfo object is Esper's full representation of an enrolled Android device. It includes all fields returned in list results, plus any additional status and configuration detail associated with the device's current enrollment state. Device IDs are stable UUIDs and do not change after enrollment; they are the primary reference for all device-specific API operations — commands, app installs, event feeds, and status queries.

Key Fields

device_id — path parameter UUID; Esper's stable internal identifier for this device

Blueprint fields — reflect the gap between assigned_blueprint_id (what's intended) and current_blueprint_id / current_blueprint_version_id (what's applied)

Enrollment state — current device lifecycle state (see DeviceStateEnum)

Common Use Cases

Retrieve full device details after discovering a device_id from a list or event payload

Confirm current enrollment state before issuing a command or checking compliance

Inspect blueprint assignment vs. applied blueprint to detect configuration drift

Best Practices

Use this endpoint for authoritative single-device lookups rather than scanning list results — it avoids pagination overhead and returns a complete record. Check state before dispatching commands; commands may not execute on devices in offline or unenrolled states. Store the device_id UUID in your system — it is the stable key for all downstream device operations and does not change.

Workflow

Obtain device_id from a device list call, enrollment event, or stored reference. Call this endpoint to retrieve the full DeviceInfo record. Use the returned state and configuration data to determine the appropriate next action (command, install, group operation).

Security
esper_cloud_api_apiKey
Path
enterprise_idstring, (uuid)required

ID of the enterprise

device_idstring, (uuid)required

ID of the device

cURL
curl -i -X GET \
  'https://api.esper.io/_mock/openapi/enterprise/{enterprise_id}/device/{device_id}/' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

successful operation

Bodyapplication/json
idstring, (uuid)
urlstring, (url)
device_namestring
alias_namestring

Device friendly name

policy_namestring
statusinteger, (int32)

Current status of device

stateinteger, (int32)(esper_cloud_api_DeviceStateEnum)

Following are the Device States and their description

* 0 = Device State is Unspecified
* 1 = Online
* 20 = Disabled (device has been factory reset or removed from the Esper Dashboard)
* 30 = Beginning Provisioning
* 40 = Configuring Google Play (still provisioning)
* 50 = Applying Policies and Installing Applications (still provisioning)
* 60 = Offline
* 70 = Device is undergoing a Factory Reset (reset started from Dashboard)
* 80 = Device Onboarding in Progress
* 90 = Device Onboarding Failed
* 100 = Device Onboarded in Esper
* 110 = Android For Work Account added
* 120 = Apps installed
* 130 = Branding Processed
* 140 = Permission Policy Processed
* 150 = Device Policy Processed
* 160 = Device Settings Processed
* 170 = Security Policy Processed
* 180 = Phone Policy Processed
* 190 = Custom Settings Processed
* 200 = Registered
Enum:012030405060708090
current_commandstring, (uuid)

Current command associated with device

suidstring

Device generated unique id

directory_record_idstring, (uuid)

ID of Directory Record associated with the device (if available)

fcm_idstring
enterprisestring, (url)
policystring, (url)
userstring, (url)
groupsArray of strings, (url)
tagsArray of strings
api_levelinteger, (int32)
template_namestring
mqtt_idstring
softwareInfoobject
hardwareInfoobject
displaysobject
networkInfoobject
memoryInfoobject
esper_cientstring
device_typestring
audioConstraintsobject
provisioned_onstring, (date-time)
created_onstring, (date-time)
current_app_modeinteger
kiosk_app_namestring
lockdown_stateinteger
timezone_stringstring
initialtemplatestring
updated_onstring, (date-time)
emm_deviceobject(esper_cloud_api_EmmDevice)
is_gmsboolean
Default:true
is_activeboolean
Default:true
has_seamlessInfobooleanread-only
Response
{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "url": "string", "device_name": "string", "alias_name": "string", "policy_name": "string", "status": 0, "state": 0, "current_command": "56d48fe1-418b-4f15-89fd-e796ac9dcba7", "suid": "string", "directory_record_id": "6f311904-88c6-4ec4-a47d-9093f673ceea", "fcm_id": "string", "enterprise": "string", "policy": "string", "user": "string", "groups": [ "string" ], "tags": [ "string" ], "api_level": 0, "template_name": "string", "mqtt_id": "string", "softwareInfo": {}, "hardwareInfo": {}, "displays": {}, "networkInfo": {}, "memoryInfo": {}, "esper_cient": "string", "device_type": "string", "audioConstraints": {}, "provisioned_on": "2019-08-24T14:15:22Z", "created_on": "2019-08-24T14:15:22Z", "current_app_mode": 0, "kiosk_app_name": "string", "lockdown_state": 0, "timezone_string": "string", "initialtemplate": "string", "updated_on": "2019-08-24T14:15:22Z", "emm_device": { "id": 0, "google_device_id": "string", "managementType": "string", "device": "8dca31e6-c85b-4a6b-bfb4-205d45d9b3bd", "google_user": 0, "policy": 0, "created_on": "2019-08-24T14:15:22Z", "updated_on": "2019-08-24T14:15:22Z", "is_active": true }, "is_gms": true, "is_active": true, "has_seamlessInfo": true }