Get a device by ID
Return the device details for the given device ID, including its imeis (IMEIs, digits only, one per SIM slot, reported for company-owned iPhones, cellular iPads and Android phones) and its macAddress (the MAC of the interface carrying its default route, reported for computers), which getDevices leaves out. This device can have custom fields (see getDeviceCustomFields) and code history (see getDeviceCodeHistory). This device can also have local user accounts (see getDeviceUsers).
Authorizations
Use your Primo API key in the Authorization header as Bearer <API_KEY>.
Path Parameters
Response
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$IMEIs of the device, digits only, one per SIM slot (a dual-SIM iPhone has two). Reported by the MDM for company-owned iPhones, cellular iPads and Android phones; empty when it reported none.
MAC address of the network interface carrying the default route at the last inventory (the Wi-Fi card on Wi-Fi, the Ethernet adapter when wired), as the OS presents it: a private address when the OS randomizes it. Reported for computers; null for phones and tablets.
The ID of the employee assigned to this device
Deprecated — use name instead. This field will be removed on 2026-04-13.
LAPTOP, DESKTOP, TABLET, SMARTPHONE Physical condition recorded for the device
BROKEN, FAIR, GOOD, EXCELLENT ANDROID, IOS, MACOS, WINDOWS, LINUX, CHROME_OS, IPADOS, UNKNOWN OS update status of the device against the company's OS update policies: UP_TO_DATE, NOT_UP_TO_DATE, or NOT_SETUP when no OS update policy targets the device. Null when unknown.
UP_TO_DATE, NOT_UP_TO_DATE, NOT_SETUP ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$Date the device was purchased
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$Date the device was decommissioned
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$Purchase price excluding VAT, in cents
Current lock/wipe status of the device. LOCKING/LOCKED for lock operations, UNLOCKING for unlock in progress, WIPING/WIPED for wipe operations. Null when device is in normal state.
LOCKED, LOCKING, UNLOCKING, WIPED, WIPING EDR provider protecting the device: SENTINELONE, THREATDOWN, or null when no EDR (e.g. no EDR configured, or device not yet protected).
SENTINELONE, THREATDOWN Device liveness: ONLINE (currently reachable), OFFLINE (not reachable but its agent is still live), INACTIVE (the agent stopped reporting — in practice no news for about a week), NOT_COMPATIBLE (iOS, iPadOS and Android have no liveness notion), or null when MDM is off for the device. INACTIVE follows from the agent being disabled, NOT from a threshold on lastSeenAt — to find devices silent for months, read lastSeenAt.
ONLINE, OFFLINE, INACTIVE, NOT_COMPATIBLE Last time the platform received anything from the device. The field to use for "silent for N days".
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$Last time the device's inventory was collected. A device can be heard from without being re-scanned.
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$Last time the device rebooted
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$Fleet-management status of the device: IN_USE, IN_STOCK or RETIRED
IN_USE, IN_STOCK, RETIRED How the device was enrolled into MDM
MANUAL, AUTOMATIC Asset tag recorded by the company
RAM in GB
Disk size in GB
Processor name, e.g. "Apple M2 Pro"
Raw CPU type reported by the device, e.g. "arm64e" or "x86_64"
CPU instruction-set architecture, derived from the device CPU. Use it to tell which architecture-specific software build a device can run. Null when the device has never been synced.
ARM, X86 Screen size in inches
FRENCH, US_ENGLISH, ARABIC, CHINESE_PINYIN, CHINESE_ZHUYIN, DANISH, DUTCH, GERMAN, INTERNATIONAL_ENGLISH, ITALIAN, NORWEGIAN, PORTUGUESE, RUSSIAN, SPANISH, SPANISH_LATIN_AMERICA, SWEDISH, SWISS, TURKISH, UK_ENGLISH, UKRAINIAN, HEBREW, MACEDONIAN, JAPANESE_JIS Battery condition reported by the device: NORMAL, or SERVICE_RECOMMENDED when the battery should be serviced. Null when the device reported nothing.
SERVICE_RECOMMENDED, NORMAL Bucketed free-disk-space level derived from percentDiskSpaceAvailable
LOW, MEDIUM, HIGH Whether the device disk is encrypted. Null means the device reported nothing about encryption — not that it is unencrypted. To count the unencrypted fleet, read false; to size the blind spot, read null.
First time the device was seen encrypted
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$Whether the macOS bootstrap token is escrowed. Null when the device reported nothing about it.
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$