# Assets

## Query Devices

 - [GET /v1/assets/devices](https://docs.synqly.com/api-reference/connectors/assets/assets_query_devices.md): Query devices from an asset inventory system

Operation ID: assets_query_devices

## Create Device

 - [POST /v1/assets/devices](https://docs.synqly.com/api-reference/connectors/assets/assets_create_asset.md): Creates a Device object in the token-linked Integration.

Operation ID: assets_create_asset

## Create Devices

 - [POST /v1/assets/devices/bulk](https://docs.synqly.com/api-reference/connectors/assets/assets_create_devices.md): Bulk create devices in an device inventory system

Operation ID: assets_create_devices

## Get Labels

 - [GET /v1/assets/labels](https://docs.synqly.com/api-reference/connectors/assets/assets_get_labels.md): Get labels from an asset inventory system

Operation ID: assets_get_labels

## Query Software Inventory

 - [GET /v1/assets/software](https://docs.synqly.com/api-reference/connectors/assets/assets_query_software.md): Query software inventory records from an asset management system

Operation ID: assets_query_software

## Create Software Inventory

 - [POST /v1/assets/software](https://docs.synqly.com/api-reference/connectors/assets/assets_create_software.md): Creates a software inventory record in the token-linked Integration.

Tenable Cloud: This is asset import enrichment, not full software-inventory CRUD. Each
request pushes one CPE onto an asset via Tenable POST /import/assets (installed_software
CPE 2.2 strings). The call blocks on the same asynchronous Tenable import job poll before
returning (typically seconds, up to the request deadline; may return gateway timeout if the
job does not complete in time). query_software reads from asset export and may lag briefly
after a successful create.

When to use create: First push or enrichment when you may only have hostname, IP, MAC, or
cloud instance identifiers. Use update when you already have device.uid and want to
refresh software on a known asset.

Provide package.cpe_name when possible; Synqly can synthesize
cpe:/a:vendor:name:version from package.name, package.vendor_name, and
package.version, but weak CPEs may not correlate in Tenable. device.uid (Tenable asset
UUID) is optional; hostname, IP, MAC, or cloud instance identifiers also work for asset
matching. Only one package CPE is sent per request. Software is merged additively per
source_name — entries from other sources are unaffected. This does not replace full
inventory, delete packages, or trigger vulnerability scans. Imported software expires if
not re-imported within Tenable's retention window (approximately 30 days).

Operation ID: assets_create_software

## Update Software Inventory

 - [PUT /v1/assets/software/{deviceUid}](https://docs.synqly.com/api-reference/connectors/assets/assets_update_software.md): Updates a software inventory record on a known device in the token-linked Integration.

Tenable Cloud: This re-imports software on an existing asset; it is not in-place PATCH
or delete. Each request uses the same POST /import/assets path as create and blocks on
the same asynchronous Tenable import job poll before returning (typically seconds, up to
the request deadline; may return gateway timeout if the job does not complete in time).
query_software may lag briefly after a successful update. Bulk refresh should batch CPEs
via create/import flows rather than serial single-row updates.

When to use update: You have device.uid (path deviceUid) and want to refresh or
re-affirm a known CPE under a stable source_name. Use create for first push when
matching by hostname, IP, MAC, or cloud identifiers.

deviceUid must be an existing Tenable asset UUID (device.uid in OCSF). Only one package
CPE is sent per request. Changing version means supplying a new CPE string; the previous CPE
is not removed automatically and ages out per Tenable rules. Does not support removal or
in-place CPE replacement. Software from other source_name values is unaffected.

Operation ID: assets_update_software

## Bulk Update Device Properties

 - [POST /v1/assets/devices/bulk-properties](https://docs.synqly.com/api-reference/connectors/assets/assets_update_device_properties.md): Set custom properties on devices by MAC address (Armis V3 bulk). Creates custom properties if needed.

Operation ID: assets_update_device_properties

## Query Alerts

 - [GET /v1/assets/alerts](https://docs.synqly.com/api-reference/connectors/assets/assets_query_alerts.md): Query alerts from an asset inventory system

Operation ID: assets_query_alerts

## Query Vulnerabilities

 - [GET /v1/assets/vulnerabilities](https://docs.synqly.com/api-reference/connectors/assets/assets_query_vulnerabilities.md): Query vulnerabilities from an asset inventory system

Operation ID: assets_query_vulnerabilities

## Query Utilization

 - [GET /v1/assets/utilization](https://docs.synqly.com/api-reference/connectors/assets/assets_query_utilization.md): Query utilization from an asset inventory system

Operation ID: assets_query_utilization

