---
title: "Fetch all devices in an enterprise"
method: GET
path: "/enterprise/{enterprise_id}/device/"
tags: ["esper_cloud_api_AndroidDevice"]
---

# Fetch all devices in an enterprise

`GET /enterprise/{enterprise_id}/device/`

⚠️ Android only. This endpoint applies exclusively to Android-managed devices enrolled in Esper. For other devices, use the other device management endpoints.

Lists all devices enrolled in an enterprise, with rich filtering options.

Returns a paginated collection of DeviceInfo records with filters for device name, group, IMEI, serial number, state, brand, GMS support, tags, blueprint assignment, and more. Default page size is 20.

About List Enterprise Devices

Devices in Esper represent Android endpoints enrolled under enterprise management. Each device record contains hardware identifiers (IMEI, serial), current state, group membership, blueprint assignment, and status metadata. The group filter traverses the full subtree — filtering by a parent group will include all devices in its subgroups. This endpoint is the primary entry point for fleet-wide device discovery and inventory.

**Key Query Parameters**

name — filter by device display name
group — filter by group UUID; returns all devices in that group and all of its subgroups
imei — filter by IMEI number
serial — filter by device serial number
state — filter by enrollment state (see DeviceStateEnum)
brand — filter by device manufacturer/brand
is_gms — filter for GMS (Google Mobile Services)-capable devices
search — free-text search across device name, IMEI, and MAC address
tags — partial text search across device tags
assigned_blueprint_id — filter devices by their assigned blueprint UUID
current_blueprint_id — filter devices by the blueprint currently applied
current_blueprint_version_id — filter by the specific blueprint version currently applied
limit — results per page (default: 20)

**Common Use Cases**

Enumerate all devices in a specific group (including subgroups) for bulk operations or reporting
Search for a device by serial number or IMEI when responding to a field support request
Filter by blueprint assignment to identify devices running a specific configuration or a stale blueprint version

**Best Practices**

Use the group filter to scope operations to a target group's subtree rather than processing the full enterprise list
Combine search with state to quickly isolate enrolled-but-offline devices in large fleets
Use assigned_blueprint_id vs. current_blueprint_id deliberately — a device may have a new blueprint assigned but not yet applied

**Workflow**

Call this endpoint with relevant filters (group, state, blueprint) to identify the target device set
Collect device_id values from the paginated results
Use individual device IDs for detail lookups, command dispatch, or app queries

## Path parameters

- `enterprise_id` string, uuid, required

## Query parameters

- `name` string
- `group` string, uuid
- `imei` string
- `serial` string
- `state` 0 | 1 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100 | 110 | 120 | 130 | 140 | 150 | 160 | 170 | 180 | 190 | 200 — 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 ```
- `brand` string
- `is_gms` boolean
- `search` string
- `tags` string
- `assigned_blueprint_id` string, uuid
- `current_blueprint_id` string, uuid
- `current_blueprint_version_id` string, uuid
- `limit` integer
- `offset` integer

## Response `200`

successful operation

- object
  - `count` integer
  - `next` string, url
  - `previous` string, url
  - `results` EsperCloudApiDeviceInfo[]
    - `id` string, uuid
    - `url` string, url
    - `device_name` string
    - `alias_name` string — Device friendly name
    - `policy_name` string
    - `status` integer — Current status of device
    - `state` 0 | 1 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100 | 110 | 120 | 130 | 140 | 150 | 160 | 170 | 180 | 190 | 200 — 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 ```
    - `current_command` string, uuid — Current command associated with device
    - `suid` string — Device generated unique id
    - `directory_record_id` string, uuid — ID of Directory Record associated with the device (if available)
    - `fcm_id` string
    - `enterprise` string, url
    - `policy` string, url
    - `user` string, url
    - `groups` string[]
    - `tags` string[]
    - `api_level` integer
    - `template_name` string
    - `mqtt_id` string
    - `softwareInfo` object
    - `hardwareInfo` object
    - `displays` object
    - `networkInfo` object
    - `memoryInfo` object
    - `esper_cient` string
    - `device_type` string
    - `audioConstraints` object
    - `provisioned_on` string, date-time
    - `created_on` string, date-time
    - `current_app_mode` integer
    - `kiosk_app_name` string
    - `lockdown_state` integer
    - `timezone_string` string
    - `initialtemplate` string
    - `updated_on` string, date-time
    - `emm_device` EsperCloudApiEmmDevice
      - `id` integer
      - `google_device_id` string
      - `managementType` string
      - `device` string, uuid
      - `google_user` integer
      - `policy` integer
      - `created_on` string, date-time
      - `updated_on` string, date-time
      - `is_active` boolean
    - `is_gms` boolean
    - `is_active` boolean
    - `has_seamlessInfo` boolean

## Other responses

- `401` — Authorization information is missing or invalid.
- `404` — Not Found.
- `500` — Internal server error

---

[API](https://skmtc.net/esper/apis/esper-api-reference.md) · [All operations](https://skmtc.net/esper/apis/esper-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/esper/esper-api-reference/versions/e1f64cbb488e/schema)
