Get all devices in the tenant
Retrieves a paginated list of all devices enrolled in the tenant, across all platforms, using the V2 device schema.
Returns richer device records than the v0 equivalent, with expanded filter support including managed_by, policy_multi, template_multi, is_locked_down, extended search coverage, and esper_agent_version_name for Esper agent version filtering.
About List All Devices (V2)
This is the current recommended device list endpoint. Compared to /api/device/v0/devices/, V2 adds several filters valuable for fleet management at scale: managed_by distinguishes blueprint-managed from template-managed devices; policy_multi and template_multi allow multi-value policy/template filtering; is_locked_down targets locked-down devices; and the search field covers more Android-specific identifiers including WiFi MAC address, SIM operator, network operator, and IP address. Results are returned as device objects.
Key Query Parameters
managed_by — Filter by management mode: BLUEPRINT or TEMPLATE
policy_multi — CSV list of policy names to filter by
template_multi — CSV list of template names to filter by
is_locked_down — Filter to locked-down devices only
esper_agent_version_name — Filter by Esper agent (DPC) version name
foundation_version — Full Foundry OS version string (e.g., os_version.major.minor.build or eea_version)
search — Extended Android search: name, serial, IMEI, model, ICCID, phone, brand, WiFi, manufacturer, WiFi MAC, SIM operator, network operator, IP address
All v0 filters are also available: platform, os, group_multi, group_multi_immediate, assigned_blueprint_id, current_blueprint_id, current_blueprint_version_id_net, state, battery_level_gte/lte, tags, device_source, udid, serial
Common Use Cases
Identifying all devices not yet on the latest blueprint version for targeted update campaigns
Filtering by managed_by=TEMPLATE to locate devices still on legacy template management
Querying all locked-down devices by group for compliance auditing
Best Practices
Prefer this endpoint over /api/device/v0/devices/ for all new integrations
Use platform as a CSV list (e.g., ANDROID,APPLE) to query multiple platforms in one call
For Foundry OS fleet management, use foundation_version or the granular foundation_major_version, foundation_minor_version, foundation_build_number filters
Workflow
Choose filters appropriate to the use case (group, platform, blueprint version, policy, etc.)
Call with limit and offset for pagination
Iterate results, using next for subsequent pages; branch on the platform field to handle per-platform schema differences
Query parameters
Opaque cursor token for cursor-based pagination.
- Use start to begin from the first page
- Use the next_cursor value from previous response for subsequent pages
- Use the prev_cursor value from previous response to navigate backward
- When provided, offset parameter is ignored
Field to order the results by. Prefix with '-' to reverse the order.
Filter by multiple group ID. Fetch the devices from groups matching with the IDs and its subgroup.
Filter by multiple group IDs. Fetch the devices from groups matching with the IDs. Excludes devices in any subgroups.
a csv list of platforms [ANDROID, APPLE, LINUX, WINDOWS]
a csv list of device sources [ABM, NON_ABM]
a csv list of template names
a csv list of policy names
Search devices by multiOS -> Name, Serial, IMEI, Model, WiFi SSID, Apple UDID, ICCID1, ICCID2, Brand, Manufacturer, Hardware, WiFi MAC Address, SIM Operator, Network Operator and IP Address.
Filter by one or more full foundation version strings (os_version.major.minor.build or eea_version). Multiple values can be passed as a comma-separated list (e.g. ?foundation_version=1.0-arm64-20210617-RELEASE,1.0-sb30-20210302-DEBUG), consistent with other multi-value filters.
Filter devices by Esper agent version name (DPC version)
a csv list of tag ids
When true, returns only devices that are not associated with any group
Sparse fieldset: comma-separated list of top-level response field names to return (e.g. fields=id,name,created_at).
- id is always included in the response regardless of whether it is requested.
- Only top-level fields are supported; nested sub-fields (e.g. within hardware_info) cannot be selected individually.
- Requesting an unknown field name returns a 400 error.
- Omit this parameter to receive the full device object.
Response
Device information for the Tenant. Response format depends on pagination type used:
- Offset-based: Returns count, prev, next (URLs), results
- Cursor-based: Returns results, next_cursor, prev_cursor
Example response
{
"content": {
"next_cursor": "eyJzdiI6W3siYyI6InVwZGF0ZWRfYXQiLCJ2IjoiMjAyNi0wMy0xMVQwNzozNjowMS45NDM3NDlaIiwibyI6IkRFU0MifV0sInV2IjoiMTM5NzQwMjYtYTQzNS00ZDk5LWEyOWItM2E0Y2Y0MTZmODFhIn0="
}
}