Skip to main content

Asset

Every asset is referred to by its asset group object id.

Asset Object

If an asset is part of an active asset group, its location will be overwritten by that of the asset group.

FieldTypeDescription
idsnowflakethe asset's id
organisation_idsnowflakethe id of the organisation the asset belongs to
fleet_id?snowflakethe id of the fleet the asset belongs to
typeasset typethe asset's type
statusasset statusthe asset's status
locationlocation objectthe asset's location
positionintegerthe order of the assets
namestringthe asset's name (2-20 characters)
descriptionstringthe asset's description
fieldsobject<snowflake, asset field value>custom field values keyed by field id

Asset Group Object

FieldTypeDescription
idsnowflakethe asset group's id
typeasset group typethe asset group's type
activebooleana flag that determines if the asset group is active
namestringthe asset group's name (2-20 characters)
descriptionstringthe asset group's description
assetsarray<asset group asset>the assets assigned to the asset group

Asset Group Asset Object

FieldTypeDescription
assetasset objectthe asset
positionintegerthe order of the asset in the group

Asset Status Object

FieldTypeDescription
idsnowflakethe asset status's id
organisation_idsnowflakethe id of the organisation the asset status belongs to
activebooleana flag that determines if the asset is active
namestringthe asset's name (2-20 characters)
descriptionstringthe asset's description

Get Asset Status

GET /api/assetstatuses/{id}

Returns the asset status object for the given asset status id. Requires membership in the organisation that owns the asset status.

Error Responses
Status CodeDescription
404Not found (asset status does not exist)
400Bad request (organisation does not exist)
403Forbidden (user is not a member of the organisation)

Update Asset Status

PATCH /api/assetstatuses/{id}

Updates an asset status. Requires membership in the organisation that owns the asset status.

Only the fields provided will be updated.

JSON Params
FieldTypeDescription
name?stringthe asset status's name (2-20 characters)
description?stringthe asset status's description
active?booleanwhether the asset status is active
Error Responses
Status CodeDescription
404Not found (asset status does not exist)
400Bad request (organisation does not exist)
403Forbidden (user is not a member of the organisation)

Create Asset Status

POST /organisations/{organisation.id}/asset-statuses

Creates a new asset status in the organisation. Requires the MANAGE_FLEETS permission.

JSON Params
FieldTypeDescriptionDefault
name?stringthe asset status's name (2-20 characters)new asset status
description?stringthe asset status's description
active?booleanwhether the asset status is active
Error Responses
Status CodeDescription
400Bad request (organisation does not exist)
403Forbidden (user lacks the MANAGE_FLEETS permission)

List Asset Statuses

GET /organisations/{organisation.id}/asset-statuses

Returns an array of asset status objects for the organisation. Requires membership in the organisation.

Error Responses
Status CodeDescription
400Bad request (organisation does not exist)
403Forbidden (user is not a member of the organisation)

Asset Type Object

FieldTypeDescription
idsnowflakethe asset type's id
organisation_idsnowflakethe id of the organisation the asset type belongs to
fleet_id?snowflakethe id of the fleet the asset type belongs to
ephemeralityasset group ephemeralitythe asset type's ephemerality type
namestringthe asset type's name (2-20 characters)
descriptionstringthe asset type's description
fieldsarray<asset type field>associated asset fields

Asset Type Field Object

FieldTypeDescription
type_idsnowflakethe id of the asset type
fieldasset field objectthe asset field definition
enum_valuesarray<asset field enum value>possible enum values for the field, if applicable

Asset Field Enum Value Object

FieldTypeDescription
idsnowflakethe enum value's id
asset_field_idsnowflakethe id of the asset field
valuestringthe enum value

Create Asset Type

POST /organisations/{organisation.id}/asset-types

Creates a new asset type in the organisation. Requires the MANAGE_FLEETS permission.

JSON Params
FieldTypeDescriptionDefault
fleet_id?snowflakethe id of the fleet to assign0
ephemeralityasset group ephemeralitythe asset type's ephemerality type
name?stringthe asset type's name (2-20 characters)new asset type
description?stringthe asset type's description
Error Responses
Status CodeDescription
400Bad request (organisation does not exist)
400Bad request (fleet does not exist)
403Forbidden (user lacks the MANAGE_FLEETS permission)

List Asset Types

GET /organisations/{organisation.id}/asset-types

Returns an array of asset type objects for the organisation. Each asset type includes its associated asset type field definitions. Requires membership in the organisation.

Parameters
FieldTypeDescriptionDefault
ephemerality?asset group ephemeralityfilter asset types by ephemerality type
Error Responses
Status CodeDescription
400Bad request (organisation does not exist)
403Forbidden (user is not a member of the organisation)

Get Asset Type

GET /api/assettype/{id}

Returns the asset type object for the given asset type id, including its associated asset field definitions. Requires membership in the organisation that owns the asset type.

Error Responses
Status CodeDescription
404Not found (asset type does not exist)
400Bad request (organisation does not exist)
403Forbidden (user is not a member of the organisation)

Update Asset Type

PATCH /api/assettype/{id}

Updates an asset type. Requires the MANAGE_FLEETS permission for the organisation.

Only the fields provided will be updated.

JSON Params
FieldTypeDescription
name?stringthe asset type's name (2-20 characters)
description?stringthe asset type's description
fleet_id?snowflakethe id of the fleet to assign
Error Responses
Status CodeDescription
404Not found (asset type does not exist)
400Bad request (organisation does not exist)
400Bad request (fleet does not belong to the organisation)
403Forbidden (user lacks the MANAGE_FLEETS permission)

Add Field to Asset Type

PUT /api/assettype/{id}/asset-fields/{fieldId}

Adds an asset field to an asset type. Requires the MANAGE_FLEETS permission for the organisation. Both the asset type and asset field must belong to the same organisation.

Error Responses
Status CodeDescription
404Not found (asset type or asset field does not exist)
403Forbidden (asset field does not belong to the same organisation)
400Bad request (organisation does not exist)
403Forbidden (user lacks the MANAGE_FLEETS permission)

Remove Field from Asset Type

DELETE /api/assettype/{id}/asset-fields/{fieldId}

Removes an asset field from an asset type. Requires the MANAGE_FLEETS permission for the organisation. Both the asset type and asset field must belong to the same organisation.

Error Responses
Status CodeDescription
404Not found (asset type or asset field does not exist)
403Forbidden (asset field does not belong to the same organisation)
400Bad request (organisation does not exist)
400Bad request (field is not associated with the asset type)
403Forbidden (user lacks the MANAGE_FLEETS permission)

Add Zone to Asset Type

PUT /api/assettype/{id}/asset-zones/{zoneId}

Adds an asset zone to an asset type. Requires the MANAGE_FLEETS permission for the organisation. Both the asset type and asset zone must belong to the same organisation.

Error Responses
Status CodeDescription
404Not found (asset type or asset zone does not exist)
403Forbidden (asset zone does not belong to the same organisation)
400Bad request (organisation does not exist)
403Forbidden (user lacks the MANAGE_FLEETS permission)

Remove Zone from Asset Type

DELETE /api/assettype/{id}/asset-zones/{zoneId}

Removes an asset zone from an asset type. Requires the MANAGE_FLEETS permission for the organisation. Both the asset type and asset zone must belong to the same organisation.

Error Responses
Status CodeDescription
404Not found (asset type or asset zone does not exist)
403Forbidden (asset zone does not belong to the same organisation)
400Bad request (organisation does not exist)
400Bad request (zone is not associated with the asset type)
403Forbidden (user lacks the MANAGE_FLEETS permission)

Asset Zone Object

FieldTypeDescription
idsnowflakethe asset zone's id
organisation_idsnowflakethe id of the organisation the asset zone belongs to
namestringthe asset zone's name (2-20 characters)
codestringthe asset zone's code
descriptionstringthe asset zone's description

Get Asset Zone

GET /api/assetzones/{id}

Returns the asset zone object for the given asset zone id. Requires membership in the organisation that owns the asset zone.

Error Responses
Status CodeDescription
404Not found (asset zone does not exist)
400Bad request (organisation does not exist)
403Forbidden (user is not a member of the organisation)

Update Asset Zone

PATCH /api/assetzones/{id}

Updates an asset zone. Requires the MANAGE_FLEETS permission for the organisation.

Only the fields provided will be updated.

JSON Params
FieldTypeDescription
name?stringthe asset zone's name (2-20 characters)
code?stringthe asset zone's code
description?stringthe asset zone's description
Error Responses
Status CodeDescription
404Not found (asset zone does not exist)
400Bad request (organisation does not exist)
403Forbidden (user lacks the MANAGE_FLEETS permission)

Create Asset Zone

POST /organisations/{organisation.id}/asset-zones

Creates a new asset zone in the organisation. Requires the MANAGE_FLEETS permission.

JSON Params
FieldTypeDescriptionDefault
name?stringthe asset zone's name (2-20 characters)new asset zone
code?stringthe asset zone's code
description?stringthe asset zone's description
Error Responses
Status CodeDescription
400Bad request (organisation does not exist)
403Forbidden (user lacks the MANAGE_FLEETS permission)

List Asset Zones

GET /organisations/{organisation.id}/asset-zones

Returns an array of asset zone objects for the organisation. Requires membership in the organisation.

Parameters
FieldTypeDescriptionDefault
type?snowflakefilter asset zones by asset type id
name?stringfilter asset zones by partial name match (for autocomplete)
Error Responses
Status CodeDescription
400Bad request (organisation does not exist)
403Forbidden (user is not a member of the organisation)

Asset Group Ephemerality

NameValueDescription
single0this is a single asset
temporary1this is a temporary group of assets
permanent2this is a permanent group of assets

Asset Field Object

FieldTypeDescription
idsnowflakethe asset field's id
organisation_idsnowflakethe id of the organisation the asset field belongs to
namestringthe asset field's name (2-20 characters)
descriptionstringthe asset field's description
typeintegerthe field's value type
units?stringthe field's units of measurement

Asset Field Value Object

FieldTypeDescription
valueanythe field's value
units?stringthe field's units of measurement

Get Asset

GET /api/assets/{id}

Returns the asset object for the given asset id. Requires membership in the organisation that owns the asset, or an accepted fleet share from that organisation.

Error Responses
Status CodeDescription
404Not found (asset does not exist)
403Forbidden (user is not a member and has no accepted fleet share)

Update Asset

PATCH /api/assets/{id}

Updates an asset's properties. Requires the MANAGE_FLEETS permission for the organisation.

Only the fields provided will be updated.

JSON Params
FieldTypeDescription
name?stringthe asset's name (2-20 characters)
description?stringthe asset's description
fleet_id?snowflakethe id of the fleet to assign
location_id?snowflakethe id of the location to assign
sub_location_id?snowflakethe id of the sub location to assign
status_id?snowflakethe id of the asset status to assign
type_id?snowflakethe id of the asset type to assign
active?booleanwhether the asset is active
group_id?snowflakethe id of the asset group to assign
subscription_id?snowflakethe id of the subscription to allocate the asset to
fieldsobject<snowflake, asset field value>custom field values keyed by field id
Error Responses
Status CodeDescription
400Bad request (asset or organisation not found)
400Bad request (field does not exist or does not belong to the organisation)
400Bad request (asset group does not belong to the specified fleet)
403Forbidden (user lacks the MANAGE_FLEETS permission)
429Failed to allocate or deallocate asset to a subscription

Update Asset Fields

PATCH /api/assets/{id}/fields

Updates specific custom fields on an asset. Requires the MANAGE_FLEETS permission for the organisation.

Only the fields provided in the request body will be updated. Built-in fields (e.g. Name, FleetId, LocationId) can also be updated via this endpoint.

JSON Params
FieldTypeDescription
{field_name}asset field valuethe field name as key and field value as value; repeat for each field to update
Error Responses
Status CodeDescription
400Bad request (asset or organisation not found)
400Bad request (asset group does not belong to the specified fleet)
403Forbidden (user lacks the MANAGE_FLEETS permission)

Create Asset

POST /organisations/{organisation.id}/assets

Creates a new asset in the organisation. Requires the MANAGE_FLEETS permission. The asset is created with an automatically assigned number based on the asset type's prefix, or a custom prefix if provided.

JSON Params
FieldTypeDescriptionDefault
type_idsnowflakethe id of the asset type
name?stringthe asset's name (2-20 characters)new asset
description?stringthe asset's description
fleet_id?snowflakethe id of the fleet to assign
location_id?snowflakethe id of the location to assign
status_id?snowflakethe id of the asset status to assign
group_id?snowflakethe id of the asset group to add the asset to
prefix_id?snowflakethe id of the prefix to use for numbering
number?integerthe number to assign (overrides automatic numbering)
subscription_id?snowflakethe id of the subscription to allocate the asset to
active?booleanwhether the asset is active
fieldsobject<snowflake, asset field value>custom field values keyed by field id, must match fields defined on the asset type
Notes
  • If prefix_id is provided, it must match the asset type's prefix.
  • If group_id is provided, the asset group must belong to the same organisation and fleet (if fleet_id is specified).
  • All fields provided in the fields object must correspond to fields defined on the asset type.
  • The asset number is automatically assigned if not explicitly provided.
Error Responses
Status CodeDescription
400Bad request (organisation does not exist)
400Bad request (asset type not provided)
400Bad request (bad status)
400Bad request (bad location)
400Bad request (field does not exist or does not belong to the organisation)
400Bad request (asset group does not belong to the specified fleet)
400Bad request (prefix does not match asset type)
400Bad request (bad prefix provided)
403Forbidden (user lacks the MANAGE_FLEETS permission)
429Failed to allocate asset to a subscription

List Assets

GET /organisations/{organisation.id}/assets

Returns an array of asset objects for the organisation. Requires membership in the organisation, or an accepted fleet share from the organisation. Assets belonging to fleets shared with the organisation are also included.

All filters for this method are optional.

Filters
FieldTypeDescriptionDefault
typesnowflakefilter assets by the asset type
fleetsnowflakefilter assets by fleet
statussnowflakefilter assets by the asset status
locationsnowflakefilter assets by the location
asset_groupsnowflakefilter assets belonging to the asset group
namestringfilter assets by name prefix
Notes
  • The response is limited to 50 assets by default. Use OData pagination parameters ($skip, $top) to control the result set size.
  • The name filter performs a prefix match on the normalised asset name.
Error Responses
Status CodeDescription
400Bad request (organisation does not exist)
403Forbidden (user is not a member and has no accepted fleet share)

List Asset Groups

GET /organisations/{organisation.id}/asset-groups

Returns an array of asset group objects for the organisation. Requires membership in the organisation. Asset groups belonging to fleets shared with the organisation are also included.

All filters for this method are optional.

Filters
FieldTypeDescription
ephemeralityasset group ephemeralityfilter asset groups by ephemerality type
fleetsnowflakefilter asset groups by fleet
typesnowflakefilter asset groups by asset type id
statussnowflakefilter asset groups by asset status id
locationsnowflakefilter asset groups by location
activebooleanfilter asset groups by active status
namestringfilter asset groups by name prefix
Notes
  • The response is limited to 50 asset groups by default. Use OData pagination parameters ($skip, $top) to control the result set size.
  • The name filter performs a prefix match on the normalised asset group name.
  • This endpoint also supports OData filter syntax via the $filter parameter for more complex queries.
  • Each asset group includes open_work_item_count and closed_work_item_count fields.
Error Responses
Status CodeDescription
400Bad request (organisation does not exist)
403Forbidden (user is not a member of the organisation)

Get Asset Group

GET /api/assetgroups/{id}

Returns the asset group object for the given asset group id. Requires membership in the organisation that owns the asset group, or an accepted fleet share from that organisation.

Error Responses
Status CodeDescription
404Not found (asset group does not exist)
403Forbidden (user is not a member and has no accepted fleet share)

Update Asset Group

PATCH /api/assetgroups/{id}

Updates an asset group's properties. Requires the MANAGE_FLEETS permission for the organisation. Single-type asset groups cannot be updated through this endpoint; use Update Asset instead.

Only the fields provided will be updated.

JSON Params
FieldTypeDescription
name?stringthe asset group's name (2-20 characters)
description?stringthe asset group's description
fleet_id?snowflakethe id of the fleet to assign
location_id?snowflakethe id of the location to assign
sub_location_id?snowflakethe id of the sub location to assign
status_id?snowflakethe id of the asset status to assign
type_id?snowflakethe id of the asset type to assign
active?booleanwhether the asset group is active
fieldsobject<snowflake, asset field value>custom field values keyed by field id
Error Responses
Status CodeDescription
404Not found (asset group does not exist)
400Bad request (asset group is a single-type group)
400Bad request (field does not exist or does not belong to the organisation)
403Forbidden (user lacks the MANAGE_FLEETS permission)

Update Asset Group Fields

PATCH /api/assetgroups/{id}/fields

Updates specific fields on an asset group. Requires the MANAGE_FLEETS permission for the organisation. Single-type asset groups cannot be updated through this endpoint; use Update Asset Fields instead.

Only the fields provided in the request body will be updated. Built-in fields (e.g. Name, FleetId, LocationId) can also be updated via this endpoint.

JSON Params
FieldTypeDescription
{field_name}asset field valuethe field name as key and field value as value; repeat for each field to update
Error Responses
Status CodeDescription
404Not found (asset group does not exist)
400Bad request (asset group is a single-type group)
403Forbidden (user lacks the MANAGE_FLEETS permission)

Add Asset to Asset Group

PUT /api/assetgroups/{id}/assets/{assetId}

Adds an asset to a temporary asset group. Requires membership in the organisation that owns the asset group. The asset must belong to the same fleet as the asset group (if a fleet is assigned).

Error Responses
Status CodeDescription
404Not found (asset group or asset does not exist)
400Bad request (asset group is not a temporary group)
400Bad request (asset does not belong to the same fleet)
403Forbidden (user is not a member of the organisation)

Reorder Asset in Asset Group

PATCH /api/assetgroups/{id}/assets/{assetId}

Reorders an asset within an asset group. Requires membership in the organisation that owns the asset group. Single-type asset groups cannot be reordered.

Parameters
FieldTypeDescription
orderintegerthe new order position for the asset (0 to asset count - 1)
Error Responses
Status CodeDescription
404Not found (asset group or asset does not exist)
400Bad request (asset group is a single-type group)
400Bad request (asset is not in the asset group)
400Bad request (order is out of range)
403Forbidden (user is not a member of the organisation)

Remove Asset from Asset Group

DELETE /api/assetgroups/{id}/assets/{assetId}

Removes an asset from a temporary asset group. Requires membership in the organisation that owns the asset group.

Error Responses
Status CodeDescription
404Not found (asset group or asset does not exist)
400Bad request (asset group is not a temporary group)
400Bad request (asset is not in the asset group)
403Forbidden (user is not a member of the organisation)

Asset Log Object

FieldTypeDescription
idsnowflakethe asset log's id
organisation_idsnowflakethe id of the organisation the asset log belongs to
asset_group_idsnowflakethe id of the asset group the log belongs to
typeasset log typethe type of the log
logstringthe log text
log_hashstringSHA-256 hash of the log text
embed?stringoptional embedded content
duration?integeroptional duration in seconds
latitude?doubleoptional latitude coordinate (must be provided with longitude)
longitude?doubleoptional longitude coordinate (must be provided with latitude)
logged_atISO8601 timestampwhen the log entry was recorded
attachment?asset log attachmentoptional attachment associated with the log
created_byuser objectthe user who created the log
updated_byuser objectthe user who last updated the log
created_atISO8601 timestampwhen the log was created
updated_atISO8601 timestampwhen the log was last updated

Asset Log Type

ValueDescription
commenta comment or note on the asset group

Asset Log Attachment Object

FieldTypeDescription
idsnowflakethe attachment's id
organisation_idsnowflakethe id of the organisation the attachment belongs to
asset_log_idsnowflakethe id of the asset log the attachment belongs to
file_namestringthe original file name
file_hashstringhash of the file content
content_typestringthe MIME type of the file
lengthintegerthe file size in bytes
width?integerthe image width in pixels (if applicable)
height?integerthe image height in pixels (if applicable)
created_atISO8601 timestampwhen the attachment was created
created_byuser objectthe user who created the attachment

Create Asset Log

POST /api/assetgroups/{id}/logs

Creates a new asset log entry for the asset group. Requires membership in the organisation that owns the asset group. Supports both application/json and multipart/form-data content types. A nonce should be provided to prevent duplicate submissions.

JSON Params
FieldTypeDescription
logstringthe log text
nonce?snowflakeoptional nonce to prevent duplicate submissions
embed?stringoptional embedded content
duration?integeroptional duration in seconds
latitude?doubleoptional latitude coordinate (must be provided with longitude)
longitude?doubleoptional longitude coordinate (must be provided with latitude)
logged_at?ISO8601 timestampoptional timestamp for when the log entry was recorded
attachment?fileoptional file attachment (only in multipart/form-data)
Notes
  • If logged_at is not provided, the current server time is used.
  • If latitude and longitude are provided, both must be present.
  • The attachment field is only available when using multipart/form-data content type.
  • A replay of a request with the same nonce from the same user returns 304 Not Modified.
Error Responses
Status CodeDescription
304Not modified (replay of a previous request with the same nonce)
404Not found (asset group does not exist)
400Bad request (latitude and longitude must be provided together)
403Forbidden (user is not a member of the organisation)

List Asset Logs

GET /api/assetgroups/{id}/logs

Returns an array of asset log objects for the asset group. Requires membership in the organisation that owns the asset group.

All filters for this method are optional.

Filters
FieldTypeDescription
logged_atsnowflakefilter logs by logged at timestamp
typeasset log typefilter logs by type
Notes
  • The response is limited to 50 logs by default. Use OData pagination parameters ($skip, $top) to control the result set size.
  • Logs are returned in descending order by creation time.
Error Responses
Status CodeDescription
404Not found (asset group does not exist)
403Forbidden (user is not a member of the organisation)

Get Asset Log

GET /api/assetlogs/{id}

Returns the asset log object for the given asset log id. Requires membership in the organisation that owns the asset log.

Error Responses
Status CodeDescription
404Not found (asset log or asset group does not exist)
400Bad request (organisation does not exist)
403Forbidden (user is not a member of the organisation)

Get Asset Log Attachment

GET /api/assetlogs/{id}/attachments/{fileHash}

Returns the file attachment for the given asset log id and file hash. Returns the file stream with the appropriate MIME type. For image attachments (image/jpeg or image/png), an optional size query parameter can be provided to resize the image.

Parameters
FieldTypeDescription
size?integerthe desired image size in pixels for resizing (images only)
Error Responses
Status CodeDescription
404Not found (asset log or attachment does not exist)

Update Asset Log

PATCH /api/assetlogs/{id}

Updates an asset log entry. Only the log creator can update their own log entry. Requires membership in the organisation that owns the asset log.

JSON Params
FieldTypeDescription
log?stringthe updated log text
duration?integerthe updated duration in seconds
Error Responses
Status CodeDescription
404Not found (asset log or asset group does not exist)
400Bad request (organisation does not exist)
403Forbidden (user is not the log creator or not a member of the organisation)

Delete Asset Log

DELETE /api/assetlogs/{id}

Deletes an asset log entry. Requires the MANAGE_FLEETS permission for the organisation.

Error Responses
Status CodeDescription
404Not found (asset log or asset group does not exist)
403Forbidden (user lacks the MANAGE_FLEETS permission)

Equipment Object

Equipment is a specialized asset with an asset group ephemerality of equipment. Equipment inherits all fields from the asset object.

FieldTypeDescription
idsnowflakethe equipment's id
organisation_idsnowflakethe id of the organisation the equipment belongs to
fleet_id?snowflakethe id of the fleet the equipment belongs to
typeasset typethe equipment's type
statusasset statusthe equipment's status
locationlocation objectthe equipment's location
positionintegerthe order of the equipment
namestringthe equipment's name (2-20 characters)
descriptionstringthe equipment's description
fieldsobject<snowflake, asset field value>custom field values keyed by field id

Get Equipment

GET /api/equipment/{id}

Returns the equipment object for the given equipment id. Requires membership in the organisation that owns the equipment.

Error Responses
Status CodeDescription
404Not found (equipment does not exist)
400Bad request (organisation does not exist)
403Forbidden (user is not a member of the organisation)

Update Equipment

PATCH /api/equipment/{id}

Updates an equipment's properties. Requires the MANAGE_EQUIPMENT permission for the organisation.

Only the fields provided will be updated.

JSON Params
FieldTypeDescription
name?stringthe equipment's name (2-20 characters)
description?stringthe equipment's description
fleet_id?snowflakethe id of the fleet to assign
location_id?snowflakethe id of the location to assign
status_id?snowflakethe id of the asset status to assign
type_id?snowflakethe id of the asset type to assign
active?booleanwhether the equipment is active
Error Responses
Status CodeDescription
404Not found (equipment does not exist)
400Bad request (organisation does not exist)
403Forbidden (user lacks the MANAGE_EQUIPMENT permission)

Update Equipment Fields

PATCH /api/equipment/{id}/fields

Updates specific custom fields on equipment. Requires the MANAGE_EQUIPMENT permission for the organisation.

Only the fields provided in the request body will be updated.

JSON Params
FieldTypeDescription
{field_id}asset field valuethe field id as key and field value as value; repeat for each field to update
Error Responses
Status CodeDescription
404Not found (equipment does not exist)
400Bad request (organisation does not exist)
403Forbidden (user lacks the MANAGE_EQUIPMENT permission)

Create Equipment

POST /organisations/{organisation.id}/equipment

Creates a new equipment in the organisation. Requires the MANAGE_EQUIPMENT permission. The equipment is created with an automatically assigned number based on the asset type's prefix, or a custom prefix if provided.

JSON Params
FieldTypeDescriptionDefault
type_idsnowflakethe id of the asset type (must be an equipment type)
name?stringthe equipment's name (2-20 characters)new equipment
description?stringthe equipment's description
status_id?snowflakethe id of the asset status to assign
location_id?snowflakethe id of the location to assign
prefix_id?snowflakethe id of the prefix to use for numbering
number?integerthe number to assign (overrides automatic numbering)
active?booleanwhether the equipment is active
fieldsobject<snowflake, asset field value>custom field values keyed by field id, must match fields defined on the asset type
Notes
  • If prefix_id is provided, it must match the asset type's prefix.
  • All fields provided in the fields object must correspond to fields defined on the asset type.
  • The equipment number is automatically assigned if not explicitly provided.
Error Responses
Status CodeDescription
400Bad request (organisation does not exist)
400Bad request (asset type not provided)
400Bad request (bad status)
400Bad request (bad location)
400Bad request (field does not exist or does not belong to the organisation)
400Bad request (prefix does not match asset type)
400Bad request (bad prefix provided)
403Forbidden (user lacks the MANAGE_EQUIPMENT permission)

List Equipment

GET /organisations/{organisation.id}/equipment

Returns an array of equipment objects for the organisation. Requires membership in the organisation. Equipment belonging to fleets shared with the organisation are also included.

All filters for this method are optional.

Filters
FieldTypeDescription
typesnowflakefilter equipment by the asset type
fleetsnowflakefilter equipment by fleet
statussnowflakefilter equipment by the asset status
locationsnowflakefilter equipment by the location
asset_groupsnowflakefilter equipment belonging to the asset group
namestringfilter equipment by name prefix
Notes
  • The response is limited to 50 equipment items by default. Use OData pagination parameters ($skip, $top) to control the result set size.
  • The name filter performs a prefix match on the normalised equipment name.
  • This endpoint also supports OData filter syntax via the $filter parameter for more complex queries.
Error Responses
Status CodeDescription
400Bad request (organisation does not exist)
403Forbidden (user is not a member of the organisation)

Create Asset Group

POST /organisations/{organisation.id}/asset-groups

Creates a new asset group in the organisation. Requires the MANAGE_FLEETS permission. Asset groups can be permanent (typed) or temporary (consists of multiple assets).

JSON Params
FieldTypeDescriptionDefault
ephemeralityasset group ephemeralitythe type of asset group (must be permanent or temporary)
type_id?snowflakethe id of the asset type (required for permanent groups)
name?stringthe asset group's name (2-20 characters)new asset group
description?stringthe asset group's description
fleet_id?snowflakethe id of the fleet to assign
status_id?snowflakethe id of the asset status to assign
location_id?snowflakethe id of the location to assign
prefix_id?snowflakethe id of the prefix to use for numbering
number?integerthe number to assign (overrides automatic numbering)
active?booleanwhether the asset group is active
fieldsobject<snowflake, asset field value>custom field values keyed by field id
consist_asset_group_ids?array<snowflake>asset group ids to combine into a temporary consist (required for temporary groups)
Notes
  • The ephemerality field must be permanent (2) or temporary (1). Values single (0) and equipment are not valid for asset groups.
  • For permanent asset groups, type_id is required and must belong to the organisation.
  • For temporary asset groups, consist_asset_group_ids is required and must contain at least one asset group id.
  • If prefix_id is provided, it must match the asset type's prefix (if type_id is specified).
  • All fields provided in the fields object must correspond to fields defined on the organisation.
  • The asset group number is automatically assigned if not explicitly provided.
Error Responses
Status CodeDescription
400Bad request (organisation does not exist)
400Bad request (ephemerality must be permanent or temporary)
400Bad request (asset type not provided)
400Bad request (bad fleet)
400Bad request (bad status)
400Bad request (bad location)
400Bad request (field does not exist for asset group type)
400Bad request (prefix does not match asset type)
400Bad request (bad prefix provided)
403Forbidden (user lacks the MANAGE_FLEETS permission)

Create Asset Field

POST /organisations/{organisation.id}/asset-fields

Creates a new asset field in the organisation. Requires the MANAGE_FLEETS permission. Field names must be unique within the organisation, cannot be a reserved name, cannot start with the $ prefix, and must not be a number.

JSON Params
FieldTypeDescriptionDefault
name?stringthe asset field's name (must be unique, not reserved, not starting with $, not a number)new asset field
description?stringthe asset field's description
typeintegerthe field's value type
requiredbooleanwhether the field is required
is_resultbooleanwhether the field represents a result value
units?stringthe field's units of measurement
multi_linebooleanwhether the field accepts multi-line text input
max_lengthinteger?maximum character length for text fields
default_valueany?the field's default value
valuesarray<asset field enum value>enum values to create for the field (required if field type is enum)
Error Responses
Status CodeDescription
400Bad request (organisation does not exist)
400Bad request (field names must be unique)
400Bad request (field names cannot be a reserved name or start with $ and must not be a number)
403Forbidden (user lacks the MANAGE_FLEETS permission)

List Asset Fields

GET /organisations/{organisation.id}/asset-fields

Returns an array of asset field objects for the organisation. Requires membership in the organisation.

All filters for this method are optional.

Filters
FieldTypeDescriptionDefault
typesnowflakefilter asset fields by asset type id
namestringfilter asset fields by name prefix (for autocomplete)
Error Responses
Status CodeDescription
400Bad request (organisation does not exist)
403Forbidden (user is not a member of the organisation)

Asset Field Object

Asset fields define custom properties that can be assigned to assets. They support various data types and may include enum values for restricted selections.

FieldTypeDescription
idsnowflakethe asset field's id
organisation_idsnowflakethe id of the organisation the asset field belongs to
namestringthe asset field's name (cannot be a reserved name or start with $, and must not be a number)
descriptionstringthe asset field's description
typeintegerthe field's value type
requiredbooleanwhether the field is required
is_resultbooleanwhether the field represents a result value
units?stringthe field's units of measurement
multi_linebooleanwhether the field accepts multi-line text input
max_lengthinteger?maximum character length for text fields
default_valueany?the field's default value

Asset Field Enum Value Object

Enum values define the allowed values for asset fields with an enum type.

FieldTypeDescription
idsnowflakethe enum value's id
asset_field_idsnowflakethe id of the asset field this value belongs to
valuestringthe enum value's text
updated_byuser objectthe user who last updated this enum value
updated_atISO8601 timestampwhen the enum value was last updated

Get Asset Field

GET /api/assetfield/{id}

Returns the asset field object for the given asset field id, including its enum values. Requires membership in the organisation that owns the asset field.

Error Responses
Status CodeDescription
404Not found (asset field does not exist)
400Bad request (organisation does not exist)
403Forbidden (user is not a member of the organisation)

Get Asset Field Enum Value

GET /api/assetfield/{id}/values/{valueId}

Returns the asset field enum value for the given asset field id and enum value id. Requires membership in the organisation that owns the asset field.

Error Responses
Status CodeDescription
404Not found (asset field does not exist)
400Bad request (organisation does not exist)
400Bad request (enum value does not exist)
403Forbidden (user is not a member of the organisation)

Update Asset Field

PATCH /api/assetfield/{id}

Updates an asset field and its enum values. Requires the MANAGE_FLEETS permission for the organisation. Field names must be unique within the organisation.

JSON Params
FieldTypeDescription
namestringthe asset field's name (must be unique, not reserved, not starting with $, not a number)
description?stringthe asset field's description
typeintegerthe field's value type
requiredbooleanwhether the field is required
is_resultbooleanwhether the field represents a result value
units?stringthe field's units of measurement
multi_linebooleanwhether the field accepts multi-line text input
max_lengthinteger?maximum character length for text fields
default_valueany?the field's default value
valuesarray<asset field enum value>enum values to create, update, or remove (set removed to true to delete)
Error Responses
Status CodeDescription
404Not found (asset field does not exist)
400Bad request (organisation does not exist)
400Bad request (field names must be unique)
400Bad request (field names cannot be a reserved name or start with $ and must not be a number)
403Forbidden (user lacks the MANAGE_FLEETS permission)

Add Asset Field Enum Value

POST /api/assetfield/{id}/values

Creates a new asset field enum value for the given asset field. Requires the MANAGE_FLEETS permission for the organisation.

JSON Params
FieldTypeDescription
valuestringthe enum value's text
Error Responses
Status CodeDescription
404Not found (asset field does not exist)
400Bad request (organisation does not exist)
403Forbidden (user lacks the MANAGE_FLEETS permission)