Skip to content

Create asset

POST
/api/assets
curl --request POST \
--url http://localhost:3000/api/assets \
--header 'Content-Type: application/json' \
--cookie session=<session> \
--data '{ "name": "example", "assetTag": "example", "serialNumber": "example", "status": "active", "condition": "good", "categoryId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "manufacturerId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "siteId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "locationId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "purchasedAt": "2026-04-15T12:00:00Z", "warrantyUntil": "2026-04-15T12:00:00Z", "purchasePrice": 1, "notes": "example", "fieldValues": { "additionalProperty": "example" } }'
Media type application/json
object
name
required
string
assetTag

Auto-generated when omitted

string
serialNumber
string
status
string
default: active
Allowed values: active spare maintenance retired decommissioned lost stolen
condition
string
default: good
categoryId
string format: uuid
manufacturerId
string format: uuid
siteId
string format: uuid
locationId
string format: uuid
purchasedAt
string format: date-time
warrantyUntil
string format: date-time
purchasePrice
number
notes
string
fieldValues

Custom field values keyed by fieldKey (defined per category)

object
key
additional properties
string

Asset created

Media type application/json
object
data
object
id
required
string format: uuid
name
required
string
assetTag
string
nullable
serialNumber
string
nullable
status
required
string
Allowed values: active spare maintenance retired decommissioned lost stolen
condition
string
default: good
categoryId
string format: uuid
nullable
categoryName
string
nullable
categorySlug
string
nullable
manufacturerId
string format: uuid
nullable
manufacturerName
string
nullable
siteId
string format: uuid
nullable
siteName
string
nullable
locationId
string format: uuid
nullable
locationName
string
nullable
purchaseOrderId
string format: uuid
nullable
purchasedAt
string format: date-time
nullable
warrantyUntil
string format: date-time
nullable
purchasePrice

Numeric(10,2) serialised as string

string
nullable
notes
string
nullable
currentAssignee
object
id
string format: uuid
fullName
string
nullable
email
string
nullable
personId
string format: uuid
nullable
userId
string format: uuid
nullable
createdAt
required
string format: date-time
updatedAt
required
string format: date-time
Example
{
"data": {
"status": "active",
"condition": "good"
}
}

Name is required

Media type application/json
object
error
required
string
Example
{
"error": "Not found"
}

Not authenticated

Media type application/json
object
error
required
string
Example
{
"error": "Not found"
}