Skip to main content
POST
/
devices
Create a device
curl --request POST \
  --url https://api.getprimo.com/devices \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "serialNumber": "<string>",
  "name": "<string>",
  "platform": "ANDROID",
  "type": "LAPTOP",
  "brand": "<string>",
  "modelName": "<string>",
  "year": 0,
  "ownerId": "<string>",
  "tags": [
    "<string>"
  ]
}
'
{
  "id": "<string>",
  "tags": [
    "<string>"
  ],
  "isEnrolled": true,
  "createdAt": "2023-11-07T05:31:56Z",
  "updatedAt": "2023-11-07T05:31:56Z",
  "ownerId": "<string>",
  "name": "<string>",
  "serialNumber": "<string>",
  "computerName": "<string>",
  "type": "LAPTOP",
  "platform": "ANDROID",
  "brand": "<string>",
  "manufacturer": "<string>",
  "modelName": "<string>",
  "modelIdentifier": "<string>",
  "year": 123,
  "osVersion": "<string>",
  "osName": "<string>",
  "buildVersion": "<string>",
  "enrolledAt": "2023-11-07T05:31:56Z",
  "disenrolledAt": "2023-11-07T05:31:56Z",
  "lockWipeStatus": "LOCKED",
  "edrProvider": "SENTINELONE"
}
Key: Write Scope: Company

Authorizations

Authorization
string
header
required

Use your Primo API key in the Authorization header as Bearer <API_KEY>.

Body

application/json
serialNumber
string | null

Serial number of the device

name
string | null

Display name of the device

platform
enum<string> | null

Operating system platform (e.g. MACOS, WINDOWS, LINUX, IOS, ANDROID, CHROMEOS)

Available options:
ANDROID,
IOS,
MACOS,
WINDOWS,
LINUX,
CHROME_OS,
IPADOS,
UNKNOWN
type
enum<string> | null

Device type (LAPTOP, TABLET, SMARTPHONE)

Available options:
LAPTOP,
TABLET,
SMARTPHONE
brand
string | null

Brand or manufacturer name

modelName
string | null

Model name of the device

year
integer | null

Year the device was manufactured

Required range: -9007199254740991 <= x <= 9007199254740991
ownerId
string | null

ID of the employee to assign this device to

tags
string[]

List of tags

Response

default - application/json
id
string
required
tags
string[]
required
isEnrolled
boolean
required
createdAt
string<date-time>
required
Pattern: ^(?:(?:\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))$
updatedAt
string<date-time>
required
Pattern: ^(?:(?:\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))$
ownerId
string | null

The ID of the employee assigned to this device

name
string | null
serialNumber
string | null
computerName
string | null
deprecated

Deprecated — use name instead. This field will be removed on 2026-04-13.

type
enum<string> | null
Available options:
LAPTOP,
TABLET,
SMARTPHONE
platform
enum<string> | null
Available options:
ANDROID,
IOS,
MACOS,
WINDOWS,
LINUX,
CHROME_OS,
IPADOS,
UNKNOWN
brand
string | null
manufacturer
string | null
modelName
string | null
modelIdentifier
string | null
year
number | null
osVersion
string | null
osName
string | null
buildVersion
string | null
enrolledAt
string<date-time> | null
Pattern: ^(?:(?:\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))$
disenrolledAt
string<date-time> | null
Pattern: ^(?:(?:\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))$
lockWipeStatus
enum<string> | null

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.

Available options:
LOCKED,
LOCKING,
UNLOCKING,
WIPED,
WIPING
edrProvider
enum<string> | null

EDR provider protecting the device: SENTINELONE, THREATDOWN, or null when no EDR (e.g. no EDR configured, or device not yet protected).

Available options:
SENTINELONE,
THREATDOWN