🎉 VSEC Test v3.1.3 is now live! Release Notes ↗
Read / Write API

Read / Write API

The External Asset Manager API lets you read and write assets, types, and properties programmatically.

Base URL: https://<your-vsec-domain>/api/ext/v1/asset-manager

Authentication

All requests require an X-API-Key header:

X-API-Key: <your_provider_token>

Generate a token in Asset Manager → Settings → Providers. See Enrichment → Custom Enrichment Providers.


Assets

GET /asset

Retrieve all assets with their property values and parent-child links.

Response 200:

{
  "data": [
    {
      "id": 1,
      "assetName": "Compact A 2026",
      "type": "Vehicle",
      "createdAt": "2024-08-26T15:45:35.000Z",
      "updatedAt": "2024-08-26T15:45:35.000Z",
      "properties": [
        {
          "name": "Vehicle Line",
          "value": "Compact A",
          "dataType": 3
        },
        {
          "name": "Interfaces",
          "value": ["Wi-Fi", "Bluetooth", "CAN"],
          "dataType": 2
        }
      ],
      "links": [2, 3]
    }
  ]
}
  • links — array of asset IDs that are children of this asset

PUT /asset

Create a new asset.

Request body:

{
  "name": "Telematics Control Unit",
  "typeId": 3,
  "properties": [
    { "propertyId": 3, "value": ["CAN", "Cellular"] },
    { "propertyId": 1, "value": "Jane Smith" }
  ],
  "team": 7
}
FieldRequiredDescription
nameNoDisplay name for the asset
typeIdYesID of the asset type (from GET /type)
propertiesYesArray of { propertyId, value } pairs
teamNoTeam ID to scope this asset to

Use GET /type to find valid type IDs, and GET /property to find property IDs.

Response 201: Asset created successfully.

Response 400: Invalid type, property ID, or missing required fields.


PATCH /asset

Update an existing asset’s name and/or property values.

Request body:

{
  "assetId": 2,
  "name": "Telematics ECU (Updated)",
  "properties": [
    { "propertyValueId": 14, "value": "John Doe" }
  ]
}
FieldRequiredDescription
assetIdYesID of the asset to update
nameYesNew display name
propertiesYesArray of { propertyValueId, value } — use the propertyValueId from the existing property value, not the property definition ID

Response 200: Asset updated successfully.

Response 404: Asset not found.


Properties

GET /property

Retrieve all property definitions.

Response 200:

[
  {
    "id": 1,
    "name": "Product Owner",
    "dataType": 3,
    "metadata": null
  },
  {
    "id": 3,
    "name": "Interfaces",
    "dataType": 2,
    "metadata": [
      { "id": 1, "value": "Wi-Fi" },
      { "id": 2, "value": "Bluetooth" },
      { "id": 3, "value": "Cellular" },
      { "id": 4, "value": "CAN" }
    ]
  }
]

dataType values:

ValueType
2Multi-select
3Text
9Tags / Keywords

For multi-select properties, valid options are listed in metadata.


Types

GET /type

Retrieve all asset types with their associated properties.

Response 200:

[
  {
    "id": 1,
    "name": "Vehicle",
    "description": null,
    "icon": "car",
    "parentId": null,
    "children": [4, 5],
    "properties": [
      {
        "id": 1,
        "name": "Product Owner",
        "dataType": "3",
        "metadata": null
      }
    ]
  }
]

Use the id from this response as typeId when creating assets.

Last updated on