Skip to Content
Welcome to the Novantra documentation.

Assets

The Assets endpoints expose the governed asset inventory: each asset, its custody, and its readiness state.

This is a read-only surface in v1. Creating, updating, and decommissioning assets happens in the Novantra UI (see the Assets user guide).

For shared conventions (auth, errors, pagination, ID format), read v1 conventions first.

Scope required

EndpointScope
All read endpoints belowassets:read

Endpoints

List assets

GET /api/v1/assets Authorization: Bearer <access-token>

Query parameters:

ParameterTypeNotes
statusstringOptional. Filter by status.
assetKindstringOptional. Filter by kind.

Response:

{ "assets": [ { "id": "asset_01HXY...", "assetKey": "torque-wrench-038", "assetKind": "calibrated-tool", "displayName": "Torque wrench, 50–200 Nm, serial 038", "description": "Calibrated torque wrench, primary toolbox A.", "sourceKind": "cmms-import", "status": "active", "custodianResponsibilityId": "ra_01HXY...", "commissionedAt": "2024-03-15T00:00:00.000Z", "decommissionedAt": null, "createdAt": "2024-03-15T08:21:43.000Z", "updatedAt": "2026-05-25T14:08:33.000Z" } ], "pagination": {} }

Get one asset

GET /api/v1/assets/:assetId Authorization: Bearer <access-token>

Returns the single-asset shape from the list above.

List custody assignments

GET /api/v1/assets/custody-assignments Authorization: Bearer <access-token>

Query parameters:

ParameterTypeNotes
assetIdstringOptional. Filter to assignments for one asset.
statusstringOptional.

Response:

{ "custodyAssignments": [ { "id": "ascust_01HXY...", "assetId": "asset_01HXY...", "assignmentKey": "torque-wrench-038-tech-jdoe-2026-04", "assignmentKind": "primary", "subjectModuleKey": "membership", "subjectResourceType": "member-user", "subjectResourceId": "user_01HXY...", "status": "active", "startedAt": "2026-04-01T00:00:00.000Z", "endedAt": null, "createdAt": "2026-04-01T08:21:43.000Z", "updatedAt": "2026-04-01T08:21:43.000Z" } ], "pagination": {} }

List readiness assessments

GET /api/v1/assets/readiness-assessments Authorization: Bearer <access-token>

Query parameters:

ParameterTypeNotes
assetIdstringOptional. Filter to assessments for one asset.
readinessStatestringOptional. Filter by state.

Response:

{ "readinessAssessments": [ { "id": "asrdy_01HXY...", "assetId": "asset_01HXY...", "readinessAssessmentKey": "torque-wrench-038-cal-2026", "assessmentKind": "calibration", "readinessState": "ready", "status": "completed", "performedAt": "2026-03-12T10:00:00.000Z", "performedByResponsibilityId": "ra_01HXY...", "createdAt": "2026-03-12T10:30:00.000Z", "updatedAt": "2026-03-12T10:30:00.000Z" } ], "pagination": {} }

Field notes

assetKind

Free text. The product does not impose a fixed list; your organization picks values that match your domain (e.g., calibrated-tool, medical-device, it-system, vehicle, cloud-service).

sourceKind

Where the asset record originated. Common values: manual, cmms-import, procurement-import, discovery-scan, external-system. Free text.

custodianResponsibilityId

Points at the responsibility assignment naming the custodian. The responsibility record itself is not a v1 endpoint.

Snapshots

In the in-product UI, assets carry assetSnapshot, classificationSnapshot, and sourceRefSnapshot containing rich structured detail. Custody assignments carry assignment snapshots; readiness assessments carry posture and evidence snapshots. In v1 these structured snapshots are not exposed in the API surface; reads return the durable identifying fields.

Real-case integration: feeding CMMS asset updates into the governance register

An aviation maintenance organization runs a CMMS as its operational source of truth for tools, equipment, and inventory. The CMMS owns runtime updates: new assets, calibration completions, custody handoffs. The compliance team wants the governance register kept in sync without manual rekeying.

Today, the synchronization is one-way (CMMS → Novantra) and runs as a nightly batch in the in-product UI’s import path. v1’s read-only API supports the read side of validation: an integration can pull the current Novantra register and compare it against the CMMS for drift detection.

A typical drift check:

  1. Calls GET /api/v1/assets to pull the current register.
  2. Compares against the CMMS’s current inventory using assetKey as the join.
  3. Surfaces assets in the CMMS that aren’t in Novantra (and vice versa) for the compliance team to investigate.
  4. Surfaces custody mismatches by joining custody assignments to the CMMS custody records.

The integration’s service account holds exactly assets:read. Cursor pagination handles large registers. Daily polling is sufficient for compliance discipline and is the supported pattern for the asset register.

Last updated on