Skip to content

Create or update asset

POST
/assets
curl --request POST \
--url https://safe-api.safetyradar.com/v2/assets \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "name": "example", "description": "example", "address1": "example", "address2": "example", "city": "example", "state": "example", "zip": "example", "latitude": 1, "longitude": 1, "status": "active", "type": "equipment", "parentId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "externalId": "example", "createdAt": "example", "updatedAt": "example", "deletedAt": "example", "equipmentTypeId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "tagIds": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ], "externalParentId": "example" }'

Create a new asset or update an existing one if externalId matches (upsert behavior). Supports both location and equipment types. Equipment assets require equipmentTypeId.

Media typeapplication/json
object
id
string format: uuid
name
required
string
description
string
nullable
address1
string
nullable
address2
string
nullable
city
string
nullable
state
string
nullable
zip
string
nullable
latitude
number
nullable >= -140737488355328 <= 140737488355327
longitude
number
nullable >= -140737488355328 <= 140737488355327
status
string
Allowed values: active inactive
type
string
default: location
Allowed values: equipment location
parentId
string format: uuid
nullable
externalId

External identifier for upsert behavior

string
createdAt
string
updatedAt
string
deletedAt
string
nullable
equipmentTypeId
string format: uuid
nullable
tagIds
Array<string>
externalParentId

External ID of the parent asset. If provided, resolves to parentId. Takes precedence over parentId if both are specified.

string

Asset updated (existing asset found by externalId)

Media typeapplication/json
object
data
required
object
id
required
string format: uuid
organizationId
required
string format: uuid
name
required
string
description
required
string
nullable
slug
required
string
address1
required
string
nullable
address2
required
string
nullable
city
required
string
nullable
state
required
string
nullable
zip
required
string
nullable
latitude
required
number
nullable >= -140737488355328 <= 140737488355327
longitude
required
number
nullable >= -140737488355328 <= 140737488355327
status
required
string
Allowed values: active inactive
type
required
string
Allowed values: equipment location
parentId
required
string format: uuid
nullable
externalId
required
string
nullable
createdById
required
string format: uuid
nullable
lastEditedById
required
string format: uuid
nullable
searchText
nullable
createdAt
required
string
updatedAt
required
string
deletedAt
required
string
nullable
externalParentId

External ID of the parent asset (computed from parentId lookup)

string
nullable
Example
{
"data": {
"status": "active",
"type": "equipment"
}
}

Asset created

Media typeapplication/json
object
data
required
object
id
required
string format: uuid
organizationId
required
string format: uuid
name
required
string
description
required
string
nullable
slug
required
string
address1
required
string
nullable
address2
required
string
nullable
city
required
string
nullable
state
required
string
nullable
zip
required
string
nullable
latitude
required
number
nullable >= -140737488355328 <= 140737488355327
longitude
required
number
nullable >= -140737488355328 <= 140737488355327
status
required
string
Allowed values: active inactive
type
required
string
Allowed values: equipment location
parentId
required
string format: uuid
nullable
externalId
required
string
nullable
createdById
required
string format: uuid
nullable
lastEditedById
required
string format: uuid
nullable
searchText
nullable
createdAt
required
string
updatedAt
required
string
deletedAt
required
string
nullable
externalParentId

External ID of the parent asset (computed from parentId lookup)

string
nullable
Example
{
"data": {
"status": "active",
"type": "equipment"
}
}

Bad request - equipment assets require equipmentTypeId

Media typeapplication/json
object
code
required
string
message
required
string
details
object
key
additional properties
nullable
Examplegenerated
{
"code": "example",
"message": "example",
"details": {
"additionalProperty": "example"
}
}

Unauthorized

Media typeapplication/json
object
code
required
string
message
required
string
details
object
key
additional properties
nullable
Examplegenerated
{
"code": "example",
"message": "example",
"details": {
"additionalProperty": "example"
}
}