Get devices, optionally narrowed by a filter
Return the devices of your company as a paginated JSON list of full device objects — THE tool to look up, filter, count or answer any question about devices. Send an empty body to list everything; add a filter to narrow it. Every filter entry is keyed by a key from getDeviceFilterCatalog (GET /devices/filters-options) and its value is always a clause { "operationType": "INCLUDE" | "EXCLUDE", "values": [...] } — there are no comparison operators (no eq, gt, contains) and never a bare value. Examples: devices offline for a week or more → {"filter":{"mdmStatuses.online":{"operationType":"INCLUDE","values":["INACTIVE"]}}}; macOS in use → {"filter":{"platform":{"operationType":"INCLUDE","values":["MACOS"]},"availableStatus":{"operationType":"INCLUDE","values":["IN_USE"]}}}; a custom field value → {"filter":{"<customFieldId>":{"operationType":"INCLUDE","values":["<optionId>"]}}}. An unknown key is rejected with 400 — the criterion is never silently ignored. Add matchAny: true for OR instead of AND. search is free text over name, serial number, owner and custom field values. Device objects are large, so pages are small (max 100). To extract the whole inventory as a CSV file (spreadsheet, download, report), use exportDevices instead. Retired devices are included — exclude them with an availableStatus clause.
Authorizations
Use your Primo API key in the Authorization header as Bearer <API_KEY>.
Body
One entry per criterion, keyed by the key returned by the filter catalog (GET /devices/filters-options) — a native key such as platform or mdmStatuses.online, or a custom field id. Every value is a clause { operationType, values } — never a bare value, never an operator like eq. An unknown key is rejected with 400 rather than ignored.
When true, a device matching ANY clause is returned (OR). Omitted or false means every clause must match (AND).
Free-text search over device name, serial number, owner and custom field values.
1 <= x <= 9007199254740991Devices per page (default 25, max 100). Device payloads are large — keep pages small.
1 <= x <= 100