Skip to content

Bulk create or update assets

POST
/assets/bulk
curl --request POST \
--url https://safe-api.safetyradar.com/v2/assets/bulk \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "assets": [ { "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 or update multiple assets in a single request. Assets are upserted based on externalId. Maximum 1000 assets per request. Equipment assets require equipmentTypeId.

Media typeapplication/json
object
assets
required
Array<object>
>= 1 items <= 1000 items
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

Asset type. If omitted on update, preserves existing type.

string
Allowed values: equipment location
parentId
string format: uuid
nullable
externalId
required

External identifier (required for bulk upsert)

string
>= 1 characters
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

Bulk operation completed

Media typeapplication/json
object
data
required
object
results
required
Array<object>
object
externalId
required
string
success
required
boolean
created
boolean
id
string format: uuid
error
string
summary
required
object
total
required
number
created
required
number
updated
required
number
failed
required
number
Examplegenerated
{
"data": {
"results": [
{
"externalId": "example",
"success": true,
"created": true,
"id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"error": "example"
}
],
"summary": {
"total": 1,
"created": 1,
"updated": 1,
"failed": 1
}
}
}

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"
}
}