---
title: Assets API
description: List, create, update and delete Assets and bind Variables to them via the ControlCom Connect REST API.
source: https://documentation.controlcomtech.com/api-reference/assets
---

# Assets

An Asset represents a piece of physical equipment such as a generator, a utility feed, a feeder or a transfer switch. Assets group the Variables that describe the equipment and drive Asset-based features like reports.

> **Workflow Stage: Integrate**

## List Assets

```
GET https://api.controlcomtech.com/primary/v1/<organizationId>/assets
```

Requires the `ReadAssets` permission. Multi-value filters repeat the parameter with brackets.

* `search` (string): Case-insensitive filter on the Asset name.
* `types[]` (string\[]): Limit to classifications: `GENERIC`, `ELECTRICAL_GENERATOR`, `ELECTRICAL_UTILITY`, `ELECTRICAL_FEEDER`, `ELECTRICAL_ATS`.
* `locationIds[]` (string\[]): Limit to Assets at these Locations.
* `skip` (integer): Records to skip. See [Pagination](https://documentation.controlcomtech.com/api-reference#pagination).
* `take` (integer): Records to return per page.

**cURL**

```bash
curl 'https://api.controlcomtech.com/primary/v1/<organizationId>/assets?types[]=ELECTRICAL_GENERATOR&take=25' \
--header 'Authorization: Basic <Base64 encoded key ID and secret>'
```

**Response**

```json
{
  "count": 6,
  "items": [
    {
      "id": "clxa3...",
      "name": "Generator 1",
      "classificationType": "ELECTRICAL_GENERATOR",
      "locationId": "clxq2...",
      "variables": [ ... ]
    }
  ]
}
```

## Retrieve an Asset

```
GET https://api.controlcomtech.com/primary/v1/<organizationId>/assets/<assetId>
```

Requires the `ReadAssets` permission. Returns the Asset with its bound Variables.

## Create an Asset

```
POST https://api.controlcomtech.com/primary/v1/<organizationId>/assets
```

Requires the `CreateAsset` permission.

* `name` (string): Required, 2 to 100 characters.
* `description` (string | null): Optional, up to 500 characters.
* `classificationType` (string): Optional. `GENERIC`, `ELECTRICAL_GENERATOR`, `ELECTRICAL_UTILITY`, `ELECTRICAL_FEEDER` or `ELECTRICAL_ATS`.
* `classificationDetails` (object | null): Optional classification-specific settings. A generator, for example, can carry its make, model, rated values and the Variables that track its running hours.
* `locationId` (string | null): Optional. The Location this Asset belongs to.
* `dashboardId` (string | null): Optional. A Dashboard associated with this Asset.
* `parentId` (string | null): Optional. A parent Asset, for building equipment hierarchies.

## Update an Asset

```
PATCH https://api.controlcomtech.com/primary/v1/<organizationId>/assets/<assetId>
```

Requires the `UpdateAsset` permission. Accepts the same fields as create, all optional.

## Delete an Asset

```
DELETE https://api.controlcomtech.com/primary/v1/<organizationId>/assets/<assetId>
```

Requires the `DeleteAsset` permission.

## Bind Variables to an Asset

```
POST https://api.controlcomtech.com/primary/v1/<organizationId>/assets/<assetId>/bindings
```

Requires the `UpdateAsset` permission. Connects a Device Variable to the Asset or disconnects it again.

* `variableId` (string): Required. The Device Variable to connect or disconnect.
* `action` (string): Required. `CONNECT` or `DISCONNECT`.

To bind several Variables in one call, `POST` to `/assets/<assetId>/bindings/batch` with `variableIds` (an array) and the same `action`. Both endpoints return the updated Asset with its Variables.
