Create or update asset
POST
/assets
const url = 'https://safe-api.safetyradar.com/v2/assets';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"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"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}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.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”Media typeapplication/json
object
id
string format: uuid
name
required
string
description
string
address1
string
address2
string
city
string
state
string
zip
string
latitude
number
longitude
number
status
string
type
string
parentId
string format: uuid
externalId
External identifier for upsert behavior
string
createdAt
string
updatedAt
string
deletedAt
string
equipmentTypeId
string format: uuid
tagIds
Array<string>
externalParentId
External ID of the parent asset. If provided, resolves to parentId. Takes precedence over parentId if both are specified.
string
Responses
Section titled “Responses”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
slug
required
string
address1
required
string
address2
required
string
city
required
string
state
required
string
zip
required
string
latitude
required
number
longitude
required
number
status
required
string
type
required
string
parentId
required
string format: uuid
externalId
required
string
createdById
required
string format: uuid
lastEditedById
required
string format: uuid
searchText
createdAt
required
string
updatedAt
required
string
deletedAt
required
string
externalParentId
External ID of the parent asset (computed from parentId lookup)
string
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
slug
required
string
address1
required
string
address2
required
string
city
required
string
state
required
string
zip
required
string
latitude
required
number
longitude
required
number
status
required
string
type
required
string
parentId
required
string format: uuid
externalId
required
string
createdById
required
string format: uuid
lastEditedById
required
string format: uuid
searchText
createdAt
required
string
updatedAt
required
string
deletedAt
required
string
externalParentId
External ID of the parent asset (computed from parentId lookup)
string
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
Examplegenerated
{ "code": "example", "message": "example", "details": { "additionalProperty": "example" }}Unauthorized
Media typeapplication/json
object
code
required
string
message
required
string
details
object
key
additional properties
Examplegenerated
{ "code": "example", "message": "example", "details": { "additionalProperty": "example" }}
