Update a device
Update the inventory data of one device: its assignee, its identity and specs, and its purchase data. Only the fields present in the body are changed — each field documents its own constraints. Fields that MDM reports for an enrolled device can only be set while the device is not enrolled; changing one on an enrolled device is rejected (409), and so is a name driven by a device naming MDM control. Sending a field with its current value is always accepted, so a read-modify-write of the whole device is safe. Use updateDeviceTags for tags and updateDeviceOwner to only reassign the device.
Authorizations
Use your Primo API key in the Authorization header as Bearer <API_KEY>.
Path Parameters
Body
Date the device was purchased, as an ISO 8601 date (YYYY-MM-DD) or datetime
^(?:(?:\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])))$Date the device was decommissioned, as an ISO 8601 date (YYYY-MM-DD) or datetime
^(?:(?:\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])))$Purchase price excluding VAT, in cents
-9007199254740991 <= x <= 9007199254740991ID of the employee this device is assigned to. Null unassigns it. Must be an employee of your company.
^[a-f\d]{24}$Display name of the device. Cannot be emptied. Rejected when a device naming MDM control drives the name. On Windows and Linux, letters, digits and hyphens only, starting and ending with a letter or a digit.
1Asset tag recorded by the company. Free text, null clears it.
Physical condition of the device. One of BROKEN, FAIR, GOOD, EXCELLENT.
BROKEN, FAIR, GOOD, EXCELLENT Keyboard layout of the device, e.g. FRENCH, US_ENGLISH — see the enum for the full list.
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 Screen size in inches, e.g. 14 or 13.6.
Brand or manufacturer name, e.g. "APPLE", "LENOVO".
Commercial model name, e.g. "MacBook Pro 14"".
Year the device was manufactured, e.g. 2024.
-9007199254740991 <= x <= 9007199254740991Serial number of the device. Must be unique in your company. Only editable while the device is not enrolled in MDM — MDM owns this value on an enrolled device.
Model identifier reported by the device, e.g. "MacBookPro18,3". Only editable while the device is not enrolled in MDM — MDM owns this value on an enrolled device.
Device type: LAPTOP, TABLET, SMARTPHONE. Only editable while the device is not enrolled in MDM — MDM owns this value on an enrolled device.
LAPTOP, TABLET, SMARTPHONE Processor name, e.g. "Apple M2 Pro". Only editable while the device is not enrolled in MDM — MDM owns this value on an enrolled device.
RAM in GB, e.g. 16. Only editable while the device is not enrolled in MDM — MDM owns this value on an enrolled device.
-9007199254740991 <= x <= 9007199254740991Disk size in GB, e.g. 512. Only editable while the device is not enrolled in MDM — MDM owns this value on an enrolled device.
-9007199254740991 <= x <= 9007199254740991Battery condition: SERVICE_RECOMMENDED or NORMAL. Only editable while the device is not enrolled in MDM — MDM owns this value on an enrolled device.
SERVICE_RECOMMENDED, NORMAL 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))$The ID of the employee assigned to this device
Deprecated — use name instead. This field will be removed on 2026-04-13.
LAPTOP, 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 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))$